diff --git a/.github/workflows/source-regressions.yml b/.github/workflows/source-regressions.yml index 2c7c0f566..146d793c3 100644 --- a/.github/workflows/source-regressions.yml +++ b/.github/workflows/source-regressions.yml @@ -56,7 +56,7 @@ jobs: run: python -m pip install --disable-pip-version-check --no-deps zstandard==0.25.0 - name: Compilers and the SPIR-V validator if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y g++ clang spirv-tools + run: sudo apt-get update && sudo apt-get install -y g++ clang spirv-tools glslang-tools # (the steps below all run when one before them failed, so one run shows every failure) - name: Check Windows native source regressions diff --git a/gpu/vk/fsr3_math.h b/gpu/vk/fsr3_math.h new file mode 100644 index 000000000..207326af7 --- /dev/null +++ b/gpu/vk/fsr3_math.h @@ -0,0 +1,59 @@ +// (hookshot) AMD FSR 3.1's camera, from the scene's own projection: plain functions, no Vulkan. tests/test_fsr3_math.cpp +// checks them. +// +// FSR 3.1's passes (the upscaler's and frame interpolation's) turn a depth into a view distance with four factors, +// device_to_view_depth (the SDK's setupDeviceDepthToViewSpaceDepthParams), and frame interpolation scales its disocclusion +// test by the tangent of half the field of view. The SDK builds them from a near plane, a far plane and a field of view; the +// projection the scene was drawn with has all three in it, so they are read from there instead (the camera's uniform buffer, +// gpu/vk/vk_fsr3_inputs.cpp: the same buffer NVIDIA DLSS reads its camera from), and no hook into the game is needed. +#pragma once + +#include +#include + +namespace mkwvk::fsr3_math { + +struct Camera { + /// view distance = [1] / (device depth - [0]); view x = [2] * ndc x * distance, y = [3] * ndc y * distance. For the + /// depth FSR is given, which is reversed (1 at the near plane: the passes are compiled with INVERTED_DEPTH) + float device_to_view_depth[4]{}; + float tan_half_fov_x = 0.0f; ///< frame interpolation's fTanHalfFOV (the SDK's: horizontal, from the render aspect) + float fov_y = 0.0f; ///< radians + float near_plane = 0.0f, far_plane = 0.0f; ///< far: FLT_MAX for an infinite projection + /// The game's own depth runs the other way (0 at the near plane): FSR's copy is 1 - it (vk_fsr3_inputs.cpp) + bool flip_depth = false; +}; + +/// The camera of a perspective projection p (row major, clip = p * view position, its w row 0 0 -1 0, as the game fills its +/// views' uniform buffers), whose clip depth is NVN's -1 to 1, so the depth buffer holds (ndc z + 1) / 2 (shaders/ +/// dlss_prep.comp reads it the same way). With a view distance v (> 0 in front of the camera), ndc z = -p22 + p23 / v, so the +/// stored depth is d = a + b / v with a = (1 - p22) / 2 and b = p23 / 2: reversed when b > 0. False for a projection that is +/// not one (no perspective, no depth range, a degenerate field of view) +inline bool camera_from_projection(const float p[16], Camera& c) { + c = Camera{}; + if (p[12] != 0.0f || p[13] != 0.0f || p[14] != -1.0f || p[15] != 0.0f) return false; + if (!(p[0] > 0.0f) || !(p[5] > 0.0f) || !std::isfinite(p[0]) || !std::isfinite(p[5])) return false; + double a = (1.0 - (double)p[10]) * 0.5, b = (double)p[11] * 0.5; + if (!std::isfinite(a) || !std::isfinite(b) || std::fabs(b) < 1e-12) return false; + c.flip_depth = b < 0.0; + if (c.flip_depth) a = 1.0 - a, b = -b; // (FSR's copy: 1 - d = (1 - a) - b / v) + // (an infinite projection has a = 0, which puts the far plane at device depth 0 exactly: the SDK's own factor there is + // -FLT_EPSILON, so distances stay finite and positive) + if (a > -FLT_EPSILON) a = -FLT_EPSILON; + c.device_to_view_depth[0] = (float)a; + c.device_to_view_depth[1] = (float)b; + c.device_to_view_depth[2] = 1.0f / p[0]; // (the SDK's 1 / (cot(fov / 2) / aspect)) + c.device_to_view_depth[3] = 1.0f / p[5]; // (1 / cot(fov / 2)) + c.tan_half_fov_x = 1.0f / p[0]; + c.fov_y = 2.0f * std::atan(1.0f / p[5]); + c.near_plane = (float)(b / (1.0 - a)); + c.far_plane = a <= -1e-6 ? (float)(-b / a) : FLT_MAX; + return c.near_plane > 0.0f && std::isfinite(c.near_plane); +} + +/// FSR's view distance for a device depth (as its shaders compute it: GetViewSpaceDepth), for the test +inline float view_distance(const Camera& c, float device_depth) { + return c.device_to_view_depth[1] / (device_depth - c.device_to_view_depth[0]); +} + +} // namespace mkwvk::fsr3_math diff --git a/gpu/vk/shaders/fsr3_accumulate_comp_spv.h b/gpu/vk/shaders/fsr3_accumulate_comp_spv.h new file mode 100644 index 000000000..d746783c1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_accumulate_comp_spv.h @@ -0,0 +1,1995 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_ACCUMULATE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000924,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x00020011,0x00000038,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x00000912,0x00060010,0x00000004,0x00000011,0x00000008, + 0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458, + 0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000, + 0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972, + 0x6974656d,0x79745f63,0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72, + 0x5f656761,0x64616f6c,0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000c,0x4c786666,0x28707265,0x663b3166, + 0x31663b31,0x0000003b,0x00030005,0x00000009,0x00000078,0x00030005,0x0000000a,0x00000079, + 0x00030005,0x0000000b,0x00000074,0x00070005,0x00000014,0x4c786666,0x28707265,0x3b336676, + 0x3b336676,0x003b3166,0x00030005,0x00000011,0x00000078,0x00030005,0x00000012,0x00000079, + 0x00030005,0x00000013,0x00000074,0x00060005,0x00000018,0x53786666,0x72757461,0x28657461, + 0x003b3166,0x00030005,0x00000017,0x00000078,0x00060005,0x0000001e,0x46786666,0x74636172, + 0x32667628,0x0000003b,0x00030005,0x0000001d,0x00000078,0x00060005,0x00000023,0x4d786666, + 0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022, + 0x00000079,0x00060005,0x00000028,0x4d786666,0x76286e69,0x763b3266,0x003b3266,0x00030005, + 0x00000026,0x00000078,0x00030005,0x00000027,0x00000079,0x00060005,0x0000002d,0x4d786666, + 0x76286e69,0x763b3366,0x003b3366,0x00030005,0x0000002b,0x00000078,0x00030005,0x0000002c, + 0x00000079,0x00060005,0x00000034,0x4d786666,0x76286e69,0x763b3466,0x003b3466,0x00030005, + 0x00000032,0x00000078,0x00030005,0x00000033,0x00000079,0x00060005,0x0000003b,0x4d786666, + 0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000039,0x00000078,0x00030005,0x0000003a, + 0x00000079,0x00060005,0x0000003f,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005, + 0x0000003d,0x00000078,0x00030005,0x0000003e,0x00000079,0x00060005,0x00000043,0x4d786666, + 0x76287861,0x763b3266,0x003b3266,0x00030005,0x00000041,0x00000078,0x00030005,0x00000042, + 0x00000079,0x00060005,0x00000047,0x4d786666,0x76287861,0x763b3366,0x003b3366,0x00030005, + 0x00000045,0x00000078,0x00030005,0x00000046,0x00000079,0x00060005,0x0000004b,0x4d786666, + 0x76287861,0x763b3466,0x003b3466,0x00030005,0x00000049,0x00000078,0x00030005,0x0000004a, + 0x00000079,0x00060005,0x0000004f,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005, + 0x0000004d,0x00000078,0x00030005,0x0000004e,0x00000079,0x00060005,0x00000053,0x50786666, + 0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000051,0x00000078,0x00030005,0x00000052, + 0x00000079,0x00050005,0x00000057,0x646e6552,0x69537265,0x0028657a,0x00060005,0x00000059, + 0x5278614d,0x65646e65,0x7a695372,0x00002865,0x00060005,0x0000005b,0x63737055,0x53656c61, + 0x28657a69,0x00000000,0x00090005,0x0000005d,0x76657250,0x73756f69,0x6d617246,0x73705565, + 0x656c6163,0x657a6953,0x00000028,0x00040005,0x00000060,0x7474694a,0x00287265,0x00070005, + 0x00000062,0x6e776f44,0x6c616373,0x63614665,0x28726f74,0x00000000,0x00080005,0x00000065, + 0x7474694a,0x65537265,0x6e657571,0x654c6563,0x6874676e,0x00000028,0x00070005,0x00000067, + 0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028,0x00050005,0x00000069,0x6d617246, + 0x646e4965,0x00287865,0x00060005,0x0000006b,0x6f6c6556,0x79746963,0x74636146,0x0028726f, + 0x00070005,0x00000070,0x64616f4c,0x75706e49,0x6c6f4374,0x7628726f,0x003b3269,0x00040005, + 0x0000006f,0x50785069,0x0000736f,0x00070005,0x00000074,0x64616f4c,0x74736948,0x2879726f, + 0x3b326976,0x00000000,0x00050005,0x00000073,0x48785069,0x6f747369,0x00007972,0x000c0005, + 0x00000079,0x726f7453,0x746e4965,0x616e7265,0x6c6f436c,0x6e41726f,0x69655764,0x28746867, + 0x3b326976,0x3b346676,0x00000000,0x00040005,0x00000077,0x50785069,0x0000736f,0x00060005, + 0x00000078,0x6c6f4366,0x6e41726f,0x69655764,0x00746867,0x000a0005,0x0000007e,0x726f7453, + 0x73705565,0x656c6163,0x74754f64,0x28747570,0x3b326976,0x3b336676,0x00000000,0x00040005, + 0x0000007c,0x50785069,0x0000736f,0x00040005,0x0000007d,0x6c6f4366,0x0000726f,0x000c0005, + 0x00000080,0x46746547,0x68747261,0x44747365,0x68747065,0x3170694d,0x6f736552,0x65637275, + 0x656d6944,0x6f69736e,0x0028736e,0x000a0005,0x00000084,0x706d6153,0x6146656c,0x65687472, + 0x65447473,0x4d687470,0x28317069,0x3b326676,0x00000000,0x00030005,0x00000083,0x00565566, + 0x00090005,0x00000087,0x706d6153,0x754c656c,0x6e49616d,0x62617473,0x74696c69,0x66762879, + 0x00003b32,0x00030005,0x00000086,0x00007675,0x00070005,0x0000008b,0x64616f4c,0x654e7752, + 0x636f4c77,0x7628736b,0x003b3269,0x00040005,0x0000008a,0x50785069,0x0000736f,0x00080005, + 0x00000090,0x726f7453,0x77654e65,0x6b636f4c,0x69762873,0x31663b32,0x0000003b,0x00040005, + 0x0000008e,0x50785069,0x0000736f,0x00040005,0x0000008f,0x4c77656e,0x006b636f,0x000a0005, + 0x00000094,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976, + 0x00000000,0x00050005,0x00000093,0x49785069,0x7475706e,0x00000000,0x00050005,0x00000096, + 0x6f707845,0x65727573,0x00000028,0x000a0005,0x0000009a,0x706d6153,0x6944656c,0x6574616c, + 0x61655264,0x76697463,0x73614d65,0x7628736b,0x003b3266,0x00030005,0x00000099,0x00565566, + 0x00070005,0x0000009d,0x34746547,0x6c65564b,0x7469636f,0x66762879,0x00003b32,0x00060005, + 0x0000009c,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00070005,0x0000009f,0x74636552, + 0x63696669,0x6f697461,0x786f426e,0x00000000,0x00060006,0x0000009f,0x00000000,0x43786f62, + 0x65746e65,0x00000072,0x00050006,0x0000009f,0x00000001,0x56786f62,0x00006365,0x00050006, + 0x0000009f,0x00000002,0x62626161,0x006e694d,0x00050006,0x0000009f,0x00000003,0x62626161, + 0x0078614d,0x00080006,0x0000009f,0x00000004,0x786f4266,0x746e6543,0x65577265,0x74686769, + 0x00000000,0x00180005,0x000000a5,0x74636552,0x63696669,0x6f697461,0x786f426e,0x49646441, + 0x6974696e,0x61536c61,0x656c706d,0x72747328,0x2d746375,0x74636552,0x63696669,0x6f697461, + 0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366763b,0x3b31663b, + 0x00000000,0x00070005,0x000000a2,0x74636572,0x63696669,0x6f697461,0x786f426e,0x00000000, + 0x00050005,0x000000a3,0x6f6c6f63,0x6d615372,0x00656c70,0x00060005,0x000000a4,0x6d615366, + 0x57656c70,0x68676965,0x00000074,0x00170005,0x000000ae,0x74636552,0x63696669,0x6f697461, + 0x786f426e,0x53646441,0x6c706d61,0x31622865,0x7274733b,0x2d746375,0x74636552,0x63696669, + 0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366763b, + 0x3b31663b,0x00000000,0x00060005,0x000000aa,0x696e4962,0x6c616974,0x706d6153,0x0000656c, + 0x00070005,0x000000ab,0x74636572,0x63696669,0x6f697461,0x786f426e,0x00000000,0x00050005, + 0x000000ac,0x6f6c6f63,0x6d615372,0x00656c70,0x00060005,0x000000ad,0x6d615366,0x57656c70, + 0x68676965,0x00000074,0x00170005,0x000000b2,0x74636552,0x63696669,0x6f697461,0x786f426e, + 0x706d6f43,0x56657475,0x61697261,0x4265636e,0x6144786f,0x73286174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x003b3131,0x00070005,0x000000b1,0x74636572,0x63696669,0x6f697461,0x786f426e,0x00000000, + 0x00060005,0x000000b6,0x436f4359,0x526f5467,0x76284247,0x003b3366,0x00040005,0x000000b5, + 0x6f435966,0x00006743,0x00060005,0x000000b9,0x54424752,0x6f43596f,0x76286743,0x003b3366, + 0x00040005,0x000000b8,0x62675266,0x00000000,0x00060005,0x000000bc,0x656e6f54,0x2870616d, + 0x3b336676,0x00000000,0x00040005,0x000000bb,0x62675266,0x00000000,0x00070005,0x000000bf, + 0x65766e49,0x54657372,0x6d656e6f,0x76287061,0x003b3366,0x00040005,0x000000be,0x62675266, + 0x00000000,0x00060005,0x000000c3,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005, + 0x000000c2,0x00765566,0x00080005,0x000000c9,0x6d616c43,0x616f4c70,0x69762864,0x69763b32, + 0x69763b32,0x00003b32,0x00050005,0x000000c6,0x53785069,0x6c706d61,0x00000065,0x00050005, + 0x000000c7,0x4f785069,0x65736666,0x00000074,0x00060005,0x000000c8,0x78655469,0x65727574, + 0x657a6953,0x00000000,0x00080005,0x000000cf,0x6d616c43,0x28765570,0x3b326676,0x3b326976, + 0x3b326976,0x00000000,0x00030005,0x000000cc,0x00765566,0x00060005,0x000000cd,0x78655469, + 0x65727574,0x657a6953,0x00000000,0x00060005,0x000000ce,0x73655269,0x6372756f,0x7a695365, + 0x00000065,0x00070005,0x000000d4,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x000000d2,0x00736f70,0x00040005,0x000000d3,0x657a6973,0x00000000,0x00070005, + 0x000000d7,0x636e614c,0x32736f7a,0x6c436f4e,0x28706d61,0x003b3166,0x00030005,0x000000d6, + 0x00000078,0x00060005,0x000000da,0x636e614c,0x32736f7a,0x3b316628,0x00000000,0x00030005, + 0x000000d9,0x00000078,0x00090005,0x000000dd,0x636e614c,0x32736f7a,0x72707041,0x7153786f, + 0x6c436f4e,0x28706d61,0x003b3166,0x00030005,0x000000dc,0x00003278,0x00080005,0x000000e0, + 0x636e614c,0x32736f7a,0x72707041,0x7153786f,0x3b316628,0x00000000,0x00030005,0x000000df, + 0x00003278,0x000a0005,0x000000e8,0x636e614c,0x32736f7a,0x34667628,0x3466763b,0x3466763b, + 0x3466763b,0x3b31663b,0x00000000,0x00040005,0x000000e3,0x6c6f4366,0x0030726f,0x00040005, + 0x000000e4,0x6c6f4366,0x0031726f,0x00040005,0x000000e5,0x6c6f4366,0x0032726f,0x00040005, + 0x000000e6,0x6c6f4366,0x0033726f,0x00030005,0x000000e7,0x00000074,0x00080005,0x000000ea, + 0x63746546,0x42646568,0x62756369,0x61536369,0x656c706d,0x00000073,0x00060006,0x000000ea, + 0x00000000,0x6c6f4366,0x3030726f,0x00000000,0x00060006,0x000000ea,0x00000001,0x6c6f4366, + 0x3031726f,0x00000000,0x00060006,0x000000ea,0x00000002,0x6c6f4366,0x3032726f,0x00000000, + 0x00060006,0x000000ea,0x00000003,0x6c6f4366,0x3033726f,0x00000000,0x00060006,0x000000ea, + 0x00000004,0x6c6f4366,0x3130726f,0x00000000,0x00060006,0x000000ea,0x00000005,0x6c6f4366, + 0x3131726f,0x00000000,0x00060006,0x000000ea,0x00000006,0x6c6f4366,0x3132726f,0x00000000, + 0x00060006,0x000000ea,0x00000007,0x6c6f4366,0x3133726f,0x00000000,0x00060006,0x000000ea, + 0x00000008,0x6c6f4366,0x3230726f,0x00000000,0x00060006,0x000000ea,0x00000009,0x6c6f4366, + 0x3231726f,0x00000000,0x00060006,0x000000ea,0x0000000a,0x6c6f4366,0x3232726f,0x00000000, + 0x00060006,0x000000ea,0x0000000b,0x6c6f4366,0x3233726f,0x00000000,0x00060006,0x000000ea, + 0x0000000c,0x6c6f4366,0x3330726f,0x00000000,0x00060006,0x000000ea,0x0000000d,0x6c6f4366, + 0x3331726f,0x00000000,0x00060006,0x000000ea,0x0000000e,0x6c6f4366,0x3332726f,0x00000000, + 0x00060006,0x000000ea,0x0000000f,0x6c6f4366,0x3333726f,0x00000000,0x001d0005,0x000000ef, + 0x636e614c,0x32736f7a,0x72747328,0x2d746375,0x63746546,0x42646568,0x62756369,0x61536369, + 0x656c706d,0x66762d73,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34, + 0x66762d34,0x763b3134,0x003b3266,0x00040005,0x000000ed,0x706d6153,0x0073656c,0x00040005, + 0x000000ee,0x46785066,0x00636172,0x00080005,0x000000f4,0x6d616c43,0x6f6f4370,0x76286472, + 0x763b3269,0x763b3269,0x003b3269,0x00050005,0x000000f1,0x53785069,0x6c706d61,0x00000065, + 0x00050005,0x000000f2,0x4f785069,0x65736666,0x00000074,0x00060005,0x000000f3,0x78655469, + 0x65727574,0x657a6953,0x00000000,0x00110005,0x000000f9,0x69726544,0x6e69676e,0x74732867, + 0x74637572,0x6365522d,0x69666974,0x69746163,0x6f426e6f,0x66762d78,0x66762d33,0x66762d33, + 0x66762d33,0x31662d33,0x66763b31,0x00003b33,0x00050005,0x000000f7,0x70696c63,0x676e6970, + 0x00786f42,0x00040005,0x000000f8,0x6c6f4366,0x0000726f,0x000b0005,0x000000fe,0x55746547, + 0x6d617370,0x4c656c70,0x7a636e61,0x6557736f,0x74686769,0x32667628,0x3b31663b,0x00000000, + 0x00070005,0x000000fc,0x63725366,0x706d6153,0x664f656c,0x74657366,0x00000000,0x00060005, + 0x000000fd,0x72654b66,0x576c656e,0x68676965,0x00000074,0x000a0005,0x00000100,0x75636341, + 0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f,0x736d6172,0x00000000,0x00060006, + 0x00000100,0x00000000,0x48785069,0x736f5072,0x00000000,0x00050006,0x00000100,0x00000001, + 0x55724866,0x00000076,0x00070006,0x00000100,0x00000002,0x55724c66,0x74694a76,0x65726574, + 0x00000064,0x00070006,0x00000100,0x00000003,0x55724c66,0x77485f76,0x706d6153,0x0072656c, + 0x00070006,0x00000100,0x00000004,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00080006, + 0x00000100,0x00000005,0x70655266,0x656a6f72,0x64657463,0x76557248,0x00000000,0x00060006, + 0x00000100,0x00000006,0x564b3466,0x636f6c65,0x00797469,0x00070006,0x00000100,0x00000007, + 0x73694466,0x6c63636f,0x6f697375,0x0000006e,0x00070006,0x00000100,0x00000008,0x61655266, + 0x76697463,0x73614d65,0x0000006b,0x00070006,0x00000100,0x00000009,0x61685366,0x676e6964, + 0x6e616843,0x00006567,0x00070006,0x00000100,0x0000000a,0x63634166,0x6c756d75,0x6f697461, + 0x0000006e,0x00090006,0x00000100,0x0000000b,0x6d754c66,0x736e4961,0x69626174,0x7974696c, + 0x74636146,0x0000726f,0x00090006,0x00000100,0x0000000c,0x72614666,0x73656874,0x70654474, + 0x6e496874,0x6574654d,0x00007372,0x00080006,0x00000100,0x0000000d,0x45734962,0x74736978, + 0x53676e69,0x6c706d61,0x00000065,0x00070006,0x00000100,0x0000000e,0x4e734962,0x61537765, + 0x656c706d,0x00000000,0x00080005,0x00000101,0x75636341,0x616c756d,0x6e6f6974,0x73736150, + 0x61746144,0x00000000,0x00060006,0x00000101,0x00000000,0x70696c63,0x676e6970,0x00786f42, + 0x00070006,0x00000101,0x00000001,0x73705566,0x6c706d61,0x6f436465,0x00726f6c,0x00080006, + 0x00000101,0x00000002,0x73705566,0x6c706d61,0x65576465,0x74686769,0x00000000,0x00070006, + 0x00000101,0x00000003,0x73694866,0x79726f74,0x6f6c6f43,0x00000072,0x00070006,0x00000101, + 0x00000004,0x73694866,0x79726f74,0x67696557,0x00007468,0x00050006,0x00000101,0x00000005, + 0x636f4c66,0x0000006b,0x000a0006,0x00000101,0x00000006,0x636f4c66,0x6e6f436b,0x62697274, + 0x6f697475,0x6968546e,0x61724673,0x0000656d,0x00360005,0x00000106,0x706d6f43,0x4d657475, + 0x654b7861,0x6c656e72,0x67696557,0x73287468,0x63757274,0x63412d74,0x756d7563,0x6974616c, + 0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266, + 0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373, + 0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366, + 0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d, + 0x3b313166,0x00000000,0x00040005,0x00000104,0x61726170,0x0000736d,0x00040005,0x00000105, + 0x61746164,0x00000000,0x00080005,0x00000109,0x64616f4c,0x70657250,0x64657261,0x6f6c6f43, + 0x69762872,0x00003b32,0x00050005,0x00000108,0x6d615369,0x50656c70,0x0000736f,0x00380005, + 0x0000010e,0x706d6f43,0x55657475,0x6d617370,0x64656c70,0x6f6c6f43,0x646e4172,0x67696557, + 0x73287468,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d, + 0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266, + 0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274, + 0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005, + 0x0000010c,0x61726170,0x0000736d,0x00040005,0x0000010d,0x61746164,0x00000000,0x00070005, + 0x00000111,0x70617257,0x74736948,0x2879726f,0x3b326976,0x00000000,0x00050005,0x00000110, + 0x53785069,0x6c706d61,0x00000065,0x000a0005,0x00000116,0x63746546,0x73694868,0x79726f74, + 0x706d6153,0x2873656c,0x3b326976,0x3b326976,0x00000000,0x00050005,0x00000114,0x53785069, + 0x6c706d61,0x00000065,0x00060005,0x00000115,0x78655469,0x65727574,0x657a6953,0x00000000, + 0x00080005,0x0000011b,0x74736948,0x5379726f,0x6c706d61,0x66762865,0x69763b32,0x00003b32, + 0x00050005,0x00000119,0x53765566,0x6c706d61,0x00000065,0x00060005,0x0000011a,0x78655469, + 0x65727574,0x657a6953,0x00000000,0x00090005,0x00000120,0x4d746547,0x6f69746f,0x6365566e, + 0x28726f74,0x3b326976,0x3b326676,0x00000000,0x00050005,0x0000011e,0x48785069,0x736f5072, + 0x00000000,0x00040005,0x0000011f,0x55724866,0x00000076,0x001e0005,0x00000125,0x706d6f43, + 0x52657475,0x6f727065,0x7463656a,0x56556465,0x74732873,0x74637572,0x6363412d,0x6c756d75, + 0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73,0x66762d32,0x66762d32, + 0x66762d32,0x66762d32,0x66762d32,0x31662d32,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x622d3166,0x31622d31,0x00003b31,0x00040005,0x00000124,0x61726170,0x0000736d,0x00350005, + 0x00000129,0x72706552,0x63656a6f,0x73694874,0x79726f74,0x6f6c6f43,0x74732872,0x74637572, + 0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73, + 0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x31662d32,0x2d31662d,0x662d3166, + 0x31662d31,0x2d31662d,0x622d3166,0x31622d31,0x74733b31,0x74637572,0x6363412d,0x6c756d75, + 0x6f697461,0x7361506e,0x74614473,0x74732d61,0x74637572,0x6365522d,0x69666974,0x69746163, + 0x6f426e6f,0x66762d78,0x66762d33,0x66762d33,0x66762d33,0x31662d33,0x66762d31,0x31662d33, + 0x3366762d,0x2d31662d,0x662d3166,0x003b3131,0x00040005,0x00000127,0x61726170,0x0000736d, + 0x00040005,0x00000128,0x61746164,0x00000000,0x00330005,0x0000012d,0x75636341,0x616c756d, + 0x73286574,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d, + 0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266, + 0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274, + 0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005, + 0x0000012b,0x61726170,0x0000736d,0x00040005,0x0000012c,0x61746164,0x00000000,0x00340005, + 0x00000131,0x74636552,0x48796669,0x6f747369,0x73287972,0x63757274,0x63412d74,0x756d7563, + 0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266, + 0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31, + 0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f, + 0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33, + 0x2d31662d,0x3b313166,0x00000000,0x00040005,0x0000012f,0x61726170,0x0000736d,0x00040005, + 0x00000130,0x61746164,0x00000000,0x00340005,0x00000136,0x61647055,0x6f4c6574,0x74536b63, + 0x73757461,0x72747328,0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43, + 0x61506e6f,0x736d6172,0x3269762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x662d3166,0x31622d31,0x3131622d,0x7274733b, + 0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x61746144,0x7274732d,0x2d746375, + 0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d, + 0x3131662d,0x3366762d,0x2d31662d,0x2d336676,0x662d3166,0x31662d31,0x00003b31,0x00040005, + 0x00000134,0x61726170,0x0000736d,0x00040005,0x00000135,0x61746164,0x00000000,0x00370005, + 0x0000013a,0x706d6f43,0x42657475,0x41657361,0x6d756363,0x74616c75,0x576e6f69,0x68676965, + 0x74732874,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d, + 0x6d617261,0x69762d73,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x31662d32, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3166,0x31622d31,0x74733b31,0x74637572, + 0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x74614473,0x74732d61,0x74637572,0x6365522d, + 0x69666974,0x69746163,0x6f426e6f,0x66762d78,0x66762d33,0x66762d33,0x66762d33,0x31662d33, + 0x66762d31,0x31662d33,0x3366762d,0x2d31662d,0x662d3166,0x003b3131,0x00040005,0x00000138, + 0x61726170,0x0000736d,0x00040005,0x00000139,0x61746164,0x00000000,0x00340005,0x00000140, + 0x74696e49,0x73736150,0x61746144,0x32697628,0x7274733b,0x2d746375,0x75636341,0x616c756d, + 0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f,0x736d6172,0x3269762d,0x3266762d,0x3266762d, + 0x3266762d,0x3266762d,0x3266762d,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x662d3166, + 0x31622d31,0x3131622d,0x7274733b,0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150, + 0x61746144,0x7274732d,0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d, + 0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366762d,0x2d31662d,0x2d336676,0x662d3166, + 0x31662d31,0x00003b31,0x00050005,0x0000013d,0x48785069,0x736f5072,0x00000000,0x00040005, + 0x0000013e,0x61726170,0x0000736d,0x00040005,0x0000013f,0x61746164,0x00000000,0x00060005, + 0x00000144,0x75636341,0x616c756d,0x76286574,0x003b3269,0x00050005,0x00000143,0x48785069, + 0x736f5072,0x00000000,0x00070005,0x00000194,0x53466263,0x50553352,0x4c414353,0x745f5245, + 0x00000000,0x00060006,0x00000194,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006, + 0x00000194,0x00000001,0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953, + 0x00000000,0x00070006,0x00000194,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000, + 0x000a0006,0x00000194,0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373, + 0x7a695365,0x00000065,0x00070006,0x00000194,0x00000004,0x78614d69,0x646e6552,0x69537265, + 0x0000657a,0x00070006,0x00000194,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69, + 0x00080006,0x00000194,0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00050006,0x00000194,0x00000007,0x74694a66,0x00726574,0x00090006,0x00000194,0x00000008, + 0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x00000194, + 0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x00000194, + 0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x00000194, + 0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c, + 0x006e6f69,0x00060006,0x00000194,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006, + 0x00000194,0x0000000d,0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068, + 0x00060006,0x00000194,0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x00000194, + 0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x00000194, + 0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000, + 0x00060006,0x00000194,0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x00000194, + 0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74,0x00080006,0x00000194,0x00000013, + 0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c,0x00080006,0x00000194,0x00000014, + 0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61,0x000a0006,0x00000194,0x00000015, + 0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006, + 0x00000194,0x00000016,0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d, + 0x6e6f6974,0x00000000,0x00060005,0x00000196,0x53466263,0x70553352,0x6c616373,0x00007265, + 0x00080005,0x000001ce,0x6e695f72,0x5f747570,0x6f6c6f63,0x696a5f72,0x72657474,0x00006465, + 0x00090005,0x000001d5,0x6e695f72,0x6e726574,0x755f6c61,0x61637370,0x5f64656c,0x6f6c6f63, + 0x00000072,0x00090005,0x000001dd,0x695f7772,0x7265746e,0x5f6c616e,0x63737075,0x64656c61, + 0x6c6f635f,0x0000726f,0x00070005,0x000001e3,0x755f7772,0x61637370,0x5f64656c,0x7074756f, + 0x00007475,0x00080005,0x000001eb,0x61665f72,0x65687472,0x645f7473,0x68747065,0x70696d5f, + 0x00000031,0x00060005,0x000001f3,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00070005, + 0x000001fe,0x756c5f72,0x695f616d,0x6174736e,0x696c6962,0x00007974,0x00060005,0x00000209, + 0x6e5f7772,0x6c5f7765,0x736b636f,0x00000000,0x00090005,0x00000214,0x69645f72,0x6574616c, + 0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005,0x0000021b,0x6f707865, + 0x65727573,0x00000000,0x00070005,0x0000021c,0x6e695f72,0x5f747570,0x6f707865,0x65727573, + 0x00000000,0x00090005,0x00000228,0x69645f72,0x6574616c,0x65725f64,0x69746361,0x6d5f6576, + 0x736b7361,0x00000000,0x00060005,0x0000023a,0x67696577,0x64657468,0x706d6153,0x0000656c, + 0x00040005,0x00000246,0x61726170,0x0000006d,0x00040005,0x0000024b,0x61726170,0x0000006d, + 0x00040005,0x0000024e,0x61726170,0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d, + 0x00040005,0x00000254,0x61726170,0x0000006d,0x00060005,0x00000257,0x67696577,0x64657468, + 0x706d6153,0x0000656c,0x00040005,0x00000283,0x44647473,0x00007665,0x00040005,0x00000290, + 0x62675266,0x00000000,0x00040005,0x000002ac,0x6f435966,0x00006743,0x00040005,0x000002d2, + 0x61726170,0x0000006d,0x00040005,0x000002d3,0x61726170,0x0000006d,0x00040005,0x000002d7, + 0x61726170,0x0000006d,0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002de, + 0x61726170,0x0000006d,0x00040005,0x000002df,0x61726170,0x0000006d,0x00040005,0x000002e8, + 0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170,0x0000006d,0x00040005,0x000002ef, + 0x61726170,0x0000006d,0x00040005,0x000002f2,0x61726170,0x0000006d,0x00040005,0x000002f5, + 0x61726170,0x0000006d,0x00040005,0x000002f6,0x61726170,0x0000006d,0x00040005,0x00000313, + 0x75736572,0x0000746c,0x00040005,0x0000031a,0x61726170,0x0000006d,0x00040005,0x0000031d, + 0x61726170,0x0000006d,0x00040005,0x0000031f,0x61726170,0x0000006d,0x00040005,0x00000320, + 0x61726170,0x0000006d,0x00040005,0x00000326,0x61726170,0x0000006d,0x00040005,0x00000329, + 0x61726170,0x0000006d,0x00040005,0x0000032b,0x61726170,0x0000006d,0x00040005,0x0000032c, + 0x61726170,0x0000006d,0x00060005,0x00000332,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69, + 0x00070005,0x00000337,0x616c4366,0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005, + 0x0000033c,0x61726170,0x0000006d,0x00040005,0x0000033e,0x61726170,0x0000006d,0x00040005, + 0x00000340,0x61726170,0x0000006d,0x00040005,0x00000341,0x61726170,0x0000006d,0x00050005, + 0x00000343,0x616c4366,0x6465706d,0x00007655,0x00040005,0x00000371,0x61726170,0x0000006d, + 0x00040005,0x00000372,0x61726170,0x0000006d,0x00040005,0x00000374,0x61726170,0x0000006d, + 0x00030005,0x00000379,0x00000061,0x00030005,0x0000037e,0x00000062,0x00040005,0x00000390, + 0x61726170,0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d,0x00040005,0x00000394, + 0x61726170,0x0000006d,0x00050005,0x00000399,0x69655766,0x30746867,0x00000000,0x00040005, + 0x0000039d,0x61726170,0x0000006d,0x00050005,0x0000039f,0x69655766,0x31746867,0x00000000, + 0x00040005,0x000003a3,0x61726170,0x0000006d,0x00050005,0x000003a5,0x69655766,0x32746867, + 0x00000000,0x00040005,0x000003a8,0x61726170,0x0000006d,0x00050005,0x000003aa,0x69655766, + 0x33746867,0x00000000,0x00040005,0x000003ad,0x61726170,0x0000006d,0x00050005,0x000003c9, + 0x6c6f4366,0x3058726f,0x00000000,0x00040005,0x000003ca,0x61726170,0x0000006d,0x00040005, + 0x000003cd,0x61726170,0x0000006d,0x00040005,0x000003d0,0x61726170,0x0000006d,0x00040005, + 0x000003d3,0x61726170,0x0000006d,0x00040005,0x000003d6,0x61726170,0x0000006d,0x00050005, + 0x000003da,0x6c6f4366,0x3158726f,0x00000000,0x00040005,0x000003dd,0x61726170,0x0000006d, + 0x00040005,0x000003e0,0x61726170,0x0000006d,0x00040005,0x000003e3,0x61726170,0x0000006d, + 0x00040005,0x000003e6,0x61726170,0x0000006d,0x00040005,0x000003e9,0x61726170,0x0000006d, + 0x00050005,0x000003ed,0x6c6f4366,0x3258726f,0x00000000,0x00040005,0x000003f1,0x61726170, + 0x0000006d,0x00040005,0x000003f4,0x61726170,0x0000006d,0x00040005,0x000003f7,0x61726170, + 0x0000006d,0x00040005,0x000003fa,0x61726170,0x0000006d,0x00040005,0x000003fd,0x61726170, + 0x0000006d,0x00050005,0x00000401,0x6c6f4366,0x3358726f,0x00000000,0x00040005,0x00000404, + 0x61726170,0x0000006d,0x00040005,0x00000407,0x61726170,0x0000006d,0x00040005,0x0000040a, + 0x61726170,0x0000006d,0x00040005,0x0000040d,0x61726170,0x0000006d,0x00040005,0x00000410, + 0x61726170,0x0000006d,0x00050005,0x00000414,0x6c6f4366,0x5958726f,0x00000000,0x00040005, + 0x00000415,0x61726170,0x0000006d,0x00040005,0x00000417,0x61726170,0x0000006d,0x00040005, + 0x00000419,0x61726170,0x0000006d,0x00040005,0x0000041b,0x61726170,0x0000006d,0x00040005, + 0x0000041d,0x61726170,0x0000006d,0x00070005,0x00000424,0x72654466,0x69676e69,0x6153676e, + 0x656c706d,0x00000073,0x00060005,0x0000042e,0x72654466,0x69676e69,0x694d676e,0x0000006e, + 0x00060005,0x00000431,0x72654466,0x69676e69,0x614d676e,0x00000078,0x00060005,0x00000434, + 0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x0000043d,0x61726170,0x0000006d, + 0x00040005,0x0000043f,0x61726170,0x0000006d,0x00040005,0x00000444,0x61726170,0x0000006d, + 0x00040005,0x00000446,0x61726170,0x0000006d,0x00040005,0x00000453,0x75736572,0x0000746c, + 0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045d,0x61726170,0x0000006d, + 0x00040005,0x0000045f,0x61726170,0x0000006d,0x00040005,0x00000460,0x61726170,0x0000006d, + 0x00040005,0x00000466,0x61726170,0x0000006d,0x00040005,0x00000469,0x61726170,0x0000006d, + 0x00040005,0x0000046b,0x61726170,0x0000006d,0x00040005,0x0000046c,0x61726170,0x0000006d, + 0x00080005,0x00000478,0x63725366,0x706d6153,0x664f656c,0x74657366,0x73616942,0x00006465, + 0x00060005,0x0000047d,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00040005,0x00000481, + 0x61726170,0x0000006d,0x00060005,0x00000486,0x72654b66,0x536c656e,0x42657a69,0x00736169, + 0x00040005,0x0000048f,0x61726170,0x0000006d,0x00040005,0x00000490,0x61726170,0x0000006d, + 0x00040005,0x00000495,0x62675266,0x00000000,0x00040005,0x00000497,0x61726170,0x0000006d, + 0x00040005,0x0000049a,0x61726170,0x0000006d,0x00040005,0x0000049b,0x61726170,0x0000006d, + 0x00060005,0x0000049f,0x65725066,0x65726170,0x6f435964,0x00006743,0x00040005,0x000004a0, + 0x61726170,0x0000006d,0x00060005,0x000004a6,0x74734466,0x7074754f,0x6f507475,0x00000073, + 0x00060005,0x000004aa,0x63725366,0x7074754f,0x6f507475,0x00000073,0x00060005,0x000004ae, + 0x63725369,0x75706e49,0x736f5074,0x00000000,0x00070005,0x000004b2,0x63725366,0x696a6e55, + 0x72657474,0x6f506465,0x00000073,0x00070005,0x000004b8,0x73614266,0x6d615365,0x4f656c70, + 0x65736666,0x00000074,0x00050005,0x000004bc,0x7366666f,0x4c547465,0x00000000,0x00050005, + 0x000004cd,0x696c4662,0x776f5270,0x00000000,0x00050005,0x000004d3,0x696c4662,0x6c6f4370, + 0x00000000,0x00050005,0x000004d9,0x66664f66,0x54746573,0x0000004c,0x00070005,0x000004dc, + 0x49734962,0x6974696e,0x61536c61,0x656c706d,0x00000000,0x00060005,0x000004df,0x6d615369, + 0x49656c70,0x7865646e,0x00000000,0x00030005,0x000004e0,0x00776f72,0x00030005,0x000004e8, + 0x006c6f63,0x00060005,0x000004f0,0x6d615369,0x43656c70,0x6f526c6f,0x00000077,0x00060005, + 0x00000504,0x63725369,0x706d6153,0x6f50656c,0x00000073,0x00060005,0x0000050a,0x6d615369, + 0x43656c70,0x64726f6f,0x00000000,0x00040005,0x0000050c,0x61726170,0x0000006d,0x00040005, + 0x0000050e,0x61726170,0x0000006d,0x00040005,0x0000050f,0x61726170,0x0000006d,0x00050005, + 0x00000514,0x6d615366,0x73656c70,0x00000000,0x00040005,0x00000516,0x61726170,0x0000006d, + 0x00040005,0x0000052c,0x61726170,0x0000006d,0x00040005,0x00000530,0x61726170,0x0000006d, + 0x00040005,0x00000532,0x61726170,0x0000006d,0x00060005,0x00000537,0x72654b66,0x426c656e, + 0x4d736169,0x00007861,0x00040005,0x00000538,0x61726170,0x0000006d,0x00060005,0x0000053c, + 0x72654b66,0x426c656e,0x4d736169,0x00006e69,0x00040005,0x00000541,0x61726170,0x0000006d, + 0x00040005,0x00000542,0x61726170,0x0000006d,0x00070005,0x00000544,0x72654b66,0x426c656e, + 0x57736169,0x68676965,0x00000074,0x00040005,0x0000054e,0x61726170,0x0000006d,0x00040005, + 0x00000550,0x61726170,0x0000006d,0x00040005,0x00000551,0x61726170,0x0000006d,0x00040005, + 0x00000553,0x61726170,0x0000006d,0x00040005,0x00000554,0x61726170,0x0000006d,0x00050005, + 0x00000556,0x72654b66,0x426c656e,0x00736169,0x00040005,0x00000557,0x61726170,0x0000006d, + 0x00040005,0x00000559,0x61726170,0x0000006d,0x00040005,0x0000055b,0x61726170,0x0000006d, + 0x00030005,0x0000055e,0x00776f72,0x00030005,0x00000566,0x006c6f63,0x00060005,0x0000056e, + 0x706d6173,0x6f43656c,0x776f526c,0x00000000,0x00040005,0x00000582,0x66664f66,0x00746573, + 0x00070005,0x00000587,0x63725366,0x706d6153,0x664f656c,0x74657366,0x00000000,0x00060005, + 0x0000058b,0x63725369,0x706d6153,0x6f50656c,0x00000073,0x00060005,0x00000591,0x536e4f66, + 0x65657263,0x6361466e,0x00726f74,0x00040005,0x00000594,0x61726170,0x0000006d,0x00040005, + 0x00000595,0x61726170,0x0000006d,0x00060005,0x0000059c,0x6d615366,0x57656c70,0x68676965, + 0x00000074,0x00040005,0x0000059e,0x61726170,0x0000006d,0x00040005,0x000005a0,0x61726170, + 0x0000006d,0x00070005,0x000005b2,0x63725366,0x706d6153,0x664f656c,0x74657366,0x00007153, + 0x00070005,0x000005b6,0x786f4266,0x706d6153,0x6557656c,0x74686769,0x00000000,0x00060005, + 0x000005bd,0x696e4962,0x6c616974,0x706d6153,0x0000656c,0x00040005,0x000005c7,0x61726170, + 0x0000006d,0x00040005,0x000005c9,0x61726170,0x0000006d,0x00040005,0x000005d5,0x61726170, + 0x0000006d,0x00040005,0x000005f4,0x61726170,0x0000006d,0x00040005,0x000005f7,0x61726170, + 0x0000006d,0x00040005,0x00000600,0x61726170,0x0000006d,0x00040005,0x00000604,0x61726170, + 0x0000006d,0x00040005,0x00000606,0x61726170,0x0000006d,0x00040005,0x0000060b,0x61726170, + 0x0000006d,0x00040005,0x00000610,0x706d6153,0x0073656c,0x00040005,0x00000612,0x61726170, + 0x0000006d,0x00040005,0x00000614,0x61726170,0x0000006d,0x00040005,0x00000615,0x61726170, + 0x0000006d,0x00040005,0x00000618,0x61726170,0x0000006d,0x00040005,0x0000061c,0x61726170, + 0x0000006d,0x00040005,0x0000061e,0x61726170,0x0000006d,0x00040005,0x0000061f,0x61726170, + 0x0000006d,0x00040005,0x00000622,0x61726170,0x0000006d,0x00040005,0x00000626,0x61726170, + 0x0000006d,0x00040005,0x00000628,0x61726170,0x0000006d,0x00040005,0x00000629,0x61726170, + 0x0000006d,0x00040005,0x0000062c,0x61726170,0x0000006d,0x00040005,0x00000630,0x61726170, + 0x0000006d,0x00040005,0x00000632,0x61726170,0x0000006d,0x00040005,0x00000633,0x61726170, + 0x0000006d,0x00040005,0x00000636,0x61726170,0x0000006d,0x00040005,0x0000063a,0x61726170, + 0x0000006d,0x00040005,0x0000063c,0x61726170,0x0000006d,0x00040005,0x0000063d,0x61726170, + 0x0000006d,0x00040005,0x00000640,0x61726170,0x0000006d,0x00040005,0x00000643,0x61726170, + 0x0000006d,0x00040005,0x00000645,0x61726170,0x0000006d,0x00040005,0x00000646,0x61726170, + 0x0000006d,0x00040005,0x00000649,0x61726170,0x0000006d,0x00040005,0x0000064d,0x61726170, + 0x0000006d,0x00040005,0x0000064f,0x61726170,0x0000006d,0x00040005,0x00000650,0x61726170, + 0x0000006d,0x00040005,0x00000653,0x61726170,0x0000006d,0x00040005,0x00000657,0x61726170, + 0x0000006d,0x00040005,0x00000659,0x61726170,0x0000006d,0x00040005,0x0000065a,0x61726170, + 0x0000006d,0x00040005,0x0000065d,0x61726170,0x0000006d,0x00040005,0x00000661,0x61726170, + 0x0000006d,0x00040005,0x00000663,0x61726170,0x0000006d,0x00040005,0x00000664,0x61726170, + 0x0000006d,0x00040005,0x00000667,0x61726170,0x0000006d,0x00040005,0x0000066b,0x61726170, + 0x0000006d,0x00040005,0x0000066d,0x61726170,0x0000006d,0x00040005,0x0000066e,0x61726170, + 0x0000006d,0x00040005,0x00000671,0x61726170,0x0000006d,0x00040005,0x00000675,0x61726170, + 0x0000006d,0x00040005,0x00000677,0x61726170,0x0000006d,0x00040005,0x00000678,0x61726170, + 0x0000006d,0x00040005,0x0000067b,0x61726170,0x0000006d,0x00040005,0x0000067f,0x61726170, + 0x0000006d,0x00040005,0x00000681,0x61726170,0x0000006d,0x00040005,0x00000682,0x61726170, + 0x0000006d,0x00040005,0x00000685,0x61726170,0x0000006d,0x00040005,0x00000689,0x61726170, + 0x0000006d,0x00040005,0x0000068b,0x61726170,0x0000006d,0x00040005,0x0000068c,0x61726170, + 0x0000006d,0x00040005,0x0000068f,0x61726170,0x0000006d,0x00040005,0x00000693,0x61726170, + 0x0000006d,0x00040005,0x00000695,0x61726170,0x0000006d,0x00040005,0x00000696,0x61726170, + 0x0000006d,0x00040005,0x00000699,0x61726170,0x0000006d,0x00040005,0x0000069d,0x61726170, + 0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a0,0x61726170, + 0x0000006d,0x00040005,0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006a7,0x61726170, + 0x0000006d,0x00040005,0x000006a9,0x61726170,0x0000006d,0x00040005,0x000006aa,0x61726170, + 0x0000006d,0x00040005,0x000006ad,0x61726170,0x0000006d,0x00050005,0x000006b3,0x53785066, + 0x6c706d61,0x00000065,0x00040005,0x000006b9,0x46785066,0x00636172,0x00040005,0x000006ba, + 0x61726170,0x0000006d,0x00040005,0x000006c1,0x61726170,0x0000006d,0x00040005,0x000006c2, + 0x61726170,0x0000006d,0x00040005,0x000006c6,0x61726170,0x0000006d,0x00040005,0x000006c7, + 0x61726170,0x0000006d,0x00040005,0x000006ce,0x61726170,0x0000006d,0x00040005,0x000006cf, + 0x61726170,0x0000006d,0x00040005,0x000006d3,0x61726170,0x0000006d,0x00040005,0x000006d4, + 0x61726170,0x0000006d,0x00050005,0x000006d7,0x53785069,0x6c706d61,0x00000065,0x00050005, + 0x000006db,0x6c6f4366,0x5958726f,0x00000000,0x00040005,0x000006dc,0x61726170,0x0000006d, + 0x00040005,0x000006de,0x61726170,0x0000006d,0x00040005,0x000006e1,0x61726170,0x0000006d, + 0x00040005,0x000006e2,0x61726170,0x0000006d,0x00080005,0x000006e8,0x6c694466,0x64657461, + 0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005,0x000006ee,0x61726170,0x0000006d, + 0x00040005,0x000006f9,0x61726170,0x0000006d,0x00070005,0x000006fe,0x70655266,0x656a6f72, + 0x64657463,0x74736948,0x0079726f,0x00040005,0x00000700,0x61726170,0x0000006d,0x00040005, + 0x00000702,0x61726170,0x0000006d,0x00040005,0x00000711,0x61726170,0x0000006d,0x00040005, + 0x00000727,0x61726170,0x0000006d,0x00040005,0x00000728,0x61726170,0x0000006d,0x00040005, + 0x0000072b,0x61726170,0x0000006d,0x00040005,0x0000072f,0x61726170,0x0000006d,0x00040005, + 0x00000731,0x61726170,0x0000006d,0x00040005,0x00000734,0x61726170,0x0000006d,0x00040005, + 0x00000738,0x61726170,0x0000006d,0x00040005,0x0000073a,0x61726170,0x0000006d,0x00040005, + 0x0000073d,0x706c4166,0x00006168,0x00040005,0x00000743,0x61726170,0x0000006d,0x00040005, + 0x00000745,0x61726170,0x0000006d,0x00040005,0x00000748,0x61726170,0x0000006d,0x00040005, + 0x0000074b,0x61726170,0x0000006d,0x00040005,0x0000074f,0x61726170,0x0000006d,0x00040005, + 0x00000754,0x61726170,0x0000006d,0x00070005,0x00000759,0x566b3466,0x636f6c65,0x46797469, + 0x6f746361,0x00000072,0x00040005,0x0000075d,0x61726170,0x0000006d,0x00060005,0x0000075f, + 0x73694466,0x636e6174,0x63614665,0x00726f74,0x00040005,0x00000764,0x61726170,0x0000006d, + 0x00070005,0x00000766,0x63634166,0x6c756d75,0x6f697461,0x6361466e,0x00726f74,0x00060005, + 0x00000769,0x61655266,0x76697463,0x63614665,0x00726f74,0x00040005,0x0000076a,0x61726170, + 0x0000006d,0x00040005,0x0000076c,0x61726170,0x0000006d,0x00080005,0x0000076e,0x61685366, + 0x676e6964,0x6e616843,0x61466567,0x726f7463,0x00000000,0x00050005,0x00000770,0x786f4266, + 0x6c616353,0x00005465,0x00040005,0x00000771,0x61726170,0x0000006d,0x00040005,0x00000773, + 0x61726170,0x0000006d,0x00040005,0x00000776,0x61726170,0x0000006d,0x00040005,0x00000778, + 0x61726170,0x0000006d,0x00040005,0x0000077a,0x61726170,0x0000006d,0x00040005,0x0000077c, + 0x61726170,0x0000006d,0x00040005,0x0000077e,0x61726170,0x0000006d,0x00040005,0x00000780, + 0x61726170,0x0000006d,0x00050005,0x00000782,0x786f4266,0x6c616353,0x00000065,0x00040005, + 0x00000784,0x61726170,0x0000006d,0x00040005,0x00000785,0x61726170,0x0000006d,0x00040005, + 0x00000786,0x61726170,0x0000006d,0x00060005,0x00000789,0x61635366,0x4264656c,0x6556786f, + 0x00000063,0x00080005,0x00000791,0x616c4366,0x6465706d,0x6c616353,0x6f426465,0x63655678, + 0x00000000,0x00040005,0x00000794,0x61726170,0x0000006d,0x00040005,0x00000796,0x61726170, + 0x0000006d,0x00090005,0x00000798,0x61725466,0x6f66736e,0x64656d72,0x74736948,0x4379726f, + 0x726f6c6f,0x00000000,0x00080005,0x000007a5,0x616c4366,0x6465706d,0x74736948,0x4379726f, + 0x726f6c6f,0x00000000,0x00090005,0x000007a8,0x6e694666,0x6c436c61,0x65706d61,0x73694864, + 0x79726f74,0x6f6c6f43,0x00000072,0x00080005,0x000007af,0x73694866,0x79726f74,0x746e6f43, + 0x75626972,0x6e6f6974,0x00000000,0x00040005,0x000007b0,0x61726170,0x0000006d,0x00040005, + 0x000007b2,0x61726170,0x0000006d,0x00040005,0x000007bb,0x61726170,0x0000006d,0x00040005, + 0x000007be,0x61726170,0x0000006d,0x00040005,0x000007c0,0x61726170,0x0000006d,0x00040005, + 0x000007c3,0x61726170,0x0000006d,0x00080005,0x000007cf,0x66694c66,0x6d697465,0x63654465, + 0x73616572,0x63614665,0x00726f74,0x00040005,0x000007d0,0x61726170,0x0000006d,0x00040005, + 0x000007d4,0x61726170,0x0000006d,0x00040005,0x000007d7,0x61726170,0x0000006d,0x00040005, + 0x000007db,0x61726170,0x0000006d,0x00040005,0x000007dc,0x61726170,0x0000006d,0x00040005, + 0x000007e3,0x61726170,0x0000006d,0x00040005,0x000007e4,0x61726170,0x0000006d,0x00040005, + 0x000007ea,0x61726170,0x0000006d,0x00040005,0x000007ed,0x61726170,0x0000006d,0x00070005, + 0x000007f0,0x77654e66,0x6b636f4c,0x65746e49,0x7469736e,0x00000079,0x00040005,0x000007f1, + 0x61726170,0x0000006d,0x00040005,0x000007f8,0x61726170,0x0000006d,0x00040005,0x000007f9, + 0x61726170,0x0000006d,0x00040005,0x00000803,0x61726170,0x0000006d,0x00040005,0x00000804, + 0x61726170,0x0000006d,0x00040005,0x00000806,0x61726170,0x0000006d,0x00040005,0x00000807, + 0x61726170,0x0000006d,0x00070005,0x0000080a,0x66694c66,0x6d697465,0x63654465,0x73616572, + 0x00000065,0x00040005,0x00000815,0x61726170,0x0000006d,0x00040005,0x00000816,0x61726170, + 0x0000006d,0x00080005,0x00000819,0x74734566,0x74616d69,0x76556465,0x7478654e,0x6d617246, + 0x00000065,0x00040005,0x0000081f,0x61726170,0x0000006d,0x00070005,0x00000829,0x73614266, + 0x63634165,0x6c756d75,0x6f697461,0x0000006e,0x00040005,0x00000830,0x61726170,0x0000006d, + 0x00040005,0x00000831,0x61726170,0x0000006d,0x00040005,0x00000833,0x61726170,0x0000006d, + 0x00040005,0x00000835,0x61726170,0x0000006d,0x00040005,0x00000837,0x61726170,0x0000006d, + 0x00040005,0x00000838,0x61726170,0x0000006d,0x00040005,0x0000083a,0x61726170,0x0000006d, + 0x00040005,0x0000083c,0x61726170,0x0000006d,0x00040005,0x00000842,0x55724866,0x00000076, + 0x00040005,0x00000855,0x61726170,0x0000006d,0x00040005,0x00000858,0x61726170,0x0000006d, + 0x00040005,0x00000859,0x61726170,0x0000006d,0x00040005,0x0000085c,0x61726170,0x0000006d, + 0x00040005,0x0000085e,0x61726170,0x0000006d,0x00040005,0x00000862,0x61726170,0x0000006d, + 0x00040005,0x00000867,0x61726170,0x0000006d,0x00080005,0x0000086b,0x6d754c66,0x736e4961, + 0x69626174,0x7974696c,0x485f7655,0x00000057,0x00040005,0x0000086e,0x61726170,0x0000006d, + 0x00040005,0x00000870,0x61726170,0x0000006d,0x00040005,0x00000871,0x61726170,0x0000006d, + 0x00040005,0x00000873,0x61726170,0x0000006d,0x00070005,0x00000877,0x72614666,0x73656874, + 0x70654474,0x76556874,0x00000000,0x00040005,0x0000087c,0x61726170,0x0000006d,0x00040005, + 0x0000087f,0x61726170,0x0000006d,0x00040005,0x00000880,0x61726170,0x0000006d,0x00040005, + 0x00000882,0x61726170,0x0000006d,0x00080005,0x00000890,0x6c694466,0x64657461,0x63616552, + 0x65766974,0x6b73614d,0x00000073,0x00040005,0x00000891,0x61726170,0x0000006d,0x00040005, + 0x00000895,0x61726170,0x0000006d,0x00040005,0x0000089a,0x61726170,0x0000006d,0x00040005, + 0x0000089f,0x61726170,0x0000006d,0x00040005,0x000008a4,0x61726170,0x0000006d,0x00040005, + 0x000008ba,0x61726170,0x0000736d,0x00040005,0x000008bb,0x61746164,0x00000000,0x00040005, + 0x000008bc,0x61726170,0x0000006d,0x00040005,0x000008be,0x61726170,0x0000006d,0x00040005, + 0x000008c0,0x61726170,0x0000006d,0x00040005,0x000008d0,0x61726170,0x0000006d,0x00040005, + 0x000008d4,0x61726170,0x0000006d,0x00040005,0x000008d6,0x61726170,0x0000006d,0x00040005, + 0x000008db,0x61726170,0x0000006d,0x00040005,0x000008e0,0x61726170,0x0000006d,0x00040005, + 0x000008e5,0x61726170,0x0000006d,0x00040005,0x000008ea,0x61726170,0x0000006d,0x00040005, + 0x000008f4,0x61726170,0x0000006d,0x00040005,0x000008f7,0x61726170,0x0000006d,0x00040005, + 0x00000902,0x61726170,0x0000006d,0x00040005,0x00000904,0x61726170,0x0000006d,0x00040005, + 0x00000906,0x61726170,0x0000006d,0x00040005,0x00000908,0x61726170,0x0000006d,0x00040005, + 0x0000090c,0x61726170,0x0000006d,0x00040005,0x0000090e,0x61726170,0x0000006d,0x00080005, + 0x00000912,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x00000916,0x61726170,0x0000006d,0x00060005,0x0000091a,0x6f505f73,0x43746e69,0x706d616c, + 0x00000000,0x00060005,0x0000091b,0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00060005, + 0x0000091c,0x616c5f72,0x6f7a636e,0x756c5f73,0x00000074,0x00030047,0x00000194,0x00000002, + 0x00050048,0x00000194,0x00000000,0x00000023,0x00000000,0x00050048,0x00000194,0x00000001, + 0x00000023,0x00000008,0x00050048,0x00000194,0x00000002,0x00000023,0x00000010,0x00050048, + 0x00000194,0x00000003,0x00000023,0x00000018,0x00050048,0x00000194,0x00000004,0x00000023, + 0x00000020,0x00050048,0x00000194,0x00000005,0x00000023,0x00000028,0x00050048,0x00000194, + 0x00000006,0x00000023,0x00000030,0x00050048,0x00000194,0x00000007,0x00000023,0x00000040, + 0x00050048,0x00000194,0x00000008,0x00000023,0x00000048,0x00050048,0x00000194,0x00000009, + 0x00000023,0x00000050,0x00050048,0x00000194,0x0000000a,0x00000023,0x00000058,0x00050048, + 0x00000194,0x0000000b,0x00000023,0x00000060,0x00050048,0x00000194,0x0000000c,0x00000023, + 0x00000068,0x00050048,0x00000194,0x0000000d,0x00000023,0x0000006c,0x00050048,0x00000194, + 0x0000000e,0x00000023,0x00000070,0x00050048,0x00000194,0x0000000f,0x00000023,0x00000074, + 0x00050048,0x00000194,0x00000010,0x00000023,0x00000078,0x00050048,0x00000194,0x00000011, + 0x00000023,0x0000007c,0x00050048,0x00000194,0x00000012,0x00000023,0x00000080,0x00050048, + 0x00000194,0x00000013,0x00000023,0x00000084,0x00050048,0x00000194,0x00000014,0x00000023, + 0x00000088,0x00050048,0x00000194,0x00000015,0x00000023,0x0000008c,0x00050048,0x00000194, + 0x00000016,0x00000023,0x00000090,0x00040047,0x00000196,0x00000021,0x0000000c,0x00040047, + 0x00000196,0x00000022,0x00000000,0x00040047,0x000001ce,0x00000021,0x00000008,0x00040047, + 0x000001ce,0x00000022,0x00000000,0x00040047,0x000001d5,0x00000021,0x00000003,0x00040047, + 0x000001d5,0x00000022,0x00000000,0x00030047,0x000001dd,0x00000019,0x00040047,0x000001dd, + 0x00000021,0x00000009,0x00040047,0x000001dd,0x00000022,0x00000000,0x00030047,0x000001e3, + 0x00000019,0x00040047,0x000001e3,0x00000021,0x0000000a,0x00040047,0x000001e3,0x00000022, + 0x00000000,0x00040047,0x000001eb,0x00000021,0x00000005,0x00040047,0x000001eb,0x00000022, + 0x00000000,0x00040047,0x000001f3,0x00000021,0x000003e9,0x00040047,0x000001f3,0x00000022, + 0x00000000,0x00040047,0x000001fe,0x00000021,0x00000007,0x00040047,0x000001fe,0x00000022, + 0x00000000,0x00040047,0x00000209,0x00000021,0x0000000b,0x00040047,0x00000209,0x00000022, + 0x00000000,0x00040047,0x00000214,0x00000021,0x00000002,0x00040047,0x00000214,0x00000022, + 0x00000000,0x00040047,0x0000021c,0x00000021,0x00000000,0x00040047,0x0000021c,0x00000022, + 0x00000000,0x00040047,0x00000228,0x00000021,0x00000001,0x00040047,0x00000228,0x00000022, + 0x00000000,0x00040047,0x00000912,0x0000000b,0x0000001c,0x00040047,0x0000091a,0x00000021, + 0x000003e8,0x00040047,0x0000091a,0x00000022,0x00000000,0x00040047,0x0000091b,0x00000021, + 0x00000006,0x00040047,0x0000091b,0x00000022,0x00000000,0x00040047,0x0000091c,0x00000021, + 0x00000004,0x00040047,0x0000091c,0x00000022,0x00000000,0x00040047,0x00000923,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, + 0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006, + 0x00000007,0x00000007,0x00000007,0x00040017,0x0000000e,0x00000006,0x00000003,0x00040020, + 0x0000000f,0x00000007,0x0000000e,0x00060021,0x00000010,0x0000000e,0x0000000f,0x0000000f, + 0x00000007,0x00040021,0x00000016,0x00000006,0x00000007,0x00040017,0x0000001a,0x00000006, + 0x00000002,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00040021,0x0000001c,0x0000001a, + 0x0000001b,0x00050021,0x00000020,0x00000006,0x00000007,0x00000007,0x00050021,0x00000025, + 0x0000001a,0x0000001b,0x0000001b,0x00050021,0x0000002a,0x0000000e,0x0000000f,0x0000000f, + 0x00040017,0x0000002f,0x00000006,0x00000004,0x00040020,0x00000030,0x00000007,0x0000002f, + 0x00050021,0x00000031,0x0000002f,0x00000030,0x00000030,0x00040015,0x00000036,0x00000020, + 0x00000001,0x00040020,0x00000037,0x00000007,0x00000036,0x00050021,0x00000038,0x00000036, + 0x00000037,0x00000037,0x00040017,0x00000055,0x00000036,0x00000002,0x00030021,0x00000056, + 0x00000055,0x00030021,0x0000005f,0x0000001a,0x00030021,0x00000064,0x00000006,0x00040020, + 0x0000006d,0x00000007,0x00000055,0x00040021,0x0000006e,0x0000000e,0x0000006d,0x00040021, + 0x00000072,0x0000002f,0x0000006d,0x00050021,0x00000076,0x00000002,0x0000006d,0x00000030, + 0x00050021,0x0000007b,0x00000002,0x0000006d,0x0000000f,0x00040021,0x00000082,0x00000006, + 0x0000001b,0x00040021,0x00000089,0x00000006,0x0000006d,0x00050021,0x0000008d,0x00000002, + 0x0000006d,0x00000007,0x00040021,0x00000092,0x0000001a,0x0000006d,0x00040021,0x00000098, + 0x0000002f,0x0000001b,0x0007001e,0x0000009f,0x0000000e,0x0000000e,0x0000000e,0x0000000e, + 0x00000006,0x00040020,0x000000a0,0x00000007,0x0000009f,0x00060021,0x000000a1,0x00000002, + 0x000000a0,0x0000000e,0x00000006,0x00020014,0x000000a7,0x00040020,0x000000a8,0x00000007, + 0x000000a7,0x00070021,0x000000a9,0x00000002,0x000000a8,0x000000a0,0x0000000e,0x00000006, + 0x00040021,0x000000b0,0x00000002,0x000000a0,0x00040021,0x000000b4,0x0000000e,0x0000000f, + 0x00040021,0x000000c1,0x000000a7,0x0000001b,0x00060021,0x000000c5,0x00000055,0x0000006d, + 0x0000006d,0x0000006d,0x00060021,0x000000cb,0x0000001a,0x0000001b,0x0000006d,0x0000006d, + 0x00050021,0x000000d1,0x000000a7,0x0000006d,0x0000006d,0x00080021,0x000000e2,0x0000002f, + 0x00000030,0x00000030,0x00000030,0x00000030,0x00000007,0x0012001e,0x000000ea,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x00040020, + 0x000000eb,0x00000007,0x000000ea,0x00050021,0x000000ec,0x0000002f,0x000000eb,0x0000001b, + 0x00050021,0x000000f6,0x00000002,0x000000a0,0x0000000f,0x00050021,0x000000fb,0x00000006, + 0x0000001b,0x00000007,0x0011001e,0x00000100,0x00000055,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x0000001a,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x000000a7,0x000000a7,0x0009001e,0x00000101,0x0000009f,0x0000000e,0x00000006, + 0x0000000e,0x00000006,0x00000006,0x00000006,0x00040020,0x00000102,0x00000007,0x00000101, + 0x00050021,0x00000103,0x00000006,0x00000100,0x00000102,0x00050021,0x0000010b,0x00000002, + 0x00000100,0x00000102,0x00050021,0x00000113,0x000000ea,0x0000006d,0x0000006d,0x00050021, + 0x00000118,0x0000002f,0x0000001b,0x0000006d,0x00050021,0x0000011d,0x0000001a,0x0000006d, + 0x0000001b,0x00040020,0x00000122,0x00000007,0x00000100,0x00040021,0x00000123,0x00000002, + 0x00000122,0x00050021,0x00000133,0x00000002,0x00000122,0x00000102,0x00060021,0x0000013c, + 0x00000002,0x0000006d,0x00000122,0x00000102,0x00040021,0x00000142,0x00000002,0x0000006d, + 0x0004002b,0x00000006,0x00000154,0x00000000,0x0004002b,0x00000006,0x00000155,0x3f800000, + 0x0019001e,0x00000194,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055, + 0x0000002f,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00040020,0x00000195,0x00000002,0x00000194,0x0004003b,0x00000195,0x00000196, + 0x00000002,0x0004002b,0x00000036,0x00000197,0x00000000,0x00040020,0x00000198,0x00000002, + 0x00000055,0x0004002b,0x00000036,0x0000019d,0x00000004,0x0004002b,0x00000036,0x000001a2, + 0x00000002,0x0004002b,0x00000036,0x000001a7,0x00000003,0x0004002b,0x00000036,0x000001ac, + 0x00000007,0x00040020,0x000001ad,0x00000002,0x0000001a,0x0004002b,0x00000036,0x000001b2, + 0x0000000a,0x0004002b,0x00000036,0x000001b7,0x0000000d,0x00040020,0x000001b8,0x00000002, + 0x00000006,0x0004002b,0x00000036,0x000001bd,0x0000000f,0x0004002b,0x00000036,0x000001c2, + 0x00000011,0x0004002b,0x00000036,0x000001c7,0x00000012,0x00090019,0x000001cc,0x00000006, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001cd, + 0x00000000,0x000001cc,0x0004003b,0x000001cd,0x000001ce,0x00000000,0x0004003b,0x000001cd, + 0x000001d5,0x00000000,0x00090019,0x000001db,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000002,0x00040020,0x000001dc,0x00000000,0x000001db,0x0004003b, + 0x000001dc,0x000001dd,0x00000000,0x00090019,0x000001e1,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000000,0x00040020,0x000001e2,0x00000000,0x000001e1, + 0x0004003b,0x000001e2,0x000001e3,0x00000000,0x0004003b,0x000001cd,0x000001eb,0x00000000, + 0x0002001a,0x000001f1,0x00040020,0x000001f2,0x00000000,0x000001f1,0x0004003b,0x000001f2, + 0x000001f3,0x00000000,0x0003001b,0x000001f5,0x000001cc,0x00040015,0x000001f9,0x00000020, + 0x00000000,0x0004002b,0x000001f9,0x000001fa,0x00000000,0x0004003b,0x000001cd,0x000001fe, + 0x00000000,0x00090019,0x00000207,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000000f,0x00040020,0x00000208,0x00000000,0x00000207,0x0004003b,0x00000208, + 0x00000209,0x00000000,0x0004003b,0x000001cd,0x00000214,0x00000000,0x0004003b,0x000001cd, + 0x0000021c,0x00000000,0x0005002c,0x00000055,0x0000021e,0x00000197,0x00000197,0x0004003b, + 0x000001cd,0x00000228,0x00000000,0x0004002b,0x00000006,0x00000231,0x45700000,0x0004002b, + 0x00000006,0x00000232,0x45070000,0x0005002c,0x0000001a,0x00000233,0x00000231,0x00000232, + 0x0004002b,0x00000036,0x0000023e,0x00000001,0x0004002b,0x00000006,0x0000026b,0x00800000, + 0x0004002b,0x000001f9,0x00000293,0x00000001,0x0004002b,0x000001f9,0x00000297,0x00000002, + 0x0004002b,0x00000006,0x000002ad,0x3e800000,0x0004002b,0x00000006,0x000002b1,0x3f000000, + 0x0004002b,0x00000006,0x000002c1,0xbe800000,0x0004002b,0x00000006,0x000002e7,0x387fda40, + 0x0005002c,0x0000001a,0x00000338,0x000002b1,0x000002b1,0x00040017,0x0000034c,0x000001f9, + 0x00000002,0x00040017,0x00000350,0x000000a7,0x00000002,0x0004002b,0x00000006,0x0000035c, + 0x40490fdb,0x0004002b,0x00000006,0x00000363,0x3fc90fdb,0x0004002b,0x00000006,0x00000370, + 0x40000000,0x0004002b,0x00000006,0x0000037a,0x3ecccccd,0x0004002b,0x00000006,0x00000382, + 0x3fc80000,0x0004002b,0x00000006,0x00000387,0x3f100000,0x0004002b,0x00000006,0x0000038f, + 0x40800000,0x0004002b,0x00000006,0x0000039a,0xbf800000,0x0004002b,0x00000006,0x000003a0, + 0x80000000,0x0004002b,0x00000036,0x000003db,0x00000005,0x0004002b,0x00000036,0x000003dc, + 0x00000006,0x0004002b,0x00000036,0x000003ee,0x00000008,0x0004002b,0x00000036,0x000003ef, + 0x00000009,0x0004002b,0x00000036,0x000003f0,0x0000000b,0x0004002b,0x00000036,0x00000402, + 0x0000000c,0x0004002b,0x00000036,0x00000403,0x0000000e,0x0004002b,0x000001f9,0x00000421, + 0x00000004,0x0004001c,0x00000422,0x0000002f,0x00000421,0x00040020,0x00000423,0x00000007, + 0x00000422,0x0004002b,0x00000006,0x0000048e,0x3ffeb852,0x0006002c,0x0000000e,0x00000496, + 0x00000154,0x00000154,0x00000154,0x0004002b,0x00000036,0x000004c2,0xfffffffe,0x0004002b, + 0x00000036,0x000004c3,0xffffffff,0x0004002b,0x000001f9,0x00000511,0x00000009,0x0004001c, + 0x00000512,0x0000000e,0x00000511,0x00040020,0x00000513,0x00000007,0x00000512,0x0004002b, + 0x00000006,0x0000053f,0x3e99999a,0x0004002b,0x00000006,0x0000054c,0x40a00000,0x0004002b, + 0x00000006,0x000005b7,0xc0133333,0x0004002b,0x00000006,0x000005ef,0x3d3d70a4,0x0005002c, + 0x00000055,0x00000611,0x000004c3,0x000004c3,0x0005002c,0x00000055,0x0000061b,0x00000197, + 0x000004c3,0x0005002c,0x00000055,0x00000625,0x0000023e,0x000004c3,0x0005002c,0x00000055, + 0x0000062f,0x000001a2,0x000004c3,0x0005002c,0x00000055,0x00000639,0x000004c3,0x00000197, + 0x0005002c,0x00000055,0x0000064c,0x0000023e,0x00000197,0x0005002c,0x00000055,0x00000656, + 0x000001a2,0x00000197,0x0005002c,0x00000055,0x00000660,0x000004c3,0x0000023e,0x0005002c, + 0x00000055,0x0000066a,0x00000197,0x0000023e,0x0005002c,0x00000055,0x00000674,0x0000023e, + 0x0000023e,0x0005002c,0x00000055,0x0000067e,0x000001a2,0x0000023e,0x0005002c,0x00000055, + 0x00000688,0x000004c3,0x000001a2,0x0005002c,0x00000055,0x00000692,0x00000197,0x000001a2, + 0x0005002c,0x00000055,0x0000069c,0x0000023e,0x000001a2,0x0005002c,0x00000055,0x000006a6, + 0x000001a2,0x000001a2,0x0004002b,0x000001f9,0x00000716,0x00000003,0x0004002b,0x00000006, + 0x0000075b,0x41a00000,0x0004002b,0x00000006,0x00000760,0x3f400000,0x0004002b,0x00000006, + 0x00000783,0x40400000,0x0004002b,0x00000006,0x0000078c,0x3fd9999a,0x0006002c,0x0000000e, + 0x0000078d,0x0000078c,0x00000155,0x00000155,0x0004002b,0x00000006,0x00000792,0x340018ef, + 0x0006002c,0x0000000e,0x00000793,0x00000792,0x00000792,0x00000792,0x0003002a,0x000000a7, + 0x000007c8,0x0004002b,0x00000006,0x0000080b,0x3dcccccd,0x00030029,0x000000a7,0x00000822, + 0x0004002b,0x00000006,0x0000082b,0x3e19999a,0x0004002b,0x00000006,0x000008ab,0x42c80000, + 0x00040017,0x00000910,0x000001f9,0x00000003,0x00040020,0x00000911,0x00000001,0x00000910, + 0x0004003b,0x00000911,0x00000912,0x00000001,0x0004002b,0x00000006,0x00000918,0x477fe000, + 0x0004002b,0x00000006,0x00000919,0x37801002,0x0004003b,0x000001f2,0x0000091a,0x00000000, + 0x0004003b,0x000001cd,0x0000091b,0x00000000,0x0004003b,0x000001cd,0x0000091c,0x00000000, + 0x0004002b,0x00000006,0x0000091d,0x7f7fffff,0x0004002b,0x00000006,0x0000091e,0x3a1fe868, + 0x0004002b,0x00000006,0x0000091f,0x3d800000,0x0004002b,0x00000006,0x00000920,0x3e400000, + 0x0004002b,0x00000006,0x00000921,0x461c4000,0x0004002b,0x000001f9,0x00000922,0x00000008, + 0x0006002c,0x00000910,0x00000923,0x00000922,0x00000922,0x00000293,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000006d,0x00000916, + 0x00000007,0x0004003d,0x00000910,0x00000913,0x00000912,0x0007004f,0x0000034c,0x00000914, + 0x00000913,0x00000913,0x00000000,0x00000001,0x0004007c,0x00000055,0x00000915,0x00000914, + 0x0003003e,0x00000916,0x00000915,0x00050039,0x00000002,0x00000917,0x00000144,0x00000916, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x00000146,0x00000009,0x0004003d,0x00000006, + 0x00000147,0x0000000a,0x0004003d,0x00000006,0x00000148,0x0000000b,0x0008000c,0x00000006, + 0x00000149,0x00000001,0x0000002e,0x00000146,0x00000147,0x00000148,0x000200fe,0x00000149, + 0x00010038,0x00050036,0x0000000e,0x00000014,0x00000000,0x00000010,0x00030037,0x0000000f, + 0x00000011,0x00030037,0x0000000f,0x00000012,0x00030037,0x00000007,0x00000013,0x000200f8, + 0x00000015,0x0004003d,0x0000000e,0x0000014c,0x00000011,0x0004003d,0x0000000e,0x0000014d, + 0x00000012,0x0004003d,0x00000006,0x0000014e,0x00000013,0x00060050,0x0000000e,0x0000014f, + 0x0000014e,0x0000014e,0x0000014e,0x0008000c,0x0000000e,0x00000150,0x00000001,0x0000002e, + 0x0000014c,0x0000014d,0x0000014f,0x000200fe,0x00000150,0x00010038,0x00050036,0x00000006, + 0x00000018,0x00000000,0x00000016,0x00030037,0x00000007,0x00000017,0x000200f8,0x00000019, + 0x0004003d,0x00000006,0x00000153,0x00000017,0x0008000c,0x00000006,0x00000156,0x00000001, + 0x0000002b,0x00000153,0x00000154,0x00000155,0x000200fe,0x00000156,0x00010038,0x00050036, + 0x0000001a,0x0000001e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x000200f8, + 0x0000001f,0x0004003d,0x0000001a,0x00000159,0x0000001d,0x0006000c,0x0000001a,0x0000015a, + 0x00000001,0x0000000a,0x00000159,0x000200fe,0x0000015a,0x00010038,0x00050036,0x00000006, + 0x00000023,0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x00030037,0x00000007, + 0x00000022,0x000200f8,0x00000024,0x0004003d,0x00000006,0x0000015d,0x00000021,0x0004003d, + 0x00000006,0x0000015e,0x00000022,0x0007000c,0x00000006,0x0000015f,0x00000001,0x00000025, + 0x0000015d,0x0000015e,0x000200fe,0x0000015f,0x00010038,0x00050036,0x0000001a,0x00000028, + 0x00000000,0x00000025,0x00030037,0x0000001b,0x00000026,0x00030037,0x0000001b,0x00000027, + 0x000200f8,0x00000029,0x0004003d,0x0000001a,0x00000162,0x00000026,0x0004003d,0x0000001a, + 0x00000163,0x00000027,0x0007000c,0x0000001a,0x00000164,0x00000001,0x00000025,0x00000162, + 0x00000163,0x000200fe,0x00000164,0x00010038,0x00050036,0x0000000e,0x0000002d,0x00000000, + 0x0000002a,0x00030037,0x0000000f,0x0000002b,0x00030037,0x0000000f,0x0000002c,0x000200f8, + 0x0000002e,0x0004003d,0x0000000e,0x00000167,0x0000002b,0x0004003d,0x0000000e,0x00000168, + 0x0000002c,0x0007000c,0x0000000e,0x00000169,0x00000001,0x00000025,0x00000167,0x00000168, + 0x000200fe,0x00000169,0x00010038,0x00050036,0x0000002f,0x00000034,0x00000000,0x00000031, + 0x00030037,0x00000030,0x00000032,0x00030037,0x00000030,0x00000033,0x000200f8,0x00000035, + 0x0004003d,0x0000002f,0x0000016c,0x00000032,0x0004003d,0x0000002f,0x0000016d,0x00000033, + 0x0007000c,0x0000002f,0x0000016e,0x00000001,0x00000025,0x0000016c,0x0000016d,0x000200fe, + 0x0000016e,0x00010038,0x00050036,0x00000036,0x0000003b,0x00000000,0x00000038,0x00030037, + 0x00000037,0x00000039,0x00030037,0x00000037,0x0000003a,0x000200f8,0x0000003c,0x0004003d, + 0x00000036,0x00000171,0x00000039,0x0004003d,0x00000036,0x00000172,0x0000003a,0x0007000c, + 0x00000036,0x00000173,0x00000001,0x00000027,0x00000171,0x00000172,0x000200fe,0x00000173, + 0x00010038,0x00050036,0x00000006,0x0000003f,0x00000000,0x00000020,0x00030037,0x00000007, + 0x0000003d,0x00030037,0x00000007,0x0000003e,0x000200f8,0x00000040,0x0004003d,0x00000006, + 0x00000176,0x0000003d,0x0004003d,0x00000006,0x00000177,0x0000003e,0x0007000c,0x00000006, + 0x00000178,0x00000001,0x00000028,0x00000176,0x00000177,0x000200fe,0x00000178,0x00010038, + 0x00050036,0x0000001a,0x00000043,0x00000000,0x00000025,0x00030037,0x0000001b,0x00000041, + 0x00030037,0x0000001b,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000001a,0x0000017b, + 0x00000041,0x0004003d,0x0000001a,0x0000017c,0x00000042,0x0007000c,0x0000001a,0x0000017d, + 0x00000001,0x00000028,0x0000017b,0x0000017c,0x000200fe,0x0000017d,0x00010038,0x00050036, + 0x0000000e,0x00000047,0x00000000,0x0000002a,0x00030037,0x0000000f,0x00000045,0x00030037, + 0x0000000f,0x00000046,0x000200f8,0x00000048,0x0004003d,0x0000000e,0x00000180,0x00000045, + 0x0004003d,0x0000000e,0x00000181,0x00000046,0x0007000c,0x0000000e,0x00000182,0x00000001, + 0x00000028,0x00000180,0x00000181,0x000200fe,0x00000182,0x00010038,0x00050036,0x0000002f, + 0x0000004b,0x00000000,0x00000031,0x00030037,0x00000030,0x00000049,0x00030037,0x00000030, + 0x0000004a,0x000200f8,0x0000004c,0x0004003d,0x0000002f,0x00000185,0x00000049,0x0004003d, + 0x0000002f,0x00000186,0x0000004a,0x0007000c,0x0000002f,0x00000187,0x00000001,0x00000028, + 0x00000185,0x00000186,0x000200fe,0x00000187,0x00010038,0x00050036,0x00000036,0x0000004f, + 0x00000000,0x00000038,0x00030037,0x00000037,0x0000004d,0x00030037,0x00000037,0x0000004e, + 0x000200f8,0x00000050,0x0004003d,0x00000036,0x0000018a,0x0000004d,0x0004003d,0x00000036, + 0x0000018b,0x0000004e,0x0007000c,0x00000036,0x0000018c,0x00000001,0x0000002a,0x0000018a, + 0x0000018b,0x000200fe,0x0000018c,0x00010038,0x00050036,0x00000006,0x00000053,0x00000000, + 0x00000020,0x00030037,0x00000007,0x00000051,0x00030037,0x00000007,0x00000052,0x000200f8, + 0x00000054,0x0004003d,0x00000006,0x0000018f,0x00000051,0x0004003d,0x00000006,0x00000190, + 0x00000052,0x0007000c,0x00000006,0x00000191,0x00000001,0x0000001a,0x0000018f,0x00000190, + 0x000200fe,0x00000191,0x00010038,0x00050036,0x00000055,0x00000057,0x00000000,0x00000056, + 0x000200f8,0x00000058,0x00050041,0x00000198,0x00000199,0x00000196,0x00000197,0x0004003d, + 0x00000055,0x0000019a,0x00000199,0x000200fe,0x0000019a,0x00010038,0x00050036,0x00000055, + 0x00000059,0x00000000,0x00000056,0x000200f8,0x0000005a,0x00050041,0x00000198,0x0000019e, + 0x00000196,0x0000019d,0x0004003d,0x00000055,0x0000019f,0x0000019e,0x000200fe,0x0000019f, + 0x00010038,0x00050036,0x00000055,0x0000005b,0x00000000,0x00000056,0x000200f8,0x0000005c, + 0x00050041,0x00000198,0x000001a3,0x00000196,0x000001a2,0x0004003d,0x00000055,0x000001a4, + 0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036,0x00000055,0x0000005d,0x00000000, + 0x00000056,0x000200f8,0x0000005e,0x00050041,0x00000198,0x000001a8,0x00000196,0x000001a7, + 0x0004003d,0x00000055,0x000001a9,0x000001a8,0x000200fe,0x000001a9,0x00010038,0x00050036, + 0x0000001a,0x00000060,0x00000000,0x0000005f,0x000200f8,0x00000061,0x00050041,0x000001ad, + 0x000001ae,0x00000196,0x000001ac,0x0004003d,0x0000001a,0x000001af,0x000001ae,0x000200fe, + 0x000001af,0x00010038,0x00050036,0x0000001a,0x00000062,0x00000000,0x0000005f,0x000200f8, + 0x00000063,0x00050041,0x000001ad,0x000001b3,0x00000196,0x000001b2,0x0004003d,0x0000001a, + 0x000001b4,0x000001b3,0x000200fe,0x000001b4,0x00010038,0x00050036,0x00000006,0x00000065, + 0x00000000,0x00000064,0x000200f8,0x00000066,0x00050041,0x000001b8,0x000001b9,0x00000196, + 0x000001b7,0x0004003d,0x00000006,0x000001ba,0x000001b9,0x000200fe,0x000001ba,0x00010038, + 0x00050036,0x00000006,0x00000067,0x00000000,0x00000064,0x000200f8,0x00000068,0x00050041, + 0x000001b8,0x000001be,0x00000196,0x000001bd,0x0004003d,0x00000006,0x000001bf,0x000001be, + 0x000200fe,0x000001bf,0x00010038,0x00050036,0x00000006,0x00000069,0x00000000,0x00000064, + 0x000200f8,0x0000006a,0x00050041,0x000001b8,0x000001c3,0x00000196,0x000001c2,0x0004003d, + 0x00000006,0x000001c4,0x000001c3,0x000200fe,0x000001c4,0x00010038,0x00050036,0x00000006, + 0x0000006b,0x00000000,0x00000064,0x000200f8,0x0000006c,0x00050041,0x000001b8,0x000001c8, + 0x00000196,0x000001c7,0x0004003d,0x00000006,0x000001c9,0x000001c8,0x000200fe,0x000001c9, + 0x00010038,0x00050036,0x0000000e,0x00000070,0x00000000,0x0000006e,0x00030037,0x0000006d, + 0x0000006f,0x000200f8,0x00000071,0x0004003d,0x000001cc,0x000001cf,0x000001ce,0x0004003d, + 0x00000055,0x000001d0,0x0000006f,0x0007005f,0x0000002f,0x000001d1,0x000001cf,0x000001d0, + 0x00000002,0x00000197,0x0008004f,0x0000000e,0x000001d2,0x000001d1,0x000001d1,0x00000000, + 0x00000001,0x00000002,0x000200fe,0x000001d2,0x00010038,0x00050036,0x0000002f,0x00000074, + 0x00000000,0x00000072,0x00030037,0x0000006d,0x00000073,0x000200f8,0x00000075,0x0004003d, + 0x000001cc,0x000001d6,0x000001d5,0x0004003d,0x00000055,0x000001d7,0x00000073,0x0007005f, + 0x0000002f,0x000001d8,0x000001d6,0x000001d7,0x00000002,0x00000197,0x000200fe,0x000001d8, + 0x00010038,0x00050036,0x00000002,0x00000079,0x00000000,0x00000076,0x00030037,0x0000006d, + 0x00000077,0x00030037,0x00000030,0x00000078,0x000200f8,0x0000007a,0x0004003d,0x000001db, + 0x000001de,0x000001dd,0x0004003d,0x00000055,0x000001df,0x00000077,0x0004003d,0x0000002f, + 0x000001e0,0x00000078,0x00040063,0x000001de,0x000001df,0x000001e0,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000007e,0x00000000,0x0000007b,0x00030037,0x0000006d,0x0000007c, + 0x00030037,0x0000000f,0x0000007d,0x000200f8,0x0000007f,0x0004003d,0x000001e1,0x000001e4, + 0x000001e3,0x0004003d,0x00000055,0x000001e5,0x0000007c,0x0004003d,0x0000000e,0x000001e6, + 0x0000007d,0x00050051,0x00000006,0x000001e7,0x000001e6,0x00000000,0x00050051,0x00000006, + 0x000001e8,0x000001e6,0x00000001,0x00050051,0x00000006,0x000001e9,0x000001e6,0x00000002, + 0x00070050,0x0000002f,0x000001ea,0x000001e7,0x000001e8,0x000001e9,0x00000155,0x00040063, + 0x000001e4,0x000001e5,0x000001ea,0x000100fd,0x00010038,0x00050036,0x00000055,0x00000080, + 0x00000000,0x00000056,0x000200f8,0x00000081,0x0004003d,0x000001cc,0x000001ec,0x000001eb, + 0x00050067,0x00000055,0x000001ed,0x000001ec,0x00000197,0x000200fe,0x000001ed,0x00010038, + 0x00050036,0x00000006,0x00000084,0x00000000,0x00000082,0x00030037,0x0000001b,0x00000083, + 0x000200f8,0x00000085,0x0004003d,0x000001cc,0x000001f0,0x000001eb,0x0004003d,0x000001f1, + 0x000001f4,0x000001f3,0x00050056,0x000001f5,0x000001f6,0x000001f0,0x000001f4,0x0004003d, + 0x0000001a,0x000001f7,0x00000083,0x00070058,0x0000002f,0x000001f8,0x000001f6,0x000001f7, + 0x00000002,0x00000154,0x00050051,0x00000006,0x000001fb,0x000001f8,0x00000000,0x000200fe, + 0x000001fb,0x00010038,0x00050036,0x00000006,0x00000087,0x00000000,0x00000082,0x00030037, + 0x0000001b,0x00000086,0x000200f8,0x00000088,0x0004003d,0x000001cc,0x000001ff,0x000001fe, + 0x0004003d,0x000001f1,0x00000200,0x000001f3,0x00050056,0x000001f5,0x00000201,0x000001ff, + 0x00000200,0x0004003d,0x0000001a,0x00000202,0x00000086,0x00070058,0x0000002f,0x00000203, + 0x00000201,0x00000202,0x00000002,0x00000154,0x00050051,0x00000006,0x00000204,0x00000203, + 0x00000000,0x000200fe,0x00000204,0x00010038,0x00050036,0x00000006,0x0000008b,0x00000000, + 0x00000089,0x00030037,0x0000006d,0x0000008a,0x000200f8,0x0000008c,0x0004003d,0x00000207, + 0x0000020a,0x00000209,0x0004003d,0x00000055,0x0000020b,0x0000008a,0x00050062,0x0000002f, + 0x0000020c,0x0000020a,0x0000020b,0x00050051,0x00000006,0x0000020d,0x0000020c,0x00000000, + 0x000200fe,0x0000020d,0x00010038,0x00050036,0x00000002,0x00000090,0x00000000,0x0000008d, + 0x00030037,0x0000006d,0x0000008e,0x00030037,0x00000007,0x0000008f,0x000200f8,0x00000091, + 0x0004003d,0x00000207,0x00000210,0x00000209,0x0004003d,0x00000055,0x00000211,0x0000008e, + 0x0004003d,0x00000006,0x00000212,0x0000008f,0x00070050,0x0000002f,0x00000213,0x00000212, + 0x00000154,0x00000154,0x00000154,0x00040063,0x00000210,0x00000211,0x00000213,0x000100fd, + 0x00010038,0x00050036,0x0000001a,0x00000094,0x00000000,0x00000092,0x00030037,0x0000006d, + 0x00000093,0x000200f8,0x00000095,0x0004003d,0x000001cc,0x00000215,0x00000214,0x0004003d, + 0x00000055,0x00000216,0x00000093,0x0007005f,0x0000002f,0x00000217,0x00000215,0x00000216, + 0x00000002,0x00000197,0x0007004f,0x0000001a,0x00000218,0x00000217,0x00000217,0x00000000, + 0x00000001,0x000200fe,0x00000218,0x00010038,0x00050036,0x00000006,0x00000096,0x00000000, + 0x00000064,0x000200f8,0x00000097,0x0004003b,0x00000007,0x0000021b,0x00000007,0x0004003d, + 0x000001cc,0x0000021d,0x0000021c,0x0007005f,0x0000002f,0x0000021f,0x0000021d,0x0000021e, + 0x00000002,0x00000197,0x00050051,0x00000006,0x00000220,0x0000021f,0x00000000,0x0003003e, + 0x0000021b,0x00000220,0x0004003d,0x00000006,0x00000221,0x0000021b,0x000500b4,0x000000a7, + 0x00000222,0x00000221,0x00000154,0x000300f7,0x00000224,0x00000000,0x000400fa,0x00000222, + 0x00000223,0x00000224,0x000200f8,0x00000223,0x0003003e,0x0000021b,0x00000155,0x000200f9, + 0x00000224,0x000200f8,0x00000224,0x0004003d,0x00000006,0x00000225,0x0000021b,0x000200fe, + 0x00000225,0x00010038,0x00050036,0x0000002f,0x0000009a,0x00000000,0x00000098,0x00030037, + 0x0000001b,0x00000099,0x000200f8,0x0000009b,0x0004003d,0x000001cc,0x00000229,0x00000228, + 0x0004003d,0x000001f1,0x0000022a,0x000001f3,0x00050056,0x000001f5,0x0000022b,0x00000229, + 0x0000022a,0x0004003d,0x0000001a,0x0000022c,0x00000099,0x00070058,0x0000002f,0x0000022d, + 0x0000022b,0x0000022c,0x00000002,0x00000154,0x000200fe,0x0000022d,0x00010038,0x00050036, + 0x00000006,0x0000009d,0x00000000,0x00000082,0x00030037,0x0000001b,0x0000009c,0x000200f8, + 0x0000009e,0x0004003d,0x0000001a,0x00000230,0x0000009c,0x00050085,0x0000001a,0x00000234, + 0x00000230,0x00000233,0x0006000c,0x00000006,0x00000235,0x00000001,0x00000042,0x00000234, + 0x000200fe,0x00000235,0x00010038,0x00050036,0x00000002,0x000000a5,0x00000000,0x000000a1, + 0x00030037,0x000000a0,0x000000a2,0x00030037,0x0000000e,0x000000a3,0x00030037,0x00000006, + 0x000000a4,0x000200f8,0x000000a6,0x0004003b,0x0000000f,0x0000023a,0x00000007,0x00050041, + 0x0000000f,0x00000238,0x000000a2,0x000001a2,0x0003003e,0x00000238,0x000000a3,0x00050041, + 0x0000000f,0x00000239,0x000000a2,0x000001a7,0x0003003e,0x00000239,0x000000a3,0x0005008e, + 0x0000000e,0x0000023b,0x000000a3,0x000000a4,0x0003003e,0x0000023a,0x0000023b,0x0004003d, + 0x0000000e,0x0000023c,0x0000023a,0x00050041,0x0000000f,0x0000023d,0x000000a2,0x00000197, + 0x0003003e,0x0000023d,0x0000023c,0x0004003d,0x0000000e,0x0000023f,0x0000023a,0x00050085, + 0x0000000e,0x00000240,0x000000a3,0x0000023f,0x00050041,0x0000000f,0x00000241,0x000000a2, + 0x0000023e,0x0003003e,0x00000241,0x00000240,0x00050041,0x00000007,0x00000242,0x000000a2, + 0x0000019d,0x0003003e,0x00000242,0x000000a4,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000ae,0x00000000,0x000000a9,0x00030037,0x000000a8,0x000000aa,0x00030037,0x000000a0, + 0x000000ab,0x00030037,0x0000000e,0x000000ac,0x00030037,0x00000006,0x000000ad,0x000200f8, + 0x000000af,0x0004003b,0x000000a0,0x00000246,0x00000007,0x0004003b,0x0000000f,0x0000024b, + 0x00000007,0x0004003b,0x0000000f,0x0000024e,0x00000007,0x0004003b,0x0000000f,0x00000251, + 0x00000007,0x0004003b,0x0000000f,0x00000254,0x00000007,0x0004003b,0x0000000f,0x00000257, + 0x00000007,0x0004003d,0x000000a7,0x00000243,0x000000aa,0x000300f7,0x00000245,0x00000000, + 0x000400fa,0x00000243,0x00000244,0x0000024a,0x000200f8,0x00000244,0x0004003d,0x0000009f, + 0x00000247,0x000000ab,0x0003003e,0x00000246,0x00000247,0x00070039,0x00000002,0x00000248, + 0x000000a5,0x00000246,0x000000ac,0x000000ad,0x0004003d,0x0000009f,0x00000249,0x00000246, + 0x0003003e,0x000000ab,0x00000249,0x000200f9,0x00000245,0x000200f8,0x0000024a,0x00050041, + 0x0000000f,0x0000024c,0x000000ab,0x000001a2,0x0004003d,0x0000000e,0x0000024d,0x0000024c, + 0x0003003e,0x0000024b,0x0000024d,0x0003003e,0x0000024e,0x000000ac,0x00060039,0x0000000e, + 0x0000024f,0x0000002d,0x0000024b,0x0000024e,0x00050041,0x0000000f,0x00000250,0x000000ab, + 0x000001a2,0x0003003e,0x00000250,0x0000024f,0x00050041,0x0000000f,0x00000252,0x000000ab, + 0x000001a7,0x0004003d,0x0000000e,0x00000253,0x00000252,0x0003003e,0x00000251,0x00000253, + 0x0003003e,0x00000254,0x000000ac,0x00060039,0x0000000e,0x00000255,0x00000047,0x00000251, + 0x00000254,0x00050041,0x0000000f,0x00000256,0x000000ab,0x000001a7,0x0003003e,0x00000256, + 0x00000255,0x0005008e,0x0000000e,0x00000258,0x000000ac,0x000000ad,0x0003003e,0x00000257, + 0x00000258,0x0004003d,0x0000000e,0x00000259,0x00000257,0x00050041,0x0000000f,0x0000025a, + 0x000000ab,0x00000197,0x0004003d,0x0000000e,0x0000025b,0x0000025a,0x00050081,0x0000000e, + 0x0000025c,0x0000025b,0x00000259,0x00050041,0x0000000f,0x0000025d,0x000000ab,0x00000197, + 0x0003003e,0x0000025d,0x0000025c,0x0004003d,0x0000000e,0x0000025e,0x00000257,0x00050085, + 0x0000000e,0x0000025f,0x000000ac,0x0000025e,0x00050041,0x0000000f,0x00000260,0x000000ab, + 0x0000023e,0x0004003d,0x0000000e,0x00000261,0x00000260,0x00050081,0x0000000e,0x00000262, + 0x00000261,0x0000025f,0x00050041,0x0000000f,0x00000263,0x000000ab,0x0000023e,0x0003003e, + 0x00000263,0x00000262,0x00050041,0x00000007,0x00000264,0x000000ab,0x0000019d,0x0004003d, + 0x00000006,0x00000265,0x00000264,0x00050081,0x00000006,0x00000266,0x00000265,0x000000ad, + 0x00050041,0x00000007,0x00000267,0x000000ab,0x0000019d,0x0003003e,0x00000267,0x00000266, + 0x000200f9,0x00000245,0x000200f8,0x00000245,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000b2,0x00000000,0x000000b0,0x00030037,0x000000a0,0x000000b1,0x000200f8,0x000000b3, + 0x0004003b,0x00000007,0x0000026d,0x00000007,0x0004003b,0x0000000f,0x00000283,0x00000007, + 0x00050041,0x00000007,0x00000268,0x000000b1,0x0000019d,0x0004003d,0x00000006,0x00000269, + 0x00000268,0x0006000c,0x00000006,0x0000026a,0x00000001,0x00000004,0x00000269,0x000500ba, + 0x000000a7,0x0000026c,0x0000026a,0x0000026b,0x000300f7,0x0000026f,0x00000000,0x000400fa, + 0x0000026c,0x0000026e,0x00000272,0x000200f8,0x0000026e,0x00050041,0x00000007,0x00000270, + 0x000000b1,0x0000019d,0x0004003d,0x00000006,0x00000271,0x00000270,0x0003003e,0x0000026d, + 0x00000271,0x000200f9,0x0000026f,0x000200f8,0x00000272,0x0003003e,0x0000026d,0x00000155, + 0x000200f9,0x0000026f,0x000200f8,0x0000026f,0x0004003d,0x00000006,0x00000273,0x0000026d, + 0x00050041,0x00000007,0x00000274,0x000000b1,0x0000019d,0x0003003e,0x00000274,0x00000273, + 0x00050041,0x00000007,0x00000275,0x000000b1,0x0000019d,0x0004003d,0x00000006,0x00000276, + 0x00000275,0x00050041,0x0000000f,0x00000277,0x000000b1,0x00000197,0x0004003d,0x0000000e, + 0x00000278,0x00000277,0x00060050,0x0000000e,0x00000279,0x00000276,0x00000276,0x00000276, + 0x00050088,0x0000000e,0x0000027a,0x00000278,0x00000279,0x00050041,0x0000000f,0x0000027b, + 0x000000b1,0x00000197,0x0003003e,0x0000027b,0x0000027a,0x00050041,0x00000007,0x0000027c, + 0x000000b1,0x0000019d,0x0004003d,0x00000006,0x0000027d,0x0000027c,0x00050041,0x0000000f, + 0x0000027e,0x000000b1,0x0000023e,0x0004003d,0x0000000e,0x0000027f,0x0000027e,0x00060050, + 0x0000000e,0x00000280,0x0000027d,0x0000027d,0x0000027d,0x00050088,0x0000000e,0x00000281, + 0x0000027f,0x00000280,0x00050041,0x0000000f,0x00000282,0x000000b1,0x0000023e,0x0003003e, + 0x00000282,0x00000281,0x00050041,0x0000000f,0x00000284,0x000000b1,0x0000023e,0x0004003d, + 0x0000000e,0x00000285,0x00000284,0x00050041,0x0000000f,0x00000286,0x000000b1,0x00000197, + 0x0004003d,0x0000000e,0x00000287,0x00000286,0x00050041,0x0000000f,0x00000288,0x000000b1, + 0x00000197,0x0004003d,0x0000000e,0x00000289,0x00000288,0x00050085,0x0000000e,0x0000028a, + 0x00000287,0x00000289,0x00050083,0x0000000e,0x0000028b,0x00000285,0x0000028a,0x0006000c, + 0x0000000e,0x0000028c,0x00000001,0x00000004,0x0000028b,0x0006000c,0x0000000e,0x0000028d, + 0x00000001,0x0000001f,0x0000028c,0x0003003e,0x00000283,0x0000028d,0x0004003d,0x0000000e, + 0x0000028e,0x00000283,0x00050041,0x0000000f,0x0000028f,0x000000b1,0x0000023e,0x0003003e, + 0x0000028f,0x0000028e,0x000100fd,0x00010038,0x00050036,0x0000000e,0x000000b6,0x00000000, + 0x000000b4,0x00030037,0x0000000f,0x000000b5,0x000200f8,0x000000b7,0x0004003b,0x0000000f, + 0x00000290,0x00000007,0x00050041,0x00000007,0x00000291,0x000000b5,0x000001fa,0x0004003d, + 0x00000006,0x00000292,0x00000291,0x00050041,0x00000007,0x00000294,0x000000b5,0x00000293, + 0x0004003d,0x00000006,0x00000295,0x00000294,0x00050081,0x00000006,0x00000296,0x00000292, + 0x00000295,0x00050041,0x00000007,0x00000298,0x000000b5,0x00000297,0x0004003d,0x00000006, + 0x00000299,0x00000298,0x00050083,0x00000006,0x0000029a,0x00000296,0x00000299,0x00050041, + 0x00000007,0x0000029b,0x000000b5,0x000001fa,0x0004003d,0x00000006,0x0000029c,0x0000029b, + 0x00050041,0x00000007,0x0000029d,0x000000b5,0x00000297,0x0004003d,0x00000006,0x0000029e, + 0x0000029d,0x00050081,0x00000006,0x0000029f,0x0000029c,0x0000029e,0x00050041,0x00000007, + 0x000002a0,0x000000b5,0x000001fa,0x0004003d,0x00000006,0x000002a1,0x000002a0,0x00050041, + 0x00000007,0x000002a2,0x000000b5,0x00000293,0x0004003d,0x00000006,0x000002a3,0x000002a2, + 0x00050083,0x00000006,0x000002a4,0x000002a1,0x000002a3,0x00050041,0x00000007,0x000002a5, + 0x000000b5,0x00000297,0x0004003d,0x00000006,0x000002a6,0x000002a5,0x00050083,0x00000006, + 0x000002a7,0x000002a4,0x000002a6,0x00060050,0x0000000e,0x000002a8,0x0000029a,0x0000029f, + 0x000002a7,0x0003003e,0x00000290,0x000002a8,0x0004003d,0x0000000e,0x000002a9,0x00000290, + 0x000200fe,0x000002a9,0x00010038,0x00050036,0x0000000e,0x000000b9,0x00000000,0x000000b4, + 0x00030037,0x0000000f,0x000000b8,0x000200f8,0x000000ba,0x0004003b,0x0000000f,0x000002ac, + 0x00000007,0x00050041,0x00000007,0x000002ae,0x000000b8,0x000001fa,0x0004003d,0x00000006, + 0x000002af,0x000002ae,0x00050085,0x00000006,0x000002b0,0x000002ad,0x000002af,0x00050041, + 0x00000007,0x000002b2,0x000000b8,0x00000293,0x0004003d,0x00000006,0x000002b3,0x000002b2, + 0x00050085,0x00000006,0x000002b4,0x000002b1,0x000002b3,0x00050081,0x00000006,0x000002b5, + 0x000002b0,0x000002b4,0x00050041,0x00000007,0x000002b6,0x000000b8,0x00000297,0x0004003d, + 0x00000006,0x000002b7,0x000002b6,0x00050085,0x00000006,0x000002b8,0x000002ad,0x000002b7, + 0x00050081,0x00000006,0x000002b9,0x000002b5,0x000002b8,0x00050041,0x00000007,0x000002ba, + 0x000000b8,0x000001fa,0x0004003d,0x00000006,0x000002bb,0x000002ba,0x00050085,0x00000006, + 0x000002bc,0x000002b1,0x000002bb,0x00050041,0x00000007,0x000002bd,0x000000b8,0x00000297, + 0x0004003d,0x00000006,0x000002be,0x000002bd,0x00050085,0x00000006,0x000002bf,0x000002b1, + 0x000002be,0x00050083,0x00000006,0x000002c0,0x000002bc,0x000002bf,0x00050041,0x00000007, + 0x000002c2,0x000000b8,0x000001fa,0x0004003d,0x00000006,0x000002c3,0x000002c2,0x00050085, + 0x00000006,0x000002c4,0x000002c1,0x000002c3,0x00050041,0x00000007,0x000002c5,0x000000b8, + 0x00000293,0x0004003d,0x00000006,0x000002c6,0x000002c5,0x00050085,0x00000006,0x000002c7, + 0x000002b1,0x000002c6,0x00050081,0x00000006,0x000002c8,0x000002c4,0x000002c7,0x00050041, + 0x00000007,0x000002c9,0x000000b8,0x00000297,0x0004003d,0x00000006,0x000002ca,0x000002c9, + 0x00050085,0x00000006,0x000002cb,0x000002ad,0x000002ca,0x00050083,0x00000006,0x000002cc, + 0x000002c8,0x000002cb,0x00060050,0x0000000e,0x000002cd,0x000002b9,0x000002c0,0x000002cc, + 0x0003003e,0x000002ac,0x000002cd,0x0004003d,0x0000000e,0x000002ce,0x000002ac,0x000200fe, + 0x000002ce,0x00010038,0x00050036,0x0000000e,0x000000bc,0x00000000,0x000000b4,0x00030037, + 0x0000000f,0x000000bb,0x000200f8,0x000000bd,0x0004003b,0x00000007,0x000002d2,0x00000007, + 0x0004003b,0x00000007,0x000002d3,0x00000007,0x0004003b,0x00000007,0x000002d7,0x00000007, + 0x0004003b,0x00000007,0x000002da,0x00000007,0x0004003b,0x00000007,0x000002de,0x00000007, + 0x0004003b,0x00000007,0x000002df,0x00000007,0x0004003d,0x0000000e,0x000002d1,0x000000bb, + 0x0003003e,0x000002d2,0x00000154,0x00050041,0x00000007,0x000002d4,0x000000bb,0x000001fa, + 0x0004003d,0x00000006,0x000002d5,0x000002d4,0x0003003e,0x000002d3,0x000002d5,0x00060039, + 0x00000006,0x000002d6,0x0000003f,0x000002d2,0x000002d3,0x00050041,0x00000007,0x000002d8, + 0x000000bb,0x00000293,0x0004003d,0x00000006,0x000002d9,0x000002d8,0x0003003e,0x000002d7, + 0x000002d9,0x00050041,0x00000007,0x000002db,0x000000bb,0x00000297,0x0004003d,0x00000006, + 0x000002dc,0x000002db,0x0003003e,0x000002da,0x000002dc,0x00060039,0x00000006,0x000002dd, + 0x0000003f,0x000002d7,0x000002da,0x0003003e,0x000002de,0x000002d6,0x0003003e,0x000002df, + 0x000002dd,0x00060039,0x00000006,0x000002e0,0x0000003f,0x000002de,0x000002df,0x00050081, + 0x00000006,0x000002e1,0x000002e0,0x00000155,0x00060050,0x0000000e,0x000002e2,0x000002e1, + 0x000002e1,0x000002e1,0x00050088,0x0000000e,0x000002e3,0x000002d1,0x000002e2,0x000200fe, + 0x000002e3,0x00010038,0x00050036,0x0000000e,0x000000bf,0x00000000,0x000000b4,0x00030037, + 0x0000000f,0x000000be,0x000200f8,0x000000c0,0x0004003b,0x00000007,0x000002e8,0x00000007, + 0x0004003b,0x00000007,0x000002eb,0x00000007,0x0004003b,0x00000007,0x000002ef,0x00000007, + 0x0004003b,0x00000007,0x000002f2,0x00000007,0x0004003b,0x00000007,0x000002f5,0x00000007, + 0x0004003b,0x00000007,0x000002f6,0x00000007,0x0004003d,0x0000000e,0x000002e6,0x000000be, + 0x00050041,0x00000007,0x000002e9,0x000000be,0x00000293,0x0004003d,0x00000006,0x000002ea, + 0x000002e9,0x0003003e,0x000002e8,0x000002ea,0x00050041,0x00000007,0x000002ec,0x000000be, + 0x00000297,0x0004003d,0x00000006,0x000002ed,0x000002ec,0x0003003e,0x000002eb,0x000002ed, + 0x00060039,0x00000006,0x000002ee,0x0000003f,0x000002e8,0x000002eb,0x00050041,0x00000007, + 0x000002f0,0x000000be,0x000001fa,0x0004003d,0x00000006,0x000002f1,0x000002f0,0x0003003e, + 0x000002ef,0x000002f1,0x0003003e,0x000002f2,0x000002ee,0x00060039,0x00000006,0x000002f3, + 0x0000003f,0x000002ef,0x000002f2,0x00050083,0x00000006,0x000002f4,0x00000155,0x000002f3, + 0x0003003e,0x000002f5,0x000002e7,0x0003003e,0x000002f6,0x000002f4,0x00060039,0x00000006, + 0x000002f7,0x0000003f,0x000002f5,0x000002f6,0x00060050,0x0000000e,0x000002f8,0x000002f7, + 0x000002f7,0x000002f7,0x00050088,0x0000000e,0x000002f9,0x000002e6,0x000002f8,0x000200fe, + 0x000002f9,0x00010038,0x00050036,0x000000a7,0x000000c3,0x00000000,0x000000c1,0x00030037, + 0x0000001b,0x000000c2,0x000200f8,0x000000c4,0x00050041,0x00000007,0x000002fc,0x000000c2, + 0x000001fa,0x0004003d,0x00000006,0x000002fd,0x000002fc,0x000500be,0x000000a7,0x000002fe, + 0x000002fd,0x00000154,0x000300f7,0x00000300,0x00000000,0x000400fa,0x000002fe,0x000002ff, + 0x00000300,0x000200f8,0x000002ff,0x00050041,0x00000007,0x00000301,0x000000c2,0x000001fa, + 0x0004003d,0x00000006,0x00000302,0x00000301,0x000500bc,0x000000a7,0x00000303,0x00000302, + 0x00000155,0x000200f9,0x00000300,0x000200f8,0x00000300,0x000700f5,0x000000a7,0x00000304, + 0x000002fe,0x000000c4,0x00000303,0x000002ff,0x000300f7,0x00000306,0x00000000,0x000400fa, + 0x00000304,0x00000305,0x00000306,0x000200f8,0x00000305,0x00050041,0x00000007,0x00000307, + 0x000000c2,0x00000293,0x0004003d,0x00000006,0x00000308,0x00000307,0x000500be,0x000000a7, + 0x00000309,0x00000308,0x00000154,0x000300f7,0x0000030b,0x00000000,0x000400fa,0x00000309, + 0x0000030a,0x0000030b,0x000200f8,0x0000030a,0x00050041,0x00000007,0x0000030c,0x000000c2, + 0x00000293,0x0004003d,0x00000006,0x0000030d,0x0000030c,0x000500bc,0x000000a7,0x0000030e, + 0x0000030d,0x00000155,0x000200f9,0x0000030b,0x000200f8,0x0000030b,0x000700f5,0x000000a7, + 0x0000030f,0x00000309,0x00000305,0x0000030e,0x0000030a,0x000200f9,0x00000306,0x000200f8, + 0x00000306,0x000700f5,0x000000a7,0x00000310,0x00000304,0x00000300,0x0000030f,0x0000030b, + 0x000200fe,0x00000310,0x00010038,0x00050036,0x00000055,0x000000c9,0x00000000,0x000000c5, + 0x00030037,0x0000006d,0x000000c6,0x00030037,0x0000006d,0x000000c7,0x00030037,0x0000006d, + 0x000000c8,0x000200f8,0x000000ca,0x0004003b,0x0000006d,0x00000313,0x00000007,0x0004003b, + 0x00000037,0x0000031a,0x00000007,0x0004003b,0x00000037,0x0000031d,0x00000007,0x0004003b, + 0x00000037,0x0000031f,0x00000007,0x0004003b,0x00000037,0x00000320,0x00000007,0x0004003b, + 0x00000037,0x00000326,0x00000007,0x0004003b,0x00000037,0x00000329,0x00000007,0x0004003b, + 0x00000037,0x0000032b,0x00000007,0x0004003b,0x00000037,0x0000032c,0x00000007,0x0004003d, + 0x00000055,0x00000314,0x000000c6,0x0004003d,0x00000055,0x00000315,0x000000c7,0x00050080, + 0x00000055,0x00000316,0x00000314,0x00000315,0x0003003e,0x00000313,0x00000316,0x00050041, + 0x00000037,0x00000317,0x000000c8,0x000001fa,0x0004003d,0x00000036,0x00000318,0x00000317, + 0x00050082,0x00000036,0x00000319,0x00000318,0x0000023e,0x00050041,0x00000037,0x0000031b, + 0x00000313,0x000001fa,0x0004003d,0x00000036,0x0000031c,0x0000031b,0x0003003e,0x0000031a, + 0x0000031c,0x0003003e,0x0000031d,0x00000319,0x00060039,0x00000036,0x0000031e,0x0000003b, + 0x0000031a,0x0000031d,0x0003003e,0x0000031f,0x00000197,0x0003003e,0x00000320,0x0000031e, + 0x00060039,0x00000036,0x00000321,0x0000004f,0x0000031f,0x00000320,0x00050041,0x00000037, + 0x00000322,0x00000313,0x000001fa,0x0003003e,0x00000322,0x00000321,0x00050041,0x00000037, + 0x00000323,0x000000c8,0x00000293,0x0004003d,0x00000036,0x00000324,0x00000323,0x00050082, + 0x00000036,0x00000325,0x00000324,0x0000023e,0x00050041,0x00000037,0x00000327,0x00000313, + 0x00000293,0x0004003d,0x00000036,0x00000328,0x00000327,0x0003003e,0x00000326,0x00000328, + 0x0003003e,0x00000329,0x00000325,0x00060039,0x00000036,0x0000032a,0x0000003b,0x00000326, + 0x00000329,0x0003003e,0x0000032b,0x00000197,0x0003003e,0x0000032c,0x0000032a,0x00060039, + 0x00000036,0x0000032d,0x0000004f,0x0000032b,0x0000032c,0x00050041,0x00000037,0x0000032e, + 0x00000313,0x00000293,0x0003003e,0x0000032e,0x0000032d,0x0004003d,0x00000055,0x0000032f, + 0x00000313,0x000200fe,0x0000032f,0x00010038,0x00050036,0x0000001a,0x000000cf,0x00000000, + 0x000000cb,0x00030037,0x0000001b,0x000000cc,0x00030037,0x0000006d,0x000000cd,0x00030037, + 0x0000006d,0x000000ce,0x000200f8,0x000000d0,0x0004003b,0x0000001b,0x00000332,0x00000007, + 0x0004003b,0x0000001b,0x00000337,0x00000007,0x0004003b,0x0000001b,0x0000033c,0x00000007, + 0x0004003b,0x0000001b,0x0000033e,0x00000007,0x0004003b,0x0000001b,0x00000340,0x00000007, + 0x0004003b,0x0000001b,0x00000341,0x00000007,0x0004003b,0x0000001b,0x00000343,0x00000007, + 0x0004003d,0x0000001a,0x00000333,0x000000cc,0x0004003d,0x00000055,0x00000334,0x000000cd, + 0x0004006f,0x0000001a,0x00000335,0x00000334,0x00050085,0x0000001a,0x00000336,0x00000333, + 0x00000335,0x0003003e,0x00000332,0x00000336,0x0004003d,0x00000055,0x00000339,0x000000cd, + 0x0004006f,0x0000001a,0x0000033a,0x00000339,0x00050083,0x0000001a,0x0000033b,0x0000033a, + 0x00000338,0x0004003d,0x0000001a,0x0000033d,0x00000332,0x0003003e,0x0000033c,0x0000033d, + 0x0003003e,0x0000033e,0x0000033b,0x00060039,0x0000001a,0x0000033f,0x00000028,0x0000033c, + 0x0000033e,0x0003003e,0x00000340,0x00000338,0x0003003e,0x00000341,0x0000033f,0x00060039, + 0x0000001a,0x00000342,0x00000043,0x00000340,0x00000341,0x0003003e,0x00000337,0x00000342, + 0x0004003d,0x0000001a,0x00000344,0x00000337,0x0004003d,0x00000055,0x00000345,0x000000ce, + 0x0004006f,0x0000001a,0x00000346,0x00000345,0x00050088,0x0000001a,0x00000347,0x00000344, + 0x00000346,0x0003003e,0x00000343,0x00000347,0x0004003d,0x0000001a,0x00000348,0x00000343, + 0x000200fe,0x00000348,0x00010038,0x00050036,0x000000a7,0x000000d4,0x00000000,0x000000d1, + 0x00030037,0x0000006d,0x000000d2,0x00030037,0x0000006d,0x000000d3,0x000200f8,0x000000d5, + 0x0004003d,0x00000055,0x0000034b,0x000000d2,0x0004007c,0x0000034c,0x0000034d,0x0000034b, + 0x0004003d,0x00000055,0x0000034e,0x000000d3,0x0004007c,0x0000034c,0x0000034f,0x0000034e, + 0x000500b0,0x00000350,0x00000351,0x0000034d,0x0000034f,0x0004009b,0x000000a7,0x00000352, + 0x00000351,0x000200fe,0x00000352,0x00010038,0x00050036,0x00000006,0x000000d7,0x00000000, + 0x00000016,0x00030037,0x00000007,0x000000d6,0x000200f8,0x000000d8,0x0004003b,0x00000007, + 0x00000358,0x00000007,0x0004003d,0x00000006,0x00000355,0x000000d6,0x0006000c,0x00000006, + 0x00000356,0x00000001,0x00000004,0x00000355,0x000500b8,0x000000a7,0x00000357,0x00000356, + 0x000002e7,0x000300f7,0x0000035a,0x00000000,0x000400fa,0x00000357,0x00000359,0x0000035b, + 0x000200f8,0x00000359,0x0003003e,0x00000358,0x00000155,0x000200f9,0x0000035a,0x000200f8, + 0x0000035b,0x0004003d,0x00000006,0x0000035d,0x000000d6,0x00050085,0x00000006,0x0000035e, + 0x0000035c,0x0000035d,0x0006000c,0x00000006,0x0000035f,0x00000001,0x0000000d,0x0000035e, + 0x0004003d,0x00000006,0x00000360,0x000000d6,0x00050085,0x00000006,0x00000361,0x0000035c, + 0x00000360,0x00050088,0x00000006,0x00000362,0x0000035f,0x00000361,0x0004003d,0x00000006, + 0x00000364,0x000000d6,0x00050085,0x00000006,0x00000365,0x00000363,0x00000364,0x0006000c, + 0x00000006,0x00000366,0x00000001,0x0000000d,0x00000365,0x0004003d,0x00000006,0x00000367, + 0x000000d6,0x00050085,0x00000006,0x00000368,0x00000363,0x00000367,0x00050088,0x00000006, + 0x00000369,0x00000366,0x00000368,0x00050085,0x00000006,0x0000036a,0x00000362,0x00000369, + 0x0003003e,0x00000358,0x0000036a,0x000200f9,0x0000035a,0x000200f8,0x0000035a,0x0004003d, + 0x00000006,0x0000036b,0x00000358,0x000200fe,0x0000036b,0x00010038,0x00050036,0x00000006, + 0x000000da,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d9,0x000200f8,0x000000db, + 0x0004003b,0x00000007,0x00000371,0x00000007,0x0004003b,0x00000007,0x00000372,0x00000007, + 0x0004003b,0x00000007,0x00000374,0x00000007,0x0004003d,0x00000006,0x0000036e,0x000000d9, + 0x0006000c,0x00000006,0x0000036f,0x00000001,0x00000004,0x0000036e,0x0003003e,0x00000371, + 0x0000036f,0x0003003e,0x00000372,0x00000370,0x00060039,0x00000006,0x00000373,0x00000023, + 0x00000371,0x00000372,0x0003003e,0x000000d9,0x00000373,0x0004003d,0x00000006,0x00000375, + 0x000000d9,0x0003003e,0x00000374,0x00000375,0x00050039,0x00000006,0x00000376,0x000000d7, + 0x00000374,0x000200fe,0x00000376,0x00010038,0x00050036,0x00000006,0x000000dd,0x00000000, + 0x00000016,0x00030037,0x00000007,0x000000dc,0x000200f8,0x000000de,0x0004003b,0x00000007, + 0x00000379,0x00000007,0x0004003b,0x00000007,0x0000037e,0x00000007,0x0004003d,0x00000006, + 0x0000037b,0x000000dc,0x00050085,0x00000006,0x0000037c,0x0000037a,0x0000037b,0x00050083, + 0x00000006,0x0000037d,0x0000037c,0x00000155,0x0003003e,0x00000379,0x0000037d,0x0004003d, + 0x00000006,0x0000037f,0x000000dc,0x00050085,0x00000006,0x00000380,0x000002ad,0x0000037f, + 0x00050083,0x00000006,0x00000381,0x00000380,0x00000155,0x0003003e,0x0000037e,0x00000381, + 0x0004003d,0x00000006,0x00000383,0x00000379,0x00050085,0x00000006,0x00000384,0x00000382, + 0x00000383,0x0004003d,0x00000006,0x00000385,0x00000379,0x00050085,0x00000006,0x00000386, + 0x00000384,0x00000385,0x00050083,0x00000006,0x00000388,0x00000386,0x00000387,0x0004003d, + 0x00000006,0x00000389,0x0000037e,0x0004003d,0x00000006,0x0000038a,0x0000037e,0x00050085, + 0x00000006,0x0000038b,0x00000389,0x0000038a,0x00050085,0x00000006,0x0000038c,0x00000388, + 0x0000038b,0x000200fe,0x0000038c,0x00010038,0x00050036,0x00000006,0x000000e0,0x00000000, + 0x00000016,0x00030037,0x00000007,0x000000df,0x000200f8,0x000000e1,0x0004003b,0x00000007, + 0x00000390,0x00000007,0x0004003b,0x00000007,0x00000392,0x00000007,0x0004003b,0x00000007, + 0x00000394,0x00000007,0x0004003d,0x00000006,0x00000391,0x000000df,0x0003003e,0x00000390, + 0x00000391,0x0003003e,0x00000392,0x0000038f,0x00060039,0x00000006,0x00000393,0x00000023, + 0x00000390,0x00000392,0x0003003e,0x000000df,0x00000393,0x0004003d,0x00000006,0x00000395, + 0x000000df,0x0003003e,0x00000394,0x00000395,0x00050039,0x00000006,0x00000396,0x000000dd, + 0x00000394,0x000200fe,0x00000396,0x00010038,0x00050036,0x0000002f,0x000000e8,0x00000000, + 0x000000e2,0x00030037,0x00000030,0x000000e3,0x00030037,0x00000030,0x000000e4,0x00030037, + 0x00000030,0x000000e5,0x00030037,0x00000030,0x000000e6,0x00030037,0x00000007,0x000000e7, + 0x000200f8,0x000000e9,0x0004003b,0x00000007,0x00000399,0x00000007,0x0004003b,0x00000007, + 0x0000039d,0x00000007,0x0004003b,0x00000007,0x0000039f,0x00000007,0x0004003b,0x00000007, + 0x000003a3,0x00000007,0x0004003b,0x00000007,0x000003a5,0x00000007,0x0004003b,0x00000007, + 0x000003a8,0x00000007,0x0004003b,0x00000007,0x000003aa,0x00000007,0x0004003b,0x00000007, + 0x000003ad,0x00000007,0x0004003d,0x00000006,0x0000039b,0x000000e7,0x00050083,0x00000006, + 0x0000039c,0x0000039a,0x0000039b,0x0003003e,0x0000039d,0x0000039c,0x00050039,0x00000006, + 0x0000039e,0x000000da,0x0000039d,0x0003003e,0x00000399,0x0000039e,0x0004003d,0x00000006, + 0x000003a1,0x000000e7,0x00050083,0x00000006,0x000003a2,0x000003a0,0x000003a1,0x0003003e, + 0x000003a3,0x000003a2,0x00050039,0x00000006,0x000003a4,0x000000da,0x000003a3,0x0003003e, + 0x0000039f,0x000003a4,0x0004003d,0x00000006,0x000003a6,0x000000e7,0x00050083,0x00000006, + 0x000003a7,0x00000155,0x000003a6,0x0003003e,0x000003a8,0x000003a7,0x00050039,0x00000006, + 0x000003a9,0x000000da,0x000003a8,0x0003003e,0x000003a5,0x000003a9,0x0004003d,0x00000006, + 0x000003ab,0x000000e7,0x00050083,0x00000006,0x000003ac,0x00000370,0x000003ab,0x0003003e, + 0x000003ad,0x000003ac,0x00050039,0x00000006,0x000003ae,0x000000da,0x000003ad,0x0003003e, + 0x000003aa,0x000003ae,0x0004003d,0x00000006,0x000003af,0x00000399,0x0004003d,0x0000002f, + 0x000003b0,0x000000e3,0x0005008e,0x0000002f,0x000003b1,0x000003b0,0x000003af,0x0004003d, + 0x00000006,0x000003b2,0x0000039f,0x0004003d,0x0000002f,0x000003b3,0x000000e4,0x0005008e, + 0x0000002f,0x000003b4,0x000003b3,0x000003b2,0x00050081,0x0000002f,0x000003b5,0x000003b1, + 0x000003b4,0x0004003d,0x00000006,0x000003b6,0x000003a5,0x0004003d,0x0000002f,0x000003b7, + 0x000000e5,0x0005008e,0x0000002f,0x000003b8,0x000003b7,0x000003b6,0x00050081,0x0000002f, + 0x000003b9,0x000003b5,0x000003b8,0x0004003d,0x00000006,0x000003ba,0x000003aa,0x0004003d, + 0x0000002f,0x000003bb,0x000000e6,0x0005008e,0x0000002f,0x000003bc,0x000003bb,0x000003ba, + 0x00050081,0x0000002f,0x000003bd,0x000003b9,0x000003bc,0x0004003d,0x00000006,0x000003be, + 0x00000399,0x0004003d,0x00000006,0x000003bf,0x0000039f,0x00050081,0x00000006,0x000003c0, + 0x000003be,0x000003bf,0x0004003d,0x00000006,0x000003c1,0x000003a5,0x00050081,0x00000006, + 0x000003c2,0x000003c0,0x000003c1,0x0004003d,0x00000006,0x000003c3,0x000003aa,0x00050081, + 0x00000006,0x000003c4,0x000003c2,0x000003c3,0x00070050,0x0000002f,0x000003c5,0x000003c4, + 0x000003c4,0x000003c4,0x000003c4,0x00050088,0x0000002f,0x000003c6,0x000003bd,0x000003c5, + 0x000200fe,0x000003c6,0x00010038,0x00050036,0x0000002f,0x000000ef,0x00000000,0x000000ec, + 0x00030037,0x000000eb,0x000000ed,0x00030037,0x0000001b,0x000000ee,0x000200f8,0x000000f0, + 0x0004003b,0x00000030,0x000003c9,0x00000007,0x0004003b,0x00000030,0x000003ca,0x00000007, + 0x0004003b,0x00000030,0x000003cd,0x00000007,0x0004003b,0x00000030,0x000003d0,0x00000007, + 0x0004003b,0x00000030,0x000003d3,0x00000007,0x0004003b,0x00000007,0x000003d6,0x00000007, + 0x0004003b,0x00000030,0x000003da,0x00000007,0x0004003b,0x00000030,0x000003dd,0x00000007, + 0x0004003b,0x00000030,0x000003e0,0x00000007,0x0004003b,0x00000030,0x000003e3,0x00000007, + 0x0004003b,0x00000030,0x000003e6,0x00000007,0x0004003b,0x00000007,0x000003e9,0x00000007, + 0x0004003b,0x00000030,0x000003ed,0x00000007,0x0004003b,0x00000030,0x000003f1,0x00000007, + 0x0004003b,0x00000030,0x000003f4,0x00000007,0x0004003b,0x00000030,0x000003f7,0x00000007, + 0x0004003b,0x00000030,0x000003fa,0x00000007,0x0004003b,0x00000007,0x000003fd,0x00000007, + 0x0004003b,0x00000030,0x00000401,0x00000007,0x0004003b,0x00000030,0x00000404,0x00000007, + 0x0004003b,0x00000030,0x00000407,0x00000007,0x0004003b,0x00000030,0x0000040a,0x00000007, + 0x0004003b,0x00000030,0x0000040d,0x00000007,0x0004003b,0x00000007,0x00000410,0x00000007, + 0x0004003b,0x00000030,0x00000414,0x00000007,0x0004003b,0x00000030,0x00000415,0x00000007, + 0x0004003b,0x00000030,0x00000417,0x00000007,0x0004003b,0x00000030,0x00000419,0x00000007, + 0x0004003b,0x00000030,0x0000041b,0x00000007,0x0004003b,0x00000007,0x0000041d,0x00000007, + 0x0004003b,0x00000423,0x00000424,0x00000007,0x0004003b,0x00000030,0x0000042e,0x00000007, + 0x0004003b,0x00000030,0x00000431,0x00000007,0x0004003b,0x00000037,0x00000434,0x00000007, + 0x0004003b,0x00000030,0x0000043d,0x00000007,0x0004003b,0x00000030,0x0000043f,0x00000007, + 0x0004003b,0x00000030,0x00000444,0x00000007,0x0004003b,0x00000030,0x00000446,0x00000007, + 0x00050041,0x00000030,0x000003cb,0x000000ed,0x00000197,0x0004003d,0x0000002f,0x000003cc, + 0x000003cb,0x0003003e,0x000003ca,0x000003cc,0x00050041,0x00000030,0x000003ce,0x000000ed, + 0x0000023e,0x0004003d,0x0000002f,0x000003cf,0x000003ce,0x0003003e,0x000003cd,0x000003cf, + 0x00050041,0x00000030,0x000003d1,0x000000ed,0x000001a2,0x0004003d,0x0000002f,0x000003d2, + 0x000003d1,0x0003003e,0x000003d0,0x000003d2,0x00050041,0x00000030,0x000003d4,0x000000ed, + 0x000001a7,0x0004003d,0x0000002f,0x000003d5,0x000003d4,0x0003003e,0x000003d3,0x000003d5, + 0x00050041,0x00000007,0x000003d7,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x000003d8, + 0x000003d7,0x0003003e,0x000003d6,0x000003d8,0x00090039,0x0000002f,0x000003d9,0x000000e8, + 0x000003ca,0x000003cd,0x000003d0,0x000003d3,0x000003d6,0x0003003e,0x000003c9,0x000003d9, + 0x00050041,0x00000030,0x000003de,0x000000ed,0x0000019d,0x0004003d,0x0000002f,0x000003df, + 0x000003de,0x0003003e,0x000003dd,0x000003df,0x00050041,0x00000030,0x000003e1,0x000000ed, + 0x000003db,0x0004003d,0x0000002f,0x000003e2,0x000003e1,0x0003003e,0x000003e0,0x000003e2, + 0x00050041,0x00000030,0x000003e4,0x000000ed,0x000003dc,0x0004003d,0x0000002f,0x000003e5, + 0x000003e4,0x0003003e,0x000003e3,0x000003e5,0x00050041,0x00000030,0x000003e7,0x000000ed, + 0x000001ac,0x0004003d,0x0000002f,0x000003e8,0x000003e7,0x0003003e,0x000003e6,0x000003e8, + 0x00050041,0x00000007,0x000003ea,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x000003eb, + 0x000003ea,0x0003003e,0x000003e9,0x000003eb,0x00090039,0x0000002f,0x000003ec,0x000000e8, + 0x000003dd,0x000003e0,0x000003e3,0x000003e6,0x000003e9,0x0003003e,0x000003da,0x000003ec, + 0x00050041,0x00000030,0x000003f2,0x000000ed,0x000003ee,0x0004003d,0x0000002f,0x000003f3, + 0x000003f2,0x0003003e,0x000003f1,0x000003f3,0x00050041,0x00000030,0x000003f5,0x000000ed, + 0x000003ef,0x0004003d,0x0000002f,0x000003f6,0x000003f5,0x0003003e,0x000003f4,0x000003f6, + 0x00050041,0x00000030,0x000003f8,0x000000ed,0x000001b2,0x0004003d,0x0000002f,0x000003f9, + 0x000003f8,0x0003003e,0x000003f7,0x000003f9,0x00050041,0x00000030,0x000003fb,0x000000ed, + 0x000003f0,0x0004003d,0x0000002f,0x000003fc,0x000003fb,0x0003003e,0x000003fa,0x000003fc, + 0x00050041,0x00000007,0x000003fe,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x000003ff, + 0x000003fe,0x0003003e,0x000003fd,0x000003ff,0x00090039,0x0000002f,0x00000400,0x000000e8, + 0x000003f1,0x000003f4,0x000003f7,0x000003fa,0x000003fd,0x0003003e,0x000003ed,0x00000400, + 0x00050041,0x00000030,0x00000405,0x000000ed,0x00000402,0x0004003d,0x0000002f,0x00000406, + 0x00000405,0x0003003e,0x00000404,0x00000406,0x00050041,0x00000030,0x00000408,0x000000ed, + 0x000001b7,0x0004003d,0x0000002f,0x00000409,0x00000408,0x0003003e,0x00000407,0x00000409, + 0x00050041,0x00000030,0x0000040b,0x000000ed,0x00000403,0x0004003d,0x0000002f,0x0000040c, + 0x0000040b,0x0003003e,0x0000040a,0x0000040c,0x00050041,0x00000030,0x0000040e,0x000000ed, + 0x000001bd,0x0004003d,0x0000002f,0x0000040f,0x0000040e,0x0003003e,0x0000040d,0x0000040f, + 0x00050041,0x00000007,0x00000411,0x000000ee,0x000001fa,0x0004003d,0x00000006,0x00000412, + 0x00000411,0x0003003e,0x00000410,0x00000412,0x00090039,0x0000002f,0x00000413,0x000000e8, + 0x00000404,0x00000407,0x0000040a,0x0000040d,0x00000410,0x0003003e,0x00000401,0x00000413, + 0x0004003d,0x0000002f,0x00000416,0x000003c9,0x0003003e,0x00000415,0x00000416,0x0004003d, + 0x0000002f,0x00000418,0x000003da,0x0003003e,0x00000417,0x00000418,0x0004003d,0x0000002f, + 0x0000041a,0x000003ed,0x0003003e,0x00000419,0x0000041a,0x0004003d,0x0000002f,0x0000041c, + 0x00000401,0x0003003e,0x0000041b,0x0000041c,0x00050041,0x00000007,0x0000041e,0x000000ee, + 0x00000293,0x0004003d,0x00000006,0x0000041f,0x0000041e,0x0003003e,0x0000041d,0x0000041f, + 0x00090039,0x0000002f,0x00000420,0x000000e8,0x00000415,0x00000417,0x00000419,0x0000041b, + 0x0000041d,0x0003003e,0x00000414,0x00000420,0x00050041,0x00000030,0x00000425,0x000000ed, + 0x000003db,0x0004003d,0x0000002f,0x00000426,0x00000425,0x00050041,0x00000030,0x00000427, + 0x000000ed,0x000003dc,0x0004003d,0x0000002f,0x00000428,0x00000427,0x00050041,0x00000030, + 0x00000429,0x000000ed,0x000003ef,0x0004003d,0x0000002f,0x0000042a,0x00000429,0x00050041, + 0x00000030,0x0000042b,0x000000ed,0x000001b2,0x0004003d,0x0000002f,0x0000042c,0x0000042b, + 0x00070050,0x00000422,0x0000042d,0x00000426,0x00000428,0x0000042a,0x0000042c,0x0003003e, + 0x00000424,0x0000042d,0x00050041,0x00000030,0x0000042f,0x00000424,0x00000197,0x0004003d, + 0x0000002f,0x00000430,0x0000042f,0x0003003e,0x0000042e,0x00000430,0x00050041,0x00000030, + 0x00000432,0x00000424,0x00000197,0x0004003d,0x0000002f,0x00000433,0x00000432,0x0003003e, + 0x00000431,0x00000433,0x0003003e,0x00000434,0x0000023e,0x000200f9,0x00000435,0x000200f8, + 0x00000435,0x000400f6,0x00000437,0x00000438,0x00000000,0x000200f9,0x00000439,0x000200f8, + 0x00000439,0x0004003d,0x00000036,0x0000043a,0x00000434,0x000500b1,0x000000a7,0x0000043b, + 0x0000043a,0x0000019d,0x000400fa,0x0000043b,0x00000436,0x00000437,0x000200f8,0x00000436, + 0x0004003d,0x00000036,0x0000043c,0x00000434,0x0004003d,0x0000002f,0x0000043e,0x0000042e, + 0x0003003e,0x0000043d,0x0000043e,0x00050041,0x00000030,0x00000440,0x00000424,0x0000043c, + 0x0004003d,0x0000002f,0x00000441,0x00000440,0x0003003e,0x0000043f,0x00000441,0x00060039, + 0x0000002f,0x00000442,0x00000034,0x0000043d,0x0000043f,0x0003003e,0x0000042e,0x00000442, + 0x0004003d,0x00000036,0x00000443,0x00000434,0x0004003d,0x0000002f,0x00000445,0x00000431, + 0x0003003e,0x00000444,0x00000445,0x00050041,0x00000030,0x00000447,0x00000424,0x00000443, + 0x0004003d,0x0000002f,0x00000448,0x00000447,0x0003003e,0x00000446,0x00000448,0x00060039, + 0x0000002f,0x00000449,0x0000004b,0x00000444,0x00000446,0x0003003e,0x00000431,0x00000449, + 0x000200f9,0x00000438,0x000200f8,0x00000438,0x0004003d,0x00000036,0x0000044a,0x00000434, + 0x00050080,0x00000036,0x0000044b,0x0000044a,0x0000023e,0x0003003e,0x00000434,0x0000044b, + 0x000200f9,0x00000435,0x000200f8,0x00000437,0x0004003d,0x0000002f,0x0000044c,0x00000414, + 0x0004003d,0x0000002f,0x0000044d,0x0000042e,0x0004003d,0x0000002f,0x0000044e,0x00000431, + 0x0008000c,0x0000002f,0x0000044f,0x00000001,0x0000002b,0x0000044c,0x0000044d,0x0000044e, + 0x0003003e,0x00000414,0x0000044f,0x0004003d,0x0000002f,0x00000450,0x00000414,0x000200fe, + 0x00000450,0x00010038,0x00050036,0x00000055,0x000000f4,0x00000000,0x000000c5,0x00030037, + 0x0000006d,0x000000f1,0x00030037,0x0000006d,0x000000f2,0x00030037,0x0000006d,0x000000f3, + 0x000200f8,0x000000f5,0x0004003b,0x0000006d,0x00000453,0x00000007,0x0004003b,0x00000037, + 0x0000045a,0x00000007,0x0004003b,0x00000037,0x0000045d,0x00000007,0x0004003b,0x00000037, + 0x0000045f,0x00000007,0x0004003b,0x00000037,0x00000460,0x00000007,0x0004003b,0x00000037, + 0x00000466,0x00000007,0x0004003b,0x00000037,0x00000469,0x00000007,0x0004003b,0x00000037, + 0x0000046b,0x00000007,0x0004003b,0x00000037,0x0000046c,0x00000007,0x0004003d,0x00000055, + 0x00000454,0x000000f1,0x0004003d,0x00000055,0x00000455,0x000000f2,0x00050080,0x00000055, + 0x00000456,0x00000454,0x00000455,0x0003003e,0x00000453,0x00000456,0x00050041,0x00000037, + 0x00000457,0x000000f3,0x000001fa,0x0004003d,0x00000036,0x00000458,0x00000457,0x00050082, + 0x00000036,0x00000459,0x00000458,0x000001a2,0x00050041,0x00000037,0x0000045b,0x00000453, + 0x000001fa,0x0004003d,0x00000036,0x0000045c,0x0000045b,0x0003003e,0x0000045a,0x0000045c, + 0x0003003e,0x0000045d,0x00000459,0x00060039,0x00000036,0x0000045e,0x0000003b,0x0000045a, + 0x0000045d,0x0003003e,0x0000045f,0x0000023e,0x0003003e,0x00000460,0x0000045e,0x00060039, + 0x00000036,0x00000461,0x0000004f,0x0000045f,0x00000460,0x00050041,0x00000037,0x00000462, + 0x00000453,0x000001fa,0x0003003e,0x00000462,0x00000461,0x00050041,0x00000037,0x00000463, + 0x000000f3,0x00000293,0x0004003d,0x00000036,0x00000464,0x00000463,0x00050082,0x00000036, + 0x00000465,0x00000464,0x000001a2,0x00050041,0x00000037,0x00000467,0x00000453,0x00000293, + 0x0004003d,0x00000036,0x00000468,0x00000467,0x0003003e,0x00000466,0x00000468,0x0003003e, + 0x00000469,0x00000465,0x00060039,0x00000036,0x0000046a,0x0000003b,0x00000466,0x00000469, + 0x0003003e,0x0000046b,0x0000023e,0x0003003e,0x0000046c,0x0000046a,0x00060039,0x00000036, + 0x0000046d,0x0000004f,0x0000046b,0x0000046c,0x00050041,0x00000037,0x0000046e,0x00000453, + 0x00000293,0x0003003e,0x0000046e,0x0000046d,0x0004003d,0x00000055,0x0000046f,0x00000453, + 0x000200fe,0x0000046f,0x00010038,0x00050036,0x00000002,0x000000f9,0x00000000,0x000000f6, + 0x00030037,0x000000a0,0x000000f7,0x00030037,0x0000000f,0x000000f8,0x000200f8,0x000000fa, + 0x0004003d,0x0000000e,0x00000472,0x000000f8,0x00050041,0x0000000f,0x00000473,0x000000f7, + 0x000001a2,0x0004003d,0x0000000e,0x00000474,0x00000473,0x00050041,0x0000000f,0x00000475, + 0x000000f7,0x000001a7,0x0004003d,0x0000000e,0x00000476,0x00000475,0x0008000c,0x0000000e, + 0x00000477,0x00000001,0x0000002b,0x00000472,0x00000474,0x00000476,0x0003003e,0x000000f8, + 0x00000477,0x000100fd,0x00010038,0x00050036,0x00000006,0x000000fe,0x00000000,0x000000fb, + 0x00030037,0x0000001b,0x000000fc,0x00030037,0x00000007,0x000000fd,0x000200f8,0x000000ff, + 0x0004003b,0x0000001b,0x00000478,0x00000007,0x0004003b,0x00000007,0x0000047d,0x00000007, + 0x0004003b,0x00000007,0x00000481,0x00000007,0x0004003d,0x0000001a,0x00000479,0x000000fc, + 0x0004003d,0x00000006,0x0000047a,0x000000fd,0x00050050,0x0000001a,0x0000047b,0x0000047a, + 0x0000047a,0x00050085,0x0000001a,0x0000047c,0x00000479,0x0000047b,0x0003003e,0x00000478, + 0x0000047c,0x0004003d,0x0000001a,0x0000047e,0x00000478,0x0004003d,0x0000001a,0x0000047f, + 0x00000478,0x00050094,0x00000006,0x00000480,0x0000047e,0x0000047f,0x0003003e,0x00000481, + 0x00000480,0x00050039,0x00000006,0x00000482,0x000000e0,0x00000481,0x0003003e,0x0000047d, + 0x00000482,0x0004003d,0x00000006,0x00000483,0x0000047d,0x000200fe,0x00000483,0x00010038, + 0x00050036,0x00000006,0x00000106,0x00000000,0x00000103,0x00030037,0x00000100,0x00000104, + 0x00030037,0x00000102,0x00000105,0x000200f8,0x00000107,0x0004003b,0x00000007,0x00000486, + 0x00000007,0x0004003b,0x00000007,0x0000048f,0x00000007,0x0004003b,0x00000007,0x00000490, + 0x00000007,0x00040039,0x0000001a,0x00000487,0x00000062,0x00050050,0x0000001a,0x00000488, + 0x00000155,0x00000155,0x00050088,0x0000001a,0x00000489,0x00000488,0x00000487,0x00050050, + 0x0000001a,0x0000048a,0x00000155,0x00000155,0x00050083,0x0000001a,0x0000048b,0x00000489, + 0x0000048a,0x00050051,0x00000006,0x0000048c,0x0000048b,0x00000000,0x00050081,0x00000006, + 0x0000048d,0x00000155,0x0000048c,0x0003003e,0x00000486,0x0000048d,0x0003003e,0x0000048f, + 0x0000048e,0x0004003d,0x00000006,0x00000491,0x00000486,0x0003003e,0x00000490,0x00000491, + 0x00060039,0x00000006,0x00000492,0x00000023,0x0000048f,0x00000490,0x000200fe,0x00000492, + 0x00010038,0x00050036,0x0000000e,0x00000109,0x00000000,0x0000006e,0x00030037,0x0000006d, + 0x00000108,0x000200f8,0x0000010a,0x0004003b,0x0000000f,0x00000495,0x00000007,0x0004003b, + 0x0000006d,0x00000497,0x00000007,0x0004003b,0x0000000f,0x0000049a,0x00000007,0x0004003b, + 0x0000000f,0x0000049b,0x00000007,0x0004003b,0x0000000f,0x0000049f,0x00000007,0x0004003b, + 0x0000000f,0x000004a0,0x00000007,0x0004003d,0x00000055,0x00000498,0x00000108,0x0003003e, + 0x00000497,0x00000498,0x00050039,0x0000000e,0x00000499,0x00000070,0x00000497,0x0003003e, + 0x0000049a,0x00000496,0x0003003e,0x0000049b,0x00000499,0x00060039,0x0000000e,0x0000049c, + 0x00000047,0x0000049a,0x0000049b,0x00040039,0x00000006,0x0000049d,0x00000096,0x0005008e, + 0x0000000e,0x0000049e,0x0000049c,0x0000049d,0x0003003e,0x00000495,0x0000049e,0x0004003d, + 0x0000000e,0x000004a1,0x00000495,0x0003003e,0x000004a0,0x000004a1,0x00050039,0x0000000e, + 0x000004a2,0x000000b9,0x000004a0,0x0003003e,0x0000049f,0x000004a2,0x0004003d,0x0000000e, + 0x000004a3,0x0000049f,0x000200fe,0x000004a3,0x00010038,0x00050036,0x00000002,0x0000010e, + 0x00000000,0x0000010b,0x00030037,0x00000100,0x0000010c,0x00030037,0x00000102,0x0000010d, + 0x000200f8,0x0000010f,0x0004003b,0x0000001b,0x000004a6,0x00000007,0x0004003b,0x0000001b, + 0x000004aa,0x00000007,0x0004003b,0x0000006d,0x000004ae,0x00000007,0x0004003b,0x0000001b, + 0x000004b2,0x00000007,0x0004003b,0x0000001b,0x000004b8,0x00000007,0x0004003b,0x0000006d, + 0x000004bc,0x00000007,0x0004003b,0x000000a8,0x000004cd,0x00000007,0x0004003b,0x000000a8, + 0x000004d3,0x00000007,0x0004003b,0x0000001b,0x000004d9,0x00000007,0x0004003b,0x000000a8, + 0x000004dc,0x00000007,0x0004003b,0x00000037,0x000004df,0x00000007,0x0004003b,0x00000037, + 0x000004e0,0x00000007,0x0004003b,0x00000037,0x000004e8,0x00000007,0x0004003b,0x0000006d, + 0x000004f0,0x00000007,0x0004003b,0x00000037,0x000004f2,0x00000007,0x0004003b,0x00000037, + 0x000004fb,0x00000007,0x0004003b,0x0000006d,0x00000504,0x00000007,0x0004003b,0x0000006d, + 0x0000050a,0x00000007,0x0004003b,0x0000006d,0x0000050c,0x00000007,0x0004003b,0x0000006d, + 0x0000050e,0x00000007,0x0004003b,0x0000006d,0x0000050f,0x00000007,0x0004003b,0x00000513, + 0x00000514,0x00000007,0x0004003b,0x0000006d,0x00000516,0x00000007,0x0004003b,0x0000000f, + 0x0000052c,0x00000007,0x0004003b,0x0000000f,0x00000530,0x00000007,0x0004003b,0x0000000f, + 0x00000532,0x00000007,0x0004003b,0x00000007,0x00000537,0x00000007,0x0004003b,0x00000102, + 0x00000538,0x00000007,0x0004003b,0x00000007,0x0000053c,0x00000007,0x0004003b,0x00000007, + 0x00000541,0x00000007,0x0004003b,0x00000007,0x00000542,0x00000007,0x0004003b,0x00000007, + 0x00000544,0x00000007,0x0004003b,0x00000007,0x0000054e,0x00000007,0x0004003b,0x00000007, + 0x00000550,0x00000007,0x0004003b,0x00000007,0x00000551,0x00000007,0x0004003b,0x00000007, + 0x00000553,0x00000007,0x0004003b,0x00000007,0x00000554,0x00000007,0x0004003b,0x00000007, + 0x00000556,0x00000007,0x0004003b,0x00000007,0x00000557,0x00000007,0x0004003b,0x00000007, + 0x00000559,0x00000007,0x0004003b,0x00000007,0x0000055b,0x00000007,0x0004003b,0x00000037, + 0x0000055e,0x00000007,0x0004003b,0x00000037,0x00000566,0x00000007,0x0004003b,0x0000006d, + 0x0000056e,0x00000007,0x0004003b,0x00000037,0x00000570,0x00000007,0x0004003b,0x00000037, + 0x00000579,0x00000007,0x0004003b,0x0000001b,0x00000582,0x00000007,0x0004003b,0x0000001b, + 0x00000587,0x00000007,0x0004003b,0x0000006d,0x0000058b,0x00000007,0x0004003b,0x00000007, + 0x00000591,0x00000007,0x0004003b,0x0000006d,0x00000594,0x00000007,0x0004003b,0x0000006d, + 0x00000595,0x00000007,0x0004003b,0x00000007,0x0000059c,0x00000007,0x0004003b,0x0000001b, + 0x0000059e,0x00000007,0x0004003b,0x00000007,0x000005a0,0x00000007,0x0004003b,0x00000007, + 0x000005b2,0x00000007,0x0004003b,0x00000007,0x000005b6,0x00000007,0x0004003b,0x000000a8, + 0x000005bd,0x00000007,0x0004003b,0x000000a8,0x000005c7,0x00000007,0x0004003b,0x000000a0, + 0x000005c9,0x00000007,0x0004003b,0x000000a0,0x000005d5,0x00000007,0x0004003b,0x000000a0, + 0x000005f4,0x00000007,0x0004003b,0x0000000f,0x000005f7,0x00000007,0x0004003b,0x0000000f, + 0x00000600,0x00000007,0x0004003b,0x0000000f,0x00000604,0x00000007,0x0004003b,0x0000000f, + 0x00000606,0x00000007,0x00050051,0x00000055,0x000004a7,0x0000010c,0x00000000,0x0004006f, + 0x0000001a,0x000004a8,0x000004a7,0x00050081,0x0000001a,0x000004a9,0x000004a8,0x00000338, + 0x0003003e,0x000004a6,0x000004a9,0x0004003d,0x0000001a,0x000004ab,0x000004a6,0x00040039, + 0x0000001a,0x000004ac,0x00000062,0x00050085,0x0000001a,0x000004ad,0x000004ab,0x000004ac, + 0x0003003e,0x000004aa,0x000004ad,0x0004003d,0x0000001a,0x000004af,0x000004aa,0x0006000c, + 0x0000001a,0x000004b0,0x00000001,0x00000008,0x000004af,0x0004006e,0x00000055,0x000004b1, + 0x000004b0,0x0003003e,0x000004ae,0x000004b1,0x0004003d,0x00000055,0x000004b3,0x000004ae, + 0x0004006f,0x0000001a,0x000004b4,0x000004b3,0x00050081,0x0000001a,0x000004b5,0x000004b4, + 0x00000338,0x00040039,0x0000001a,0x000004b6,0x00000060,0x00050083,0x0000001a,0x000004b7, + 0x000004b5,0x000004b6,0x0003003e,0x000004b2,0x000004b7,0x0004003d,0x0000001a,0x000004b9, + 0x000004b2,0x0004003d,0x0000001a,0x000004ba,0x000004aa,0x00050083,0x0000001a,0x000004bb, + 0x000004b9,0x000004ba,0x0003003e,0x000004b8,0x000004bb,0x00050041,0x00000007,0x000004bd, + 0x000004b2,0x000001fa,0x0004003d,0x00000006,0x000004be,0x000004bd,0x00050041,0x00000007, + 0x000004bf,0x000004aa,0x000001fa,0x0004003d,0x00000006,0x000004c0,0x000004bf,0x000500ba, + 0x000000a7,0x000004c1,0x000004be,0x000004c0,0x000600a9,0x00000036,0x000004c4,0x000004c1, + 0x000004c2,0x000004c3,0x00050041,0x00000037,0x000004c5,0x000004bc,0x000001fa,0x0003003e, + 0x000004c5,0x000004c4,0x00050041,0x00000007,0x000004c6,0x000004b2,0x00000293,0x0004003d, + 0x00000006,0x000004c7,0x000004c6,0x00050041,0x00000007,0x000004c8,0x000004aa,0x00000293, + 0x0004003d,0x00000006,0x000004c9,0x000004c8,0x000500ba,0x000000a7,0x000004ca,0x000004c7, + 0x000004c9,0x000600a9,0x00000036,0x000004cb,0x000004ca,0x000004c2,0x000004c3,0x00050041, + 0x00000037,0x000004cc,0x000004bc,0x00000293,0x0003003e,0x000004cc,0x000004cb,0x00050041, + 0x00000007,0x000004ce,0x000004b2,0x00000293,0x0004003d,0x00000006,0x000004cf,0x000004ce, + 0x00050041,0x00000007,0x000004d0,0x000004aa,0x00000293,0x0004003d,0x00000006,0x000004d1, + 0x000004d0,0x000500ba,0x000000a7,0x000004d2,0x000004cf,0x000004d1,0x0003003e,0x000004cd, + 0x000004d2,0x00050041,0x00000007,0x000004d4,0x000004b2,0x000001fa,0x0004003d,0x00000006, + 0x000004d5,0x000004d4,0x00050041,0x00000007,0x000004d6,0x000004aa,0x000001fa,0x0004003d, + 0x00000006,0x000004d7,0x000004d6,0x000500ba,0x000000a7,0x000004d8,0x000004d5,0x000004d7, + 0x0003003e,0x000004d3,0x000004d8,0x0004003d,0x00000055,0x000004da,0x000004bc,0x0004006f, + 0x0000001a,0x000004db,0x000004da,0x0003003e,0x000004d9,0x000004db,0x00050051,0x00000006, + 0x000004dd,0x0000010c,0x0000000a,0x000500b4,0x000000a7,0x000004de,0x000004dd,0x00000154, + 0x0003003e,0x000004dc,0x000004de,0x0003003e,0x000004df,0x00000197,0x0003003e,0x000004e0, + 0x00000197,0x000200f9,0x000004e1,0x000200f8,0x000004e1,0x000400f6,0x000004e3,0x000004e4, + 0x00000000,0x000200f9,0x000004e5,0x000200f8,0x000004e5,0x0004003d,0x00000036,0x000004e6, + 0x000004e0,0x000500b1,0x000000a7,0x000004e7,0x000004e6,0x000001a7,0x000400fa,0x000004e7, + 0x000004e2,0x000004e3,0x000200f8,0x000004e2,0x0003003e,0x000004e8,0x00000197,0x000200f9, + 0x000004e9,0x000200f8,0x000004e9,0x000400f6,0x000004eb,0x000004ec,0x00000000,0x000200f9, + 0x000004ed,0x000200f8,0x000004ed,0x0004003d,0x00000036,0x000004ee,0x000004e8,0x000500b1, + 0x000000a7,0x000004ef,0x000004ee,0x000001a7,0x000400fa,0x000004ef,0x000004ea,0x000004eb, + 0x000200f8,0x000004ea,0x0004003d,0x000000a7,0x000004f1,0x000004d3,0x000300f7,0x000004f4, + 0x00000000,0x000400fa,0x000004f1,0x000004f3,0x000004f7,0x000200f8,0x000004f3,0x0004003d, + 0x00000036,0x000004f5,0x000004e8,0x00050082,0x00000036,0x000004f6,0x000001a7,0x000004f5, + 0x0003003e,0x000004f2,0x000004f6,0x000200f9,0x000004f4,0x000200f8,0x000004f7,0x0004003d, + 0x00000036,0x000004f8,0x000004e8,0x0003003e,0x000004f2,0x000004f8,0x000200f9,0x000004f4, + 0x000200f8,0x000004f4,0x0004003d,0x00000036,0x000004f9,0x000004f2,0x0004003d,0x000000a7, + 0x000004fa,0x000004cd,0x000300f7,0x000004fd,0x00000000,0x000400fa,0x000004fa,0x000004fc, + 0x00000500,0x000200f8,0x000004fc,0x0004003d,0x00000036,0x000004fe,0x000004e0,0x00050082, + 0x00000036,0x000004ff,0x000001a7,0x000004fe,0x0003003e,0x000004fb,0x000004ff,0x000200f9, + 0x000004fd,0x000200f8,0x00000500,0x0004003d,0x00000036,0x00000501,0x000004e0,0x0003003e, + 0x000004fb,0x00000501,0x000200f9,0x000004fd,0x000200f8,0x000004fd,0x0004003d,0x00000036, + 0x00000502,0x000004fb,0x00050050,0x00000055,0x00000503,0x000004f9,0x00000502,0x0003003e, + 0x000004f0,0x00000503,0x0004003d,0x00000055,0x00000505,0x000004ae,0x0004003d,0x00000055, + 0x00000506,0x000004bc,0x00050080,0x00000055,0x00000507,0x00000505,0x00000506,0x0004003d, + 0x00000055,0x00000508,0x000004f0,0x00050080,0x00000055,0x00000509,0x00000507,0x00000508, + 0x0003003e,0x00000504,0x00000509,0x00040039,0x00000055,0x0000050b,0x00000057,0x0004003d, + 0x00000055,0x0000050d,0x00000504,0x0003003e,0x0000050c,0x0000050d,0x0003003e,0x0000050e, + 0x0000021e,0x0003003e,0x0000050f,0x0000050b,0x00070039,0x00000055,0x00000510,0x000000c9, + 0x0000050c,0x0000050e,0x0000050f,0x0003003e,0x0000050a,0x00000510,0x0004003d,0x00000036, + 0x00000515,0x000004df,0x0004003d,0x00000055,0x00000517,0x0000050a,0x0003003e,0x00000516, + 0x00000517,0x00050039,0x0000000e,0x00000518,0x00000109,0x00000516,0x00050041,0x0000000f, + 0x00000519,0x00000514,0x00000515,0x0003003e,0x00000519,0x00000518,0x0004003d,0x00000036, + 0x0000051a,0x000004df,0x00050080,0x00000036,0x0000051b,0x0000051a,0x0000023e,0x0003003e, + 0x000004df,0x0000051b,0x000200f9,0x000004ec,0x000200f8,0x000004ec,0x0004003d,0x00000036, + 0x0000051c,0x000004e8,0x00050080,0x00000036,0x0000051d,0x0000051c,0x0000023e,0x0003003e, + 0x000004e8,0x0000051d,0x000200f9,0x000004e9,0x000200f8,0x000004eb,0x000200f9,0x000004e4, + 0x000200f8,0x000004e4,0x0004003d,0x00000036,0x0000051e,0x000004e0,0x00050080,0x00000036, + 0x0000051f,0x0000051e,0x0000023e,0x0003003e,0x000004e0,0x0000051f,0x000200f9,0x000004e1, + 0x000200f8,0x000004e3,0x0004003d,0x000000a7,0x00000520,0x000004dc,0x000300f7,0x00000522, + 0x00000000,0x000400fa,0x00000520,0x00000521,0x00000522,0x000200f8,0x00000521,0x0003003e, + 0x000004df,0x00000197,0x000200f9,0x00000523,0x000200f8,0x00000523,0x000400f6,0x00000525, + 0x00000526,0x00000000,0x000200f9,0x00000527,0x000200f8,0x00000527,0x0004003d,0x00000036, + 0x00000528,0x000004df,0x000500b1,0x000000a7,0x00000529,0x00000528,0x000003ef,0x000400fa, + 0x00000529,0x00000524,0x00000525,0x000200f8,0x00000524,0x0004003d,0x00000036,0x0000052a, + 0x000004df,0x0004003d,0x00000036,0x0000052b,0x000004df,0x00050041,0x0000000f,0x0000052d, + 0x00000514,0x0000052b,0x0004003d,0x0000000e,0x0000052e,0x0000052d,0x0003003e,0x0000052c, + 0x0000052e,0x00050039,0x0000000e,0x0000052f,0x000000b6,0x0000052c,0x0003003e,0x00000530, + 0x0000052f,0x00050039,0x0000000e,0x00000531,0x000000bc,0x00000530,0x0003003e,0x00000532, + 0x00000531,0x00050039,0x0000000e,0x00000533,0x000000b9,0x00000532,0x00050041,0x0000000f, + 0x00000534,0x00000514,0x0000052a,0x0003003e,0x00000534,0x00000533,0x000200f9,0x00000526, + 0x000200f8,0x00000526,0x0004003d,0x00000036,0x00000535,0x000004df,0x00050080,0x00000036, + 0x00000536,0x00000535,0x0000023e,0x0003003e,0x000004df,0x00000536,0x000200f9,0x00000523, + 0x000200f8,0x00000525,0x000200f9,0x00000522,0x000200f8,0x00000522,0x0004003d,0x00000101, + 0x00000539,0x0000010d,0x0003003e,0x00000538,0x00000539,0x00060039,0x00000006,0x0000053a, + 0x00000106,0x0000010c,0x00000538,0x0004003d,0x00000101,0x0000053b,0x00000538,0x0003003e, + 0x0000010d,0x0000053b,0x0003003e,0x00000537,0x0000053a,0x0004003d,0x00000006,0x0000053d, + 0x00000537,0x00050081,0x00000006,0x0000053e,0x00000155,0x0000053d,0x00050085,0x00000006, + 0x00000540,0x0000053e,0x0000053f,0x0003003e,0x00000541,0x00000155,0x0003003e,0x00000542, + 0x00000540,0x00060039,0x00000006,0x00000543,0x0000003f,0x00000541,0x00000542,0x0003003e, + 0x0000053c,0x00000543,0x00050051,0x00000006,0x00000545,0x0000010c,0x00000007,0x00050085, + 0x00000006,0x00000546,0x00000545,0x000002b1,0x00050083,0x00000006,0x00000547,0x00000155, + 0x00000546,0x00050051,0x00000006,0x00000548,0x0000010c,0x00000009,0x00050083,0x00000006, + 0x00000549,0x00000155,0x00000548,0x00050041,0x00000007,0x0000054a,0x0000010d,0x0000019d, + 0x0004003d,0x00000006,0x0000054b,0x0000054a,0x00050085,0x00000006,0x0000054d,0x0000054b, + 0x0000054c,0x0003003e,0x0000054e,0x0000054d,0x00050039,0x00000006,0x0000054f,0x00000018, + 0x0000054e,0x0003003e,0x00000550,0x00000549,0x0003003e,0x00000551,0x0000054f,0x00060039, + 0x00000006,0x00000552,0x00000023,0x00000550,0x00000551,0x0003003e,0x00000553,0x00000547, + 0x0003003e,0x00000554,0x00000552,0x00060039,0x00000006,0x00000555,0x00000023,0x00000553, + 0x00000554,0x0003003e,0x00000544,0x00000555,0x0004003d,0x00000006,0x00000558,0x0000053c, + 0x0003003e,0x00000557,0x00000558,0x0004003d,0x00000006,0x0000055a,0x00000537,0x0003003e, + 0x00000559,0x0000055a,0x0004003d,0x00000006,0x0000055c,0x00000544,0x0003003e,0x0000055b, + 0x0000055c,0x00070039,0x00000006,0x0000055d,0x0000000c,0x00000557,0x00000559,0x0000055b, + 0x0003003e,0x00000556,0x0000055d,0x0003003e,0x000004df,0x00000197,0x0003003e,0x0000055e, + 0x00000197,0x000200f9,0x0000055f,0x000200f8,0x0000055f,0x000400f6,0x00000561,0x00000562, + 0x00000000,0x000200f9,0x00000563,0x000200f8,0x00000563,0x0004003d,0x00000036,0x00000564, + 0x0000055e,0x000500b1,0x000000a7,0x00000565,0x00000564,0x000001a7,0x000400fa,0x00000565, + 0x00000560,0x00000561,0x000200f8,0x00000560,0x0003003e,0x00000566,0x00000197,0x000200f9, + 0x00000567,0x000200f8,0x00000567,0x000400f6,0x00000569,0x0000056a,0x00000000,0x000200f9, + 0x0000056b,0x000200f8,0x0000056b,0x0004003d,0x00000036,0x0000056c,0x00000566,0x000500b1, + 0x000000a7,0x0000056d,0x0000056c,0x000001a7,0x000400fa,0x0000056d,0x00000568,0x00000569, + 0x000200f8,0x00000568,0x0004003d,0x000000a7,0x0000056f,0x000004d3,0x000300f7,0x00000572, + 0x00000000,0x000400fa,0x0000056f,0x00000571,0x00000575,0x000200f8,0x00000571,0x0004003d, + 0x00000036,0x00000573,0x00000566,0x00050082,0x00000036,0x00000574,0x000001a7,0x00000573, + 0x0003003e,0x00000570,0x00000574,0x000200f9,0x00000572,0x000200f8,0x00000575,0x0004003d, + 0x00000036,0x00000576,0x00000566,0x0003003e,0x00000570,0x00000576,0x000200f9,0x00000572, + 0x000200f8,0x00000572,0x0004003d,0x00000036,0x00000577,0x00000570,0x0004003d,0x000000a7, + 0x00000578,0x000004cd,0x000300f7,0x0000057b,0x00000000,0x000400fa,0x00000578,0x0000057a, + 0x0000057e,0x000200f8,0x0000057a,0x0004003d,0x00000036,0x0000057c,0x0000055e,0x00050082, + 0x00000036,0x0000057d,0x000001a7,0x0000057c,0x0003003e,0x00000579,0x0000057d,0x000200f9, + 0x0000057b,0x000200f8,0x0000057e,0x0004003d,0x00000036,0x0000057f,0x0000055e,0x0003003e, + 0x00000579,0x0000057f,0x000200f9,0x0000057b,0x000200f8,0x0000057b,0x0004003d,0x00000036, + 0x00000580,0x00000579,0x00050050,0x00000055,0x00000581,0x00000577,0x00000580,0x0003003e, + 0x0000056e,0x00000581,0x0004003d,0x0000001a,0x00000583,0x000004d9,0x0004003d,0x00000055, + 0x00000584,0x0000056e,0x0004006f,0x0000001a,0x00000585,0x00000584,0x00050081,0x0000001a, + 0x00000586,0x00000583,0x00000585,0x0003003e,0x00000582,0x00000586,0x0004003d,0x0000001a, + 0x00000588,0x000004b8,0x0004003d,0x0000001a,0x00000589,0x00000582,0x00050081,0x0000001a, + 0x0000058a,0x00000588,0x00000589,0x0003003e,0x00000587,0x0000058a,0x0004003d,0x00000055, + 0x0000058c,0x000004ae,0x0004003d,0x00000055,0x0000058d,0x000004bc,0x00050080,0x00000055, + 0x0000058e,0x0000058c,0x0000058d,0x0004003d,0x00000055,0x0000058f,0x0000056e,0x00050080, + 0x00000055,0x00000590,0x0000058e,0x0000058f,0x0003003e,0x0000058b,0x00000590,0x0004003d, + 0x00000055,0x00000592,0x0000058b,0x00040039,0x00000055,0x00000593,0x00000057,0x0003003e, + 0x00000594,0x00000592,0x0003003e,0x00000595,0x00000593,0x00060039,0x000000a7,0x00000596, + 0x000000d4,0x00000594,0x00000595,0x000600a9,0x00000006,0x00000597,0x00000596,0x00000155, + 0x00000154,0x0003003e,0x00000591,0x00000597,0x0004003d,0x000000a7,0x00000598,0x000004dc, + 0x000400a8,0x000000a7,0x00000599,0x00000598,0x000300f7,0x0000059b,0x00000000,0x000400fa, + 0x00000599,0x0000059a,0x0000059b,0x000200f8,0x0000059a,0x0004003d,0x00000006,0x0000059d, + 0x00000591,0x0004003d,0x0000001a,0x0000059f,0x00000587,0x0003003e,0x0000059e,0x0000059f, + 0x0004003d,0x00000006,0x000005a1,0x00000556,0x0003003e,0x000005a0,0x000005a1,0x00060039, + 0x00000006,0x000005a2,0x000000fe,0x0000059e,0x000005a0,0x00050085,0x00000006,0x000005a3, + 0x0000059d,0x000005a2,0x0003003e,0x0000059c,0x000005a3,0x0004003d,0x00000036,0x000005a4, + 0x000004df,0x00050041,0x0000000f,0x000005a5,0x00000514,0x000005a4,0x0004003d,0x0000000e, + 0x000005a6,0x000005a5,0x0004003d,0x00000006,0x000005a7,0x0000059c,0x0005008e,0x0000000e, + 0x000005a8,0x000005a6,0x000005a7,0x00050041,0x0000000f,0x000005a9,0x0000010d,0x0000023e, + 0x0004003d,0x0000000e,0x000005aa,0x000005a9,0x00050081,0x0000000e,0x000005ab,0x000005aa, + 0x000005a8,0x00050041,0x0000000f,0x000005ac,0x0000010d,0x0000023e,0x0003003e,0x000005ac, + 0x000005ab,0x0004003d,0x00000006,0x000005ad,0x0000059c,0x00050041,0x00000007,0x000005ae, + 0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005af,0x000005ae,0x00050081,0x00000006, + 0x000005b0,0x000005af,0x000005ad,0x00050041,0x00000007,0x000005b1,0x0000010d,0x000001a2, + 0x0003003e,0x000005b1,0x000005b0,0x000200f9,0x0000059b,0x000200f8,0x0000059b,0x0004003d, + 0x0000001a,0x000005b3,0x00000587,0x0004003d,0x0000001a,0x000005b4,0x00000587,0x00050094, + 0x00000006,0x000005b5,0x000005b3,0x000005b4,0x0003003e,0x000005b2,0x000005b5,0x0004003d, + 0x00000006,0x000005b8,0x000005b2,0x00050085,0x00000006,0x000005b9,0x000005b7,0x000005b8, + 0x0006000c,0x00000006,0x000005ba,0x00000001,0x0000001b,0x000005b9,0x0004003d,0x00000006, + 0x000005bb,0x00000591,0x00050085,0x00000006,0x000005bc,0x000005ba,0x000005bb,0x0003003e, + 0x000005b6,0x000005bc,0x0004003d,0x00000036,0x000005be,0x0000055e,0x000500aa,0x000000a7, + 0x000005bf,0x000005be,0x00000197,0x0004003d,0x00000036,0x000005c0,0x00000566,0x000500aa, + 0x000000a7,0x000005c1,0x000005c0,0x00000197,0x000500a7,0x000000a7,0x000005c2,0x000005bf, + 0x000005c1,0x0003003e,0x000005bd,0x000005c2,0x0004003d,0x00000036,0x000005c3,0x000004df, + 0x00050041,0x0000000f,0x000005c4,0x00000514,0x000005c3,0x0004003d,0x0000000e,0x000005c5, + 0x000005c4,0x0004003d,0x00000006,0x000005c6,0x000005b6,0x0004003d,0x000000a7,0x000005c8, + 0x000005bd,0x0003003e,0x000005c7,0x000005c8,0x00050041,0x000000a0,0x000005ca,0x0000010d, + 0x00000197,0x0004003d,0x0000009f,0x000005cb,0x000005ca,0x0003003e,0x000005c9,0x000005cb, + 0x00080039,0x00000002,0x000005cc,0x000000ae,0x000005c7,0x000005c9,0x000005c5,0x000005c6, + 0x0004003d,0x0000009f,0x000005cd,0x000005c9,0x00050041,0x000000a0,0x000005ce,0x0000010d, + 0x00000197,0x0003003e,0x000005ce,0x000005cd,0x0004003d,0x00000036,0x000005cf,0x000004df, + 0x00050080,0x00000036,0x000005d0,0x000005cf,0x0000023e,0x0003003e,0x000004df,0x000005d0, + 0x000200f9,0x0000056a,0x000200f8,0x0000056a,0x0004003d,0x00000036,0x000005d1,0x00000566, + 0x00050080,0x00000036,0x000005d2,0x000005d1,0x0000023e,0x0003003e,0x00000566,0x000005d2, + 0x000200f9,0x00000567,0x000200f8,0x00000569,0x000200f9,0x00000562,0x000200f8,0x00000562, + 0x0004003d,0x00000036,0x000005d3,0x0000055e,0x00050080,0x00000036,0x000005d4,0x000005d3, + 0x0000023e,0x0003003e,0x0000055e,0x000005d4,0x000200f9,0x0000055f,0x000200f8,0x00000561, + 0x00050041,0x000000a0,0x000005d6,0x0000010d,0x00000197,0x0004003d,0x0000009f,0x000005d7, + 0x000005d6,0x0003003e,0x000005d5,0x000005d7,0x00050039,0x00000002,0x000005d8,0x000000b2, + 0x000005d5,0x0004003d,0x0000009f,0x000005d9,0x000005d5,0x00050041,0x000000a0,0x000005da, + 0x0000010d,0x00000197,0x0003003e,0x000005da,0x000005d9,0x00050041,0x00000007,0x000005db, + 0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005dc,0x000005db,0x000500ba,0x000000a7, + 0x000005dd,0x000005dc,0x000002e7,0x000600a9,0x00000006,0x000005de,0x000005dd,0x00000155, + 0x00000154,0x00050041,0x00000007,0x000005df,0x0000010d,0x000001a2,0x0004003d,0x00000006, + 0x000005e0,0x000005df,0x00050085,0x00000006,0x000005e1,0x000005e0,0x000005de,0x00050041, + 0x00000007,0x000005e2,0x0000010d,0x000001a2,0x0003003e,0x000005e2,0x000005e1,0x00050041, + 0x00000007,0x000005e3,0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005e4,0x000005e3, + 0x000500ba,0x000000a7,0x000005e5,0x000005e4,0x000002e7,0x000300f7,0x000005e7,0x00000000, + 0x000400fa,0x000005e5,0x000005e6,0x000005e7,0x000200f8,0x000005e6,0x00050041,0x0000000f, + 0x000005e8,0x0000010d,0x0000023e,0x0004003d,0x0000000e,0x000005e9,0x000005e8,0x00050041, + 0x00000007,0x000005ea,0x0000010d,0x000001a2,0x0004003d,0x00000006,0x000005eb,0x000005ea, + 0x00060050,0x0000000e,0x000005ec,0x000005eb,0x000005eb,0x000005eb,0x00050088,0x0000000e, + 0x000005ed,0x000005e9,0x000005ec,0x00050041,0x0000000f,0x000005ee,0x0000010d,0x0000023e, + 0x0003003e,0x000005ee,0x000005ed,0x00050041,0x00000007,0x000005f0,0x0000010d,0x000001a2, + 0x0004003d,0x00000006,0x000005f1,0x000005f0,0x00050085,0x00000006,0x000005f2,0x000005f1, + 0x000005ef,0x00050041,0x00000007,0x000005f3,0x0000010d,0x000001a2,0x0003003e,0x000005f3, + 0x000005f2,0x00050041,0x000000a0,0x000005f5,0x0000010d,0x00000197,0x0004003d,0x0000009f, + 0x000005f6,0x000005f5,0x0003003e,0x000005f4,0x000005f6,0x00050041,0x0000000f,0x000005f8, + 0x0000010d,0x0000023e,0x0004003d,0x0000000e,0x000005f9,0x000005f8,0x0003003e,0x000005f7, + 0x000005f9,0x00060039,0x00000002,0x000005fa,0x000000f9,0x000005f4,0x000005f7,0x0004003d, + 0x0000000e,0x000005fb,0x000005f7,0x00050041,0x0000000f,0x000005fc,0x0000010d,0x0000023e, + 0x0003003e,0x000005fc,0x000005fb,0x000200f9,0x000005e7,0x000200f8,0x000005e7,0x0004003d, + 0x000000a7,0x000005fd,0x000004dc,0x000300f7,0x000005ff,0x00000000,0x000400fa,0x000005fd, + 0x000005fe,0x000005ff,0x000200f8,0x000005fe,0x00060041,0x0000000f,0x00000601,0x0000010d, + 0x00000197,0x00000197,0x0004003d,0x0000000e,0x00000602,0x00000601,0x0003003e,0x00000600, + 0x00000602,0x00050039,0x0000000e,0x00000603,0x000000b6,0x00000600,0x0003003e,0x00000604, + 0x00000603,0x00050039,0x0000000e,0x00000605,0x000000bf,0x00000604,0x0003003e,0x00000606, + 0x00000605,0x00050039,0x0000000e,0x00000607,0x000000b9,0x00000606,0x00050041,0x0000000f, + 0x00000608,0x0000010d,0x0000023e,0x0003003e,0x00000608,0x00000607,0x00050041,0x00000007, + 0x00000609,0x0000010d,0x000001a2,0x0003003e,0x00000609,0x00000155,0x00050041,0x00000007, + 0x0000060a,0x0000010d,0x0000019d,0x0003003e,0x0000060a,0x00000154,0x000200f9,0x000005ff, + 0x000200f8,0x000005ff,0x000100fd,0x00010038,0x00050036,0x0000002f,0x00000111,0x00000000, + 0x00000072,0x00030037,0x0000006d,0x00000110,0x000200f8,0x00000112,0x0004003b,0x0000006d, + 0x0000060b,0x00000007,0x0004003d,0x00000055,0x0000060c,0x00000110,0x0003003e,0x0000060b, + 0x0000060c,0x00050039,0x0000002f,0x0000060d,0x00000074,0x0000060b,0x000200fe,0x0000060d, + 0x00010038,0x00050036,0x000000ea,0x00000116,0x00000000,0x00000113,0x00030037,0x0000006d, + 0x00000114,0x00030037,0x0000006d,0x00000115,0x000200f8,0x00000117,0x0004003b,0x000000eb, + 0x00000610,0x00000007,0x0004003b,0x0000006d,0x00000612,0x00000007,0x0004003b,0x0000006d, + 0x00000614,0x00000007,0x0004003b,0x0000006d,0x00000615,0x00000007,0x0004003b,0x0000006d, + 0x00000618,0x00000007,0x0004003b,0x0000006d,0x0000061c,0x00000007,0x0004003b,0x0000006d, + 0x0000061e,0x00000007,0x0004003b,0x0000006d,0x0000061f,0x00000007,0x0004003b,0x0000006d, + 0x00000622,0x00000007,0x0004003b,0x0000006d,0x00000626,0x00000007,0x0004003b,0x0000006d, + 0x00000628,0x00000007,0x0004003b,0x0000006d,0x00000629,0x00000007,0x0004003b,0x0000006d, + 0x0000062c,0x00000007,0x0004003b,0x0000006d,0x00000630,0x00000007,0x0004003b,0x0000006d, + 0x00000632,0x00000007,0x0004003b,0x0000006d,0x00000633,0x00000007,0x0004003b,0x0000006d, + 0x00000636,0x00000007,0x0004003b,0x0000006d,0x0000063a,0x00000007,0x0004003b,0x0000006d, + 0x0000063c,0x00000007,0x0004003b,0x0000006d,0x0000063d,0x00000007,0x0004003b,0x0000006d, + 0x00000640,0x00000007,0x0004003b,0x0000006d,0x00000643,0x00000007,0x0004003b,0x0000006d, + 0x00000645,0x00000007,0x0004003b,0x0000006d,0x00000646,0x00000007,0x0004003b,0x0000006d, + 0x00000649,0x00000007,0x0004003b,0x0000006d,0x0000064d,0x00000007,0x0004003b,0x0000006d, + 0x0000064f,0x00000007,0x0004003b,0x0000006d,0x00000650,0x00000007,0x0004003b,0x0000006d, + 0x00000653,0x00000007,0x0004003b,0x0000006d,0x00000657,0x00000007,0x0004003b,0x0000006d, + 0x00000659,0x00000007,0x0004003b,0x0000006d,0x0000065a,0x00000007,0x0004003b,0x0000006d, + 0x0000065d,0x00000007,0x0004003b,0x0000006d,0x00000661,0x00000007,0x0004003b,0x0000006d, + 0x00000663,0x00000007,0x0004003b,0x0000006d,0x00000664,0x00000007,0x0004003b,0x0000006d, + 0x00000667,0x00000007,0x0004003b,0x0000006d,0x0000066b,0x00000007,0x0004003b,0x0000006d, + 0x0000066d,0x00000007,0x0004003b,0x0000006d,0x0000066e,0x00000007,0x0004003b,0x0000006d, + 0x00000671,0x00000007,0x0004003b,0x0000006d,0x00000675,0x00000007,0x0004003b,0x0000006d, + 0x00000677,0x00000007,0x0004003b,0x0000006d,0x00000678,0x00000007,0x0004003b,0x0000006d, + 0x0000067b,0x00000007,0x0004003b,0x0000006d,0x0000067f,0x00000007,0x0004003b,0x0000006d, + 0x00000681,0x00000007,0x0004003b,0x0000006d,0x00000682,0x00000007,0x0004003b,0x0000006d, + 0x00000685,0x00000007,0x0004003b,0x0000006d,0x00000689,0x00000007,0x0004003b,0x0000006d, + 0x0000068b,0x00000007,0x0004003b,0x0000006d,0x0000068c,0x00000007,0x0004003b,0x0000006d, + 0x0000068f,0x00000007,0x0004003b,0x0000006d,0x00000693,0x00000007,0x0004003b,0x0000006d, + 0x00000695,0x00000007,0x0004003b,0x0000006d,0x00000696,0x00000007,0x0004003b,0x0000006d, + 0x00000699,0x00000007,0x0004003b,0x0000006d,0x0000069d,0x00000007,0x0004003b,0x0000006d, + 0x0000069f,0x00000007,0x0004003b,0x0000006d,0x000006a0,0x00000007,0x0004003b,0x0000006d, + 0x000006a3,0x00000007,0x0004003b,0x0000006d,0x000006a7,0x00000007,0x0004003b,0x0000006d, + 0x000006a9,0x00000007,0x0004003b,0x0000006d,0x000006aa,0x00000007,0x0004003b,0x0000006d, + 0x000006ad,0x00000007,0x0004003d,0x00000055,0x00000613,0x00000114,0x0003003e,0x00000612, + 0x00000613,0x0003003e,0x00000614,0x00000611,0x0004003d,0x00000055,0x00000616,0x00000115, + 0x0003003e,0x00000615,0x00000616,0x00070039,0x00000055,0x00000617,0x000000f4,0x00000612, + 0x00000614,0x00000615,0x0003003e,0x00000618,0x00000617,0x00050039,0x0000002f,0x00000619, + 0x00000111,0x00000618,0x00050041,0x00000030,0x0000061a,0x00000610,0x00000197,0x0003003e, + 0x0000061a,0x00000619,0x0004003d,0x00000055,0x0000061d,0x00000114,0x0003003e,0x0000061c, + 0x0000061d,0x0003003e,0x0000061e,0x0000061b,0x0004003d,0x00000055,0x00000620,0x00000115, + 0x0003003e,0x0000061f,0x00000620,0x00070039,0x00000055,0x00000621,0x000000f4,0x0000061c, + 0x0000061e,0x0000061f,0x0003003e,0x00000622,0x00000621,0x00050039,0x0000002f,0x00000623, + 0x00000111,0x00000622,0x00050041,0x00000030,0x00000624,0x00000610,0x0000023e,0x0003003e, + 0x00000624,0x00000623,0x0004003d,0x00000055,0x00000627,0x00000114,0x0003003e,0x00000626, + 0x00000627,0x0003003e,0x00000628,0x00000625,0x0004003d,0x00000055,0x0000062a,0x00000115, + 0x0003003e,0x00000629,0x0000062a,0x00070039,0x00000055,0x0000062b,0x000000f4,0x00000626, + 0x00000628,0x00000629,0x0003003e,0x0000062c,0x0000062b,0x00050039,0x0000002f,0x0000062d, + 0x00000111,0x0000062c,0x00050041,0x00000030,0x0000062e,0x00000610,0x000001a2,0x0003003e, + 0x0000062e,0x0000062d,0x0004003d,0x00000055,0x00000631,0x00000114,0x0003003e,0x00000630, + 0x00000631,0x0003003e,0x00000632,0x0000062f,0x0004003d,0x00000055,0x00000634,0x00000115, + 0x0003003e,0x00000633,0x00000634,0x00070039,0x00000055,0x00000635,0x000000f4,0x00000630, + 0x00000632,0x00000633,0x0003003e,0x00000636,0x00000635,0x00050039,0x0000002f,0x00000637, + 0x00000111,0x00000636,0x00050041,0x00000030,0x00000638,0x00000610,0x000001a7,0x0003003e, + 0x00000638,0x00000637,0x0004003d,0x00000055,0x0000063b,0x00000114,0x0003003e,0x0000063a, + 0x0000063b,0x0003003e,0x0000063c,0x00000639,0x0004003d,0x00000055,0x0000063e,0x00000115, + 0x0003003e,0x0000063d,0x0000063e,0x00070039,0x00000055,0x0000063f,0x000000f4,0x0000063a, + 0x0000063c,0x0000063d,0x0003003e,0x00000640,0x0000063f,0x00050039,0x0000002f,0x00000641, + 0x00000111,0x00000640,0x00050041,0x00000030,0x00000642,0x00000610,0x0000019d,0x0003003e, + 0x00000642,0x00000641,0x0004003d,0x00000055,0x00000644,0x00000114,0x0003003e,0x00000643, + 0x00000644,0x0003003e,0x00000645,0x0000021e,0x0004003d,0x00000055,0x00000647,0x00000115, + 0x0003003e,0x00000646,0x00000647,0x00070039,0x00000055,0x00000648,0x000000f4,0x00000643, + 0x00000645,0x00000646,0x0003003e,0x00000649,0x00000648,0x00050039,0x0000002f,0x0000064a, + 0x00000111,0x00000649,0x00050041,0x00000030,0x0000064b,0x00000610,0x000003db,0x0003003e, + 0x0000064b,0x0000064a,0x0004003d,0x00000055,0x0000064e,0x00000114,0x0003003e,0x0000064d, + 0x0000064e,0x0003003e,0x0000064f,0x0000064c,0x0004003d,0x00000055,0x00000651,0x00000115, + 0x0003003e,0x00000650,0x00000651,0x00070039,0x00000055,0x00000652,0x000000f4,0x0000064d, + 0x0000064f,0x00000650,0x0003003e,0x00000653,0x00000652,0x00050039,0x0000002f,0x00000654, + 0x00000111,0x00000653,0x00050041,0x00000030,0x00000655,0x00000610,0x000003dc,0x0003003e, + 0x00000655,0x00000654,0x0004003d,0x00000055,0x00000658,0x00000114,0x0003003e,0x00000657, + 0x00000658,0x0003003e,0x00000659,0x00000656,0x0004003d,0x00000055,0x0000065b,0x00000115, + 0x0003003e,0x0000065a,0x0000065b,0x00070039,0x00000055,0x0000065c,0x000000f4,0x00000657, + 0x00000659,0x0000065a,0x0003003e,0x0000065d,0x0000065c,0x00050039,0x0000002f,0x0000065e, + 0x00000111,0x0000065d,0x00050041,0x00000030,0x0000065f,0x00000610,0x000001ac,0x0003003e, + 0x0000065f,0x0000065e,0x0004003d,0x00000055,0x00000662,0x00000114,0x0003003e,0x00000661, + 0x00000662,0x0003003e,0x00000663,0x00000660,0x0004003d,0x00000055,0x00000665,0x00000115, + 0x0003003e,0x00000664,0x00000665,0x00070039,0x00000055,0x00000666,0x000000f4,0x00000661, + 0x00000663,0x00000664,0x0003003e,0x00000667,0x00000666,0x00050039,0x0000002f,0x00000668, + 0x00000111,0x00000667,0x00050041,0x00000030,0x00000669,0x00000610,0x000003ee,0x0003003e, + 0x00000669,0x00000668,0x0004003d,0x00000055,0x0000066c,0x00000114,0x0003003e,0x0000066b, + 0x0000066c,0x0003003e,0x0000066d,0x0000066a,0x0004003d,0x00000055,0x0000066f,0x00000115, + 0x0003003e,0x0000066e,0x0000066f,0x00070039,0x00000055,0x00000670,0x000000f4,0x0000066b, + 0x0000066d,0x0000066e,0x0003003e,0x00000671,0x00000670,0x00050039,0x0000002f,0x00000672, + 0x00000111,0x00000671,0x00050041,0x00000030,0x00000673,0x00000610,0x000003ef,0x0003003e, + 0x00000673,0x00000672,0x0004003d,0x00000055,0x00000676,0x00000114,0x0003003e,0x00000675, + 0x00000676,0x0003003e,0x00000677,0x00000674,0x0004003d,0x00000055,0x00000679,0x00000115, + 0x0003003e,0x00000678,0x00000679,0x00070039,0x00000055,0x0000067a,0x000000f4,0x00000675, + 0x00000677,0x00000678,0x0003003e,0x0000067b,0x0000067a,0x00050039,0x0000002f,0x0000067c, + 0x00000111,0x0000067b,0x00050041,0x00000030,0x0000067d,0x00000610,0x000001b2,0x0003003e, + 0x0000067d,0x0000067c,0x0004003d,0x00000055,0x00000680,0x00000114,0x0003003e,0x0000067f, + 0x00000680,0x0003003e,0x00000681,0x0000067e,0x0004003d,0x00000055,0x00000683,0x00000115, + 0x0003003e,0x00000682,0x00000683,0x00070039,0x00000055,0x00000684,0x000000f4,0x0000067f, + 0x00000681,0x00000682,0x0003003e,0x00000685,0x00000684,0x00050039,0x0000002f,0x00000686, + 0x00000111,0x00000685,0x00050041,0x00000030,0x00000687,0x00000610,0x000003f0,0x0003003e, + 0x00000687,0x00000686,0x0004003d,0x00000055,0x0000068a,0x00000114,0x0003003e,0x00000689, + 0x0000068a,0x0003003e,0x0000068b,0x00000688,0x0004003d,0x00000055,0x0000068d,0x00000115, + 0x0003003e,0x0000068c,0x0000068d,0x00070039,0x00000055,0x0000068e,0x000000f4,0x00000689, + 0x0000068b,0x0000068c,0x0003003e,0x0000068f,0x0000068e,0x00050039,0x0000002f,0x00000690, + 0x00000111,0x0000068f,0x00050041,0x00000030,0x00000691,0x00000610,0x00000402,0x0003003e, + 0x00000691,0x00000690,0x0004003d,0x00000055,0x00000694,0x00000114,0x0003003e,0x00000693, + 0x00000694,0x0003003e,0x00000695,0x00000692,0x0004003d,0x00000055,0x00000697,0x00000115, + 0x0003003e,0x00000696,0x00000697,0x00070039,0x00000055,0x00000698,0x000000f4,0x00000693, + 0x00000695,0x00000696,0x0003003e,0x00000699,0x00000698,0x00050039,0x0000002f,0x0000069a, + 0x00000111,0x00000699,0x00050041,0x00000030,0x0000069b,0x00000610,0x000001b7,0x0003003e, + 0x0000069b,0x0000069a,0x0004003d,0x00000055,0x0000069e,0x00000114,0x0003003e,0x0000069d, + 0x0000069e,0x0003003e,0x0000069f,0x0000069c,0x0004003d,0x00000055,0x000006a1,0x00000115, + 0x0003003e,0x000006a0,0x000006a1,0x00070039,0x00000055,0x000006a2,0x000000f4,0x0000069d, + 0x0000069f,0x000006a0,0x0003003e,0x000006a3,0x000006a2,0x00050039,0x0000002f,0x000006a4, + 0x00000111,0x000006a3,0x00050041,0x00000030,0x000006a5,0x00000610,0x00000403,0x0003003e, + 0x000006a5,0x000006a4,0x0004003d,0x00000055,0x000006a8,0x00000114,0x0003003e,0x000006a7, + 0x000006a8,0x0003003e,0x000006a9,0x000006a6,0x0004003d,0x00000055,0x000006ab,0x00000115, + 0x0003003e,0x000006aa,0x000006ab,0x00070039,0x00000055,0x000006ac,0x000000f4,0x000006a7, + 0x000006a9,0x000006aa,0x0003003e,0x000006ad,0x000006ac,0x00050039,0x0000002f,0x000006ae, + 0x00000111,0x000006ad,0x00050041,0x00000030,0x000006af,0x00000610,0x000001bd,0x0003003e, + 0x000006af,0x000006ae,0x0004003d,0x000000ea,0x000006b0,0x00000610,0x000200fe,0x000006b0, + 0x00010038,0x00050036,0x0000002f,0x0000011b,0x00000000,0x00000118,0x00030037,0x0000001b, + 0x00000119,0x00030037,0x0000006d,0x0000011a,0x000200f8,0x0000011c,0x0004003b,0x0000001b, + 0x000006b3,0x00000007,0x0004003b,0x0000001b,0x000006b9,0x00000007,0x0004003b,0x0000001b, + 0x000006ba,0x00000007,0x0004003b,0x00000007,0x000006c1,0x00000007,0x0004003b,0x00000007, + 0x000006c2,0x00000007,0x0004003b,0x00000007,0x000006c6,0x00000007,0x0004003b,0x00000007, + 0x000006c7,0x00000007,0x0004003b,0x00000007,0x000006ce,0x00000007,0x0004003b,0x00000007, + 0x000006cf,0x00000007,0x0004003b,0x00000007,0x000006d3,0x00000007,0x0004003b,0x00000007, + 0x000006d4,0x00000007,0x0004003b,0x0000006d,0x000006d7,0x00000007,0x0004003b,0x00000030, + 0x000006db,0x00000007,0x0004003b,0x0000006d,0x000006dc,0x00000007,0x0004003b,0x0000006d, + 0x000006de,0x00000007,0x0004003b,0x000000eb,0x000006e1,0x00000007,0x0004003b,0x0000001b, + 0x000006e2,0x00000007,0x0004003d,0x0000001a,0x000006b4,0x00000119,0x0004003d,0x00000055, + 0x000006b5,0x0000011a,0x0004006f,0x0000001a,0x000006b6,0x000006b5,0x00050085,0x0000001a, + 0x000006b7,0x000006b4,0x000006b6,0x00050083,0x0000001a,0x000006b8,0x000006b7,0x00000338, + 0x0003003e,0x000006b3,0x000006b8,0x0004003d,0x0000001a,0x000006bb,0x000006b3,0x0003003e, + 0x000006ba,0x000006bb,0x00050039,0x0000001a,0x000006bc,0x0000001e,0x000006ba,0x0003003e, + 0x000006b9,0x000006bc,0x00050041,0x00000037,0x000006bd,0x0000011a,0x000001fa,0x0004003d, + 0x00000036,0x000006be,0x000006bd,0x00050082,0x00000036,0x000006bf,0x000006be,0x0000023e, + 0x0004006f,0x00000006,0x000006c0,0x000006bf,0x0003003e,0x000006c1,0x000006c0,0x00050041, + 0x00000007,0x000006c3,0x000006b3,0x000001fa,0x0004003d,0x00000006,0x000006c4,0x000006c3, + 0x0003003e,0x000006c2,0x000006c4,0x00060039,0x00000006,0x000006c5,0x00000023,0x000006c1, + 0x000006c2,0x0003003e,0x000006c6,0x00000154,0x0003003e,0x000006c7,0x000006c5,0x00060039, + 0x00000006,0x000006c8,0x0000003f,0x000006c6,0x000006c7,0x00050041,0x00000007,0x000006c9, + 0x000006b3,0x000001fa,0x0003003e,0x000006c9,0x000006c8,0x00050041,0x00000037,0x000006ca, + 0x0000011a,0x00000293,0x0004003d,0x00000036,0x000006cb,0x000006ca,0x00050082,0x00000036, + 0x000006cc,0x000006cb,0x0000023e,0x0004006f,0x00000006,0x000006cd,0x000006cc,0x0003003e, + 0x000006ce,0x000006cd,0x00050041,0x00000007,0x000006d0,0x000006b3,0x00000293,0x0004003d, + 0x00000006,0x000006d1,0x000006d0,0x0003003e,0x000006cf,0x000006d1,0x00060039,0x00000006, + 0x000006d2,0x00000023,0x000006ce,0x000006cf,0x0003003e,0x000006d3,0x00000154,0x0003003e, + 0x000006d4,0x000006d2,0x00060039,0x00000006,0x000006d5,0x0000003f,0x000006d3,0x000006d4, + 0x00050041,0x00000007,0x000006d6,0x000006b3,0x00000293,0x0003003e,0x000006d6,0x000006d5, + 0x0004003d,0x0000001a,0x000006d8,0x000006b3,0x0006000c,0x0000001a,0x000006d9,0x00000001, + 0x00000008,0x000006d8,0x0004006e,0x00000055,0x000006da,0x000006d9,0x0003003e,0x000006d7, + 0x000006da,0x0004003d,0x00000055,0x000006dd,0x000006d7,0x0003003e,0x000006dc,0x000006dd, + 0x0004003d,0x00000055,0x000006df,0x0000011a,0x0003003e,0x000006de,0x000006df,0x00060039, + 0x000000ea,0x000006e0,0x00000116,0x000006dc,0x000006de,0x0003003e,0x000006e1,0x000006e0, + 0x0004003d,0x0000001a,0x000006e3,0x000006b9,0x0003003e,0x000006e2,0x000006e3,0x00060039, + 0x0000002f,0x000006e4,0x000000ef,0x000006e1,0x000006e2,0x0003003e,0x000006db,0x000006e4, + 0x0004003d,0x0000002f,0x000006e5,0x000006db,0x000200fe,0x000006e5,0x00010038,0x00050036, + 0x0000001a,0x00000120,0x00000000,0x0000011d,0x00030037,0x0000006d,0x0000011e,0x00030037, + 0x0000001b,0x0000011f,0x000200f8,0x00000121,0x0004003b,0x0000001b,0x000006e8,0x00000007, + 0x0004003b,0x0000006d,0x000006ee,0x00000007,0x0004003d,0x0000001a,0x000006e9,0x0000011f, + 0x00040039,0x00000055,0x000006ea,0x00000057,0x0004006f,0x0000001a,0x000006eb,0x000006ea, + 0x00050085,0x0000001a,0x000006ec,0x000006e9,0x000006eb,0x0004006e,0x00000055,0x000006ed, + 0x000006ec,0x0003003e,0x000006ee,0x000006ed,0x00050039,0x0000001a,0x000006ef,0x00000094, + 0x000006ee,0x0003003e,0x000006e8,0x000006ef,0x0004003d,0x0000001a,0x000006f0,0x000006e8, + 0x000200fe,0x000006f0,0x00010038,0x00050036,0x00000002,0x00000125,0x00000000,0x00000123, + 0x00030037,0x00000122,0x00000124,0x000200f8,0x00000126,0x0004003b,0x0000001b,0x000006f9, + 0x00000007,0x00050041,0x0000001b,0x000006f3,0x00000124,0x0000023e,0x0004003d,0x0000001a, + 0x000006f4,0x000006f3,0x00050041,0x0000001b,0x000006f5,0x00000124,0x0000019d,0x0004003d, + 0x0000001a,0x000006f6,0x000006f5,0x00050081,0x0000001a,0x000006f7,0x000006f4,0x000006f6, + 0x00050041,0x0000001b,0x000006f8,0x00000124,0x000003db,0x0003003e,0x000006f8,0x000006f7, + 0x00050041,0x0000001b,0x000006fa,0x00000124,0x000003db,0x0004003d,0x0000001a,0x000006fb, + 0x000006fa,0x0003003e,0x000006f9,0x000006fb,0x00050039,0x000000a7,0x000006fc,0x000000c3, + 0x000006f9,0x00050041,0x000000a8,0x000006fd,0x00000124,0x000001b7,0x0003003e,0x000006fd, + 0x000006fc,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000129,0x00000000,0x0000010b, + 0x00030037,0x00000100,0x00000127,0x00030037,0x00000102,0x00000128,0x000200f8,0x0000012a, + 0x0004003b,0x00000030,0x000006fe,0x00000007,0x0004003b,0x0000001b,0x00000700,0x00000007, + 0x0004003b,0x0000006d,0x00000702,0x00000007,0x0004003b,0x0000000f,0x00000711,0x00000007, + 0x00040039,0x00000055,0x000006ff,0x0000005d,0x00050051,0x0000001a,0x00000701,0x00000127, + 0x00000005,0x0003003e,0x00000700,0x00000701,0x0003003e,0x00000702,0x000006ff,0x00060039, + 0x0000002f,0x00000703,0x0000011b,0x00000700,0x00000702,0x0003003e,0x000006fe,0x00000703, + 0x0004003d,0x0000002f,0x00000704,0x000006fe,0x0008004f,0x0000000e,0x00000705,0x00000704, + 0x00000704,0x00000000,0x00000001,0x00000002,0x00050041,0x0000000f,0x00000706,0x00000128, + 0x000001a7,0x0003003e,0x00000706,0x00000705,0x00040039,0x00000006,0x00000707,0x00000067, + 0x00050041,0x0000000f,0x00000708,0x00000128,0x000001a7,0x0004003d,0x0000000e,0x00000709, + 0x00000708,0x0005008e,0x0000000e,0x0000070a,0x00000709,0x00000707,0x00050041,0x0000000f, + 0x0000070b,0x00000128,0x000001a7,0x0003003e,0x0000070b,0x0000070a,0x00040039,0x00000006, + 0x0000070c,0x00000096,0x00050041,0x0000000f,0x0000070d,0x00000128,0x000001a7,0x0004003d, + 0x0000000e,0x0000070e,0x0000070d,0x0005008e,0x0000000e,0x0000070f,0x0000070e,0x0000070c, + 0x00050041,0x0000000f,0x00000710,0x00000128,0x000001a7,0x0003003e,0x00000710,0x0000070f, + 0x00050041,0x0000000f,0x00000712,0x00000128,0x000001a7,0x0004003d,0x0000000e,0x00000713, + 0x00000712,0x0003003e,0x00000711,0x00000713,0x00050039,0x0000000e,0x00000714,0x000000b9, + 0x00000711,0x00050041,0x0000000f,0x00000715,0x00000128,0x000001a7,0x0003003e,0x00000715, + 0x00000714,0x00050041,0x00000007,0x00000717,0x000006fe,0x00000716,0x0004003d,0x00000006, + 0x00000718,0x00000717,0x00050041,0x00000007,0x00000719,0x00000128,0x000003db,0x0003003e, + 0x00000719,0x00000718,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000012d,0x00000000, + 0x0000010b,0x00030037,0x00000100,0x0000012b,0x00030037,0x00000102,0x0000012c,0x000200f8, + 0x0000012e,0x0004003b,0x00000007,0x00000727,0x00000007,0x0004003b,0x00000007,0x00000728, + 0x00000007,0x0004003b,0x0000000f,0x0000072b,0x00000007,0x0004003b,0x0000000f,0x0000072f, + 0x00000007,0x0004003b,0x0000000f,0x00000731,0x00000007,0x0004003b,0x0000000f,0x00000734, + 0x00000007,0x0004003b,0x0000000f,0x00000738,0x00000007,0x0004003b,0x0000000f,0x0000073a, + 0x00000007,0x0004003b,0x00000007,0x0000073d,0x00000007,0x0004003b,0x00000007,0x00000743, + 0x00000007,0x0004003b,0x0000000f,0x00000745,0x00000007,0x0004003b,0x0000000f,0x00000748, + 0x00000007,0x0004003b,0x00000007,0x0000074b,0x00000007,0x0004003b,0x0000000f,0x0000074f, + 0x00000007,0x0004003b,0x0000000f,0x00000754,0x00000007,0x00050041,0x00000007,0x0000071a, + 0x0000012c,0x0000019d,0x0004003d,0x00000006,0x0000071b,0x0000071a,0x000500ba,0x000000a7, + 0x0000071c,0x0000071b,0x000002e7,0x000600a9,0x00000006,0x0000071d,0x0000071c,0x00000155, + 0x00000154,0x00050041,0x00000007,0x0000071e,0x0000012c,0x0000019d,0x0004003d,0x00000006, + 0x0000071f,0x0000071e,0x00050085,0x00000006,0x00000720,0x0000071f,0x0000071d,0x00050041, + 0x00000007,0x00000721,0x0000012c,0x0000019d,0x0003003e,0x00000721,0x00000720,0x00050041, + 0x00000007,0x00000722,0x0000012c,0x0000019d,0x0004003d,0x00000006,0x00000723,0x00000722, + 0x00050041,0x00000007,0x00000724,0x0000012c,0x000001a2,0x0004003d,0x00000006,0x00000725, + 0x00000724,0x00050081,0x00000006,0x00000726,0x00000723,0x00000725,0x0003003e,0x00000727, + 0x000002e7,0x0003003e,0x00000728,0x00000726,0x00060039,0x00000006,0x00000729,0x0000003f, + 0x00000727,0x00000728,0x00050041,0x00000007,0x0000072a,0x0000012c,0x0000019d,0x0003003e, + 0x0000072a,0x00000729,0x00050041,0x0000000f,0x0000072c,0x0000012c,0x0000023e,0x0004003d, + 0x0000000e,0x0000072d,0x0000072c,0x0003003e,0x0000072b,0x0000072d,0x00050039,0x0000000e, + 0x0000072e,0x000000b6,0x0000072b,0x0003003e,0x0000072f,0x0000072e,0x00050039,0x0000000e, + 0x00000730,0x000000bc,0x0000072f,0x0003003e,0x00000731,0x00000730,0x00050039,0x0000000e, + 0x00000732,0x000000b9,0x00000731,0x00050041,0x0000000f,0x00000733,0x0000012c,0x0000023e, + 0x0003003e,0x00000733,0x00000732,0x00050041,0x0000000f,0x00000735,0x0000012c,0x000001a7, + 0x0004003d,0x0000000e,0x00000736,0x00000735,0x0003003e,0x00000734,0x00000736,0x00050039, + 0x0000000e,0x00000737,0x000000b6,0x00000734,0x0003003e,0x00000738,0x00000737,0x00050039, + 0x0000000e,0x00000739,0x000000bc,0x00000738,0x0003003e,0x0000073a,0x00000739,0x00050039, + 0x0000000e,0x0000073b,0x000000b9,0x0000073a,0x00050041,0x0000000f,0x0000073c,0x0000012c, + 0x000001a7,0x0003003e,0x0000073c,0x0000073b,0x00050041,0x00000007,0x0000073e,0x0000012c, + 0x000001a2,0x0004003d,0x00000006,0x0000073f,0x0000073e,0x00050041,0x00000007,0x00000740, + 0x0000012c,0x0000019d,0x0004003d,0x00000006,0x00000741,0x00000740,0x00050088,0x00000006, + 0x00000742,0x0000073f,0x00000741,0x0003003e,0x00000743,0x00000742,0x00050039,0x00000006, + 0x00000744,0x00000018,0x00000743,0x0003003e,0x0000073d,0x00000744,0x00050041,0x0000000f, + 0x00000746,0x0000012c,0x000001a7,0x0004003d,0x0000000e,0x00000747,0x00000746,0x0003003e, + 0x00000745,0x00000747,0x00050041,0x0000000f,0x00000749,0x0000012c,0x0000023e,0x0004003d, + 0x0000000e,0x0000074a,0x00000749,0x0003003e,0x00000748,0x0000074a,0x0004003d,0x00000006, + 0x0000074c,0x0000073d,0x0003003e,0x0000074b,0x0000074c,0x00070039,0x0000000e,0x0000074d, + 0x00000014,0x00000745,0x00000748,0x0000074b,0x00050041,0x0000000f,0x0000074e,0x0000012c, + 0x000001a7,0x0003003e,0x0000074e,0x0000074d,0x00050041,0x0000000f,0x00000750,0x0000012c, + 0x000001a7,0x0004003d,0x0000000e,0x00000751,0x00000750,0x0003003e,0x0000074f,0x00000751, + 0x00050039,0x0000000e,0x00000752,0x000000b6,0x0000074f,0x00050041,0x0000000f,0x00000753, + 0x0000012c,0x000001a7,0x0003003e,0x00000753,0x00000752,0x00050041,0x0000000f,0x00000755, + 0x0000012c,0x000001a7,0x0004003d,0x0000000e,0x00000756,0x00000755,0x0003003e,0x00000754, + 0x00000756,0x00050039,0x0000000e,0x00000757,0x000000bf,0x00000754,0x00050041,0x0000000f, + 0x00000758,0x0000012c,0x000001a7,0x0003003e,0x00000758,0x00000757,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000131,0x00000000,0x0000010b,0x00030037,0x00000100,0x0000012f, + 0x00030037,0x00000102,0x00000130,0x000200f8,0x00000132,0x0004003b,0x00000007,0x00000759, + 0x00000007,0x0004003b,0x00000007,0x0000075d,0x00000007,0x0004003b,0x00000007,0x0000075f, + 0x00000007,0x0004003b,0x00000007,0x00000764,0x00000007,0x0004003b,0x00000007,0x00000766, + 0x00000007,0x0004003b,0x00000007,0x00000769,0x00000007,0x0004003b,0x00000007,0x0000076a, + 0x00000007,0x0004003b,0x00000007,0x0000076c,0x00000007,0x0004003b,0x00000007,0x0000076e, + 0x00000007,0x0004003b,0x00000007,0x00000770,0x00000007,0x0004003b,0x00000007,0x00000771, + 0x00000007,0x0004003b,0x00000007,0x00000773,0x00000007,0x0004003b,0x00000007,0x00000776, + 0x00000007,0x0004003b,0x00000007,0x00000778,0x00000007,0x0004003b,0x00000007,0x0000077a, + 0x00000007,0x0004003b,0x00000007,0x0000077c,0x00000007,0x0004003b,0x00000007,0x0000077e, + 0x00000007,0x0004003b,0x00000007,0x00000780,0x00000007,0x0004003b,0x00000007,0x00000782, + 0x00000007,0x0004003b,0x00000007,0x00000784,0x00000007,0x0004003b,0x00000007,0x00000785, + 0x00000007,0x0004003b,0x00000007,0x00000786,0x00000007,0x0004003b,0x0000000f,0x00000789, + 0x00000007,0x0004003b,0x0000000f,0x00000791,0x00000007,0x0004003b,0x0000000f,0x00000794, + 0x00000007,0x0004003b,0x0000000f,0x00000796,0x00000007,0x0004003b,0x0000000f,0x00000798, + 0x00000007,0x0004003b,0x0000000f,0x000007a5,0x00000007,0x0004003b,0x0000000f,0x000007a8, + 0x00000007,0x0004003b,0x00000007,0x000007af,0x00000007,0x0004003b,0x00000007,0x000007b0, + 0x00000007,0x0004003b,0x00000007,0x000007b2,0x00000007,0x0004003b,0x00000007,0x000007bb, + 0x00000007,0x0004003b,0x0000000f,0x000007be,0x00000007,0x0004003b,0x0000000f,0x000007c0, + 0x00000007,0x0004003b,0x00000007,0x000007c3,0x00000007,0x00050051,0x00000006,0x0000075a, + 0x0000012f,0x00000006,0x00050088,0x00000006,0x0000075c,0x0000075a,0x0000075b,0x0003003e, + 0x0000075d,0x0000075c,0x00050039,0x00000006,0x0000075e,0x00000018,0x0000075d,0x0003003e, + 0x00000759,0x0000075e,0x00050051,0x00000006,0x00000761,0x0000012f,0x0000000c,0x00050088, + 0x00000006,0x00000762,0x00000761,0x0000075b,0x00050083,0x00000006,0x00000763,0x00000760, + 0x00000762,0x0003003e,0x00000764,0x00000763,0x00050039,0x00000006,0x00000765,0x00000018, + 0x00000764,0x0003003e,0x0000075f,0x00000765,0x00050051,0x00000006,0x00000767,0x0000012f, + 0x0000000a,0x00050083,0x00000006,0x00000768,0x00000155,0x00000767,0x0003003e,0x00000766, + 0x00000768,0x00050051,0x00000006,0x0000076b,0x0000012f,0x00000008,0x0003003e,0x0000076a, + 0x0000076b,0x0003003e,0x0000076c,0x000002b1,0x00060039,0x00000006,0x0000076d,0x00000053, + 0x0000076a,0x0000076c,0x0003003e,0x00000769,0x0000076d,0x00050051,0x00000006,0x0000076f, + 0x0000012f,0x00000009,0x0003003e,0x0000076e,0x0000076f,0x0004003d,0x00000006,0x00000772, + 0x00000769,0x0003003e,0x00000771,0x00000772,0x0004003d,0x00000006,0x00000774,0x0000076e, + 0x0003003e,0x00000773,0x00000774,0x00060039,0x00000006,0x00000775,0x0000003f,0x00000771, + 0x00000773,0x0004003d,0x00000006,0x00000777,0x00000766,0x0003003e,0x00000776,0x00000777, + 0x0003003e,0x00000778,0x00000775,0x00060039,0x00000006,0x00000779,0x0000003f,0x00000776, + 0x00000778,0x0004003d,0x00000006,0x0000077b,0x0000075f,0x0003003e,0x0000077a,0x0000077b, + 0x0003003e,0x0000077c,0x00000779,0x00060039,0x00000006,0x0000077d,0x0000003f,0x0000077a, + 0x0000077c,0x0004003d,0x00000006,0x0000077f,0x00000759,0x0003003e,0x0000077e,0x0000077f, + 0x0003003e,0x00000780,0x0000077d,0x00060039,0x00000006,0x00000781,0x0000003f,0x0000077e, + 0x00000780,0x0003003e,0x00000770,0x00000781,0x0003003e,0x00000784,0x00000783,0x0003003e, + 0x00000785,0x00000155,0x0004003d,0x00000006,0x00000787,0x00000770,0x0003003e,0x00000786, + 0x00000787,0x00070039,0x00000006,0x00000788,0x0000000c,0x00000784,0x00000785,0x00000786, + 0x0003003e,0x00000782,0x00000788,0x00060041,0x0000000f,0x0000078a,0x00000130,0x00000197, + 0x0000023e,0x0004003d,0x0000000e,0x0000078b,0x0000078a,0x00050085,0x0000000e,0x0000078e, + 0x0000078b,0x0000078d,0x0004003d,0x00000006,0x0000078f,0x00000782,0x0005008e,0x0000000e, + 0x00000790,0x0000078e,0x0000078f,0x0003003e,0x00000789,0x00000790,0x0004003d,0x0000000e, + 0x00000795,0x00000789,0x0003003e,0x00000794,0x00000795,0x0003003e,0x00000796,0x00000793, + 0x00060039,0x0000000e,0x00000797,0x00000047,0x00000794,0x00000796,0x0003003e,0x00000791, + 0x00000797,0x00050041,0x0000000f,0x00000799,0x00000130,0x000001a7,0x0004003d,0x0000000e, + 0x0000079a,0x00000799,0x00060041,0x0000000f,0x0000079b,0x00000130,0x00000197,0x00000197, + 0x0004003d,0x0000000e,0x0000079c,0x0000079b,0x00050083,0x0000000e,0x0000079d,0x0000079a, + 0x0000079c,0x0004003d,0x0000000e,0x0000079e,0x00000791,0x00050088,0x0000000e,0x0000079f, + 0x0000079d,0x0000079e,0x0003003e,0x00000798,0x0000079f,0x0004003d,0x0000000e,0x000007a0, + 0x00000798,0x0006000c,0x00000006,0x000007a1,0x00000001,0x00000042,0x000007a0,0x000500ba, + 0x000000a7,0x000007a2,0x000007a1,0x00000155,0x000300f7,0x000007a4,0x00000000,0x000400fa, + 0x000007a2,0x000007a3,0x000007a4,0x000200f8,0x000007a3,0x0004003d,0x0000000e,0x000007a6, + 0x00000798,0x0006000c,0x0000000e,0x000007a7,0x00000001,0x00000045,0x000007a6,0x0003003e, + 0x000007a5,0x000007a7,0x0004003d,0x0000000e,0x000007a9,0x000007a5,0x0004003d,0x0000000e, + 0x000007aa,0x00000789,0x00050085,0x0000000e,0x000007ab,0x000007a9,0x000007aa,0x00060041, + 0x0000000f,0x000007ac,0x00000130,0x00000197,0x00000197,0x0004003d,0x0000000e,0x000007ad, + 0x000007ac,0x00050081,0x0000000e,0x000007ae,0x000007ab,0x000007ad,0x0003003e,0x000007a8, + 0x000007ae,0x00050051,0x00000006,0x000007b1,0x0000012f,0x0000000b,0x0003003e,0x000007b0, + 0x000007b1,0x00050041,0x00000007,0x000007b3,0x00000130,0x000003dc,0x0004003d,0x00000006, + 0x000007b4,0x000007b3,0x0003003e,0x000007b2,0x000007b4,0x00060039,0x00000006,0x000007b5, + 0x0000003f,0x000007b0,0x000007b2,0x00050051,0x00000006,0x000007b6,0x0000012f,0x0000000a, + 0x00050085,0x00000006,0x000007b7,0x000007b5,0x000007b6,0x00050051,0x00000006,0x000007b8, + 0x0000012f,0x00000007,0x00050083,0x00000006,0x000007b9,0x00000155,0x000007b8,0x00050085, + 0x00000006,0x000007ba,0x000007b7,0x000007b9,0x0003003e,0x000007af,0x000007ba,0x0004003d, + 0x00000006,0x000007bc,0x000007af,0x0003003e,0x000007bb,0x000007bc,0x00050039,0x00000006, + 0x000007bd,0x00000018,0x000007bb,0x0004003d,0x0000000e,0x000007bf,0x000007a8,0x0003003e, + 0x000007be,0x000007bf,0x00050041,0x0000000f,0x000007c1,0x00000130,0x000001a7,0x0004003d, + 0x0000000e,0x000007c2,0x000007c1,0x0003003e,0x000007c0,0x000007c2,0x0003003e,0x000007c3, + 0x000007bd,0x00070039,0x0000000e,0x000007c4,0x00000014,0x000007be,0x000007c0,0x000007c3, + 0x00050041,0x0000000f,0x000007c5,0x00000130,0x000001a7,0x0003003e,0x000007c5,0x000007c4, + 0x000200f9,0x000007a4,0x000200f8,0x000007a4,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000136,0x00000000,0x00000133,0x00030037,0x00000122,0x00000134,0x00030037,0x00000102, + 0x00000135,0x000200f8,0x00000137,0x0004003b,0x00000007,0x000007cf,0x00000007,0x0004003b, + 0x00000007,0x000007d0,0x00000007,0x0004003b,0x00000007,0x000007d4,0x00000007,0x0004003b, + 0x00000007,0x000007d7,0x00000007,0x0004003b,0x00000007,0x000007db,0x00000007,0x0004003b, + 0x00000007,0x000007dc,0x00000007,0x0004003b,0x00000007,0x000007e3,0x00000007,0x0004003b, + 0x00000007,0x000007e4,0x00000007,0x0004003b,0x00000007,0x000007ea,0x00000007,0x0004003b, + 0x00000007,0x000007ed,0x00000007,0x0004003b,0x00000007,0x000007f0,0x00000007,0x0004003b, + 0x0000006d,0x000007f1,0x00000007,0x0004003b,0x00000007,0x000007f8,0x00000007,0x0004003b, + 0x00000007,0x000007f9,0x00000007,0x0004003b,0x00000007,0x00000803,0x00000007,0x0004003b, + 0x00000007,0x00000804,0x00000007,0x0004003b,0x00000007,0x00000806,0x00000007,0x0004003b, + 0x00000007,0x00000807,0x00000007,0x0004003b,0x00000007,0x0000080a,0x00000007,0x0004003b, + 0x00000007,0x00000815,0x00000007,0x0004003b,0x00000007,0x00000816,0x00000007,0x0004003b, + 0x0000001b,0x00000819,0x00000007,0x0004003b,0x0000001b,0x0000081f,0x00000007,0x00050041, + 0x000000a8,0x000007c6,0x00000134,0x00000403,0x0004003d,0x000000a7,0x000007c7,0x000007c6, + 0x000500a4,0x000000a7,0x000007c9,0x000007c7,0x000007c8,0x000600a9,0x00000006,0x000007ca, + 0x000007c9,0x00000155,0x00000154,0x00050041,0x00000007,0x000007cb,0x00000135,0x000003db, + 0x0004003d,0x00000006,0x000007cc,0x000007cb,0x00050085,0x00000006,0x000007cd,0x000007cc, + 0x000007ca,0x00050041,0x00000007,0x000007ce,0x00000135,0x000003db,0x0003003e,0x000007ce, + 0x000007cd,0x00050041,0x00000007,0x000007d1,0x00000134,0x000003ef,0x0004003d,0x00000006, + 0x000007d2,0x000007d1,0x0003003e,0x000007d0,0x000007d2,0x00050039,0x00000006,0x000007d3, + 0x00000018,0x000007d0,0x00050041,0x00000007,0x000007d5,0x00000134,0x000003ee,0x0004003d, + 0x00000006,0x000007d6,0x000007d5,0x0003003e,0x000007d4,0x000007d6,0x00050041,0x00000007, + 0x000007d8,0x00000134,0x000001ac,0x0004003d,0x00000006,0x000007d9,0x000007d8,0x0003003e, + 0x000007d7,0x000007d9,0x00060039,0x00000006,0x000007da,0x0000003f,0x000007d4,0x000007d7, + 0x0003003e,0x000007db,0x000007d3,0x0003003e,0x000007dc,0x000007da,0x00060039,0x00000006, + 0x000007dd,0x0000003f,0x000007db,0x000007dc,0x0003003e,0x000007cf,0x000007dd,0x00050041, + 0x00000007,0x000007de,0x00000135,0x000003db,0x0004003d,0x00000006,0x000007df,0x000007de, + 0x0004003d,0x00000006,0x000007e0,0x000007cf,0x00050085,0x00000006,0x000007e1,0x000007e0, + 0x00000370,0x00050083,0x00000006,0x000007e2,0x000007df,0x000007e1,0x0003003e,0x000007e3, + 0x00000154,0x0003003e,0x000007e4,0x000007e2,0x00060039,0x00000006,0x000007e5,0x0000003f, + 0x000007e3,0x000007e4,0x00050041,0x00000007,0x000007e6,0x00000135,0x000003db,0x0003003e, + 0x000007e6,0x000007e5,0x00050041,0x00000007,0x000007e7,0x00000135,0x000003db,0x0004003d, + 0x00000006,0x000007e8,0x000007e7,0x00050083,0x00000006,0x000007e9,0x000007e8,0x00000155, + 0x0003003e,0x000007ea,0x000007e9,0x00050039,0x00000006,0x000007eb,0x00000018,0x000007ea, + 0x00050085,0x00000006,0x000007ec,0x000007eb,0x00000155,0x0003003e,0x000007ed,0x000007ec, + 0x00050039,0x00000006,0x000007ee,0x00000018,0x000007ed,0x00050041,0x00000007,0x000007ef, + 0x00000135,0x000003dc,0x0003003e,0x000007ef,0x000007ee,0x00050041,0x0000006d,0x000007f2, + 0x00000134,0x00000197,0x0004003d,0x00000055,0x000007f3,0x000007f2,0x0003003e,0x000007f1, + 0x000007f3,0x00050039,0x00000006,0x000007f4,0x0000008b,0x000007f1,0x00050041,0x00000007, + 0x000007f5,0x00000134,0x000003ef,0x0004003d,0x00000006,0x000007f6,0x000007f5,0x00050085, + 0x00000006,0x000007f7,0x000007f6,0x00000154,0x0003003e,0x000007f8,0x000007f7,0x00050041, + 0x00000007,0x000007fa,0x00000134,0x000003ee,0x0004003d,0x00000006,0x000007fb,0x000007fa, + 0x0003003e,0x000007f9,0x000007fb,0x00060039,0x00000006,0x000007fc,0x0000003f,0x000007f8, + 0x000007f9,0x00050083,0x00000006,0x000007fd,0x00000155,0x000007fc,0x00050085,0x00000006, + 0x000007fe,0x000007f4,0x000007fd,0x0003003e,0x000007f0,0x000007fe,0x00050041,0x00000007, + 0x000007ff,0x00000135,0x000003db,0x0004003d,0x00000006,0x00000800,0x000007ff,0x0004003d, + 0x00000006,0x00000801,0x000007f0,0x00050081,0x00000006,0x00000802,0x00000800,0x00000801, + 0x0003003e,0x00000803,0x00000802,0x0003003e,0x00000804,0x00000370,0x00060039,0x00000006, + 0x00000805,0x00000023,0x00000803,0x00000804,0x0003003e,0x00000806,0x00000154,0x0003003e, + 0x00000807,0x00000805,0x00060039,0x00000006,0x00000808,0x0000003f,0x00000806,0x00000807, + 0x00050041,0x00000007,0x00000809,0x00000135,0x000003db,0x0003003e,0x00000809,0x00000808, + 0x00040039,0x00000006,0x0000080c,0x00000065,0x00050088,0x00000006,0x0000080d,0x0000080b, + 0x0000080c,0x0004003d,0x00000006,0x0000080e,0x000007cf,0x00050083,0x00000006,0x0000080f, + 0x00000155,0x0000080e,0x00050085,0x00000006,0x00000810,0x0000080d,0x0000080f,0x0003003e, + 0x0000080a,0x00000810,0x00050041,0x00000007,0x00000811,0x00000135,0x000003db,0x0004003d, + 0x00000006,0x00000812,0x00000811,0x0004003d,0x00000006,0x00000813,0x0000080a,0x00050083, + 0x00000006,0x00000814,0x00000812,0x00000813,0x0003003e,0x00000815,0x00000154,0x0003003e, + 0x00000816,0x00000814,0x00060039,0x00000006,0x00000817,0x0000003f,0x00000815,0x00000816, + 0x00050041,0x00000007,0x00000818,0x00000135,0x000003db,0x0003003e,0x00000818,0x00000817, + 0x00050041,0x0000001b,0x0000081a,0x00000134,0x0000023e,0x0004003d,0x0000001a,0x0000081b, + 0x0000081a,0x00050041,0x0000001b,0x0000081c,0x00000134,0x0000019d,0x0004003d,0x0000001a, + 0x0000081d,0x0000081c,0x00050083,0x0000001a,0x0000081e,0x0000081b,0x0000081d,0x0003003e, + 0x00000819,0x0000081e,0x0004003d,0x0000001a,0x00000820,0x00000819,0x0003003e,0x0000081f, + 0x00000820,0x00050039,0x000000a7,0x00000821,0x000000c3,0x0000081f,0x000500a4,0x000000a7, + 0x00000823,0x00000821,0x00000822,0x000600a9,0x00000006,0x00000824,0x00000823,0x00000155, + 0x00000154,0x00050041,0x00000007,0x00000825,0x00000135,0x000003db,0x0004003d,0x00000006, + 0x00000826,0x00000825,0x00050085,0x00000006,0x00000827,0x00000826,0x00000824,0x00050041, + 0x00000007,0x00000828,0x00000135,0x000003db,0x0003003e,0x00000828,0x00000827,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000013a,0x00000000,0x0000010b,0x00030037,0x00000100, + 0x00000138,0x00030037,0x00000102,0x00000139,0x000200f8,0x0000013b,0x0004003b,0x00000007, + 0x00000829,0x00000007,0x0004003b,0x00000007,0x00000830,0x00000007,0x0004003b,0x00000007, + 0x00000831,0x00000007,0x0004003b,0x00000007,0x00000833,0x00000007,0x0004003b,0x00000007, + 0x00000835,0x00000007,0x0004003b,0x00000007,0x00000837,0x00000007,0x0004003b,0x00000007, + 0x00000838,0x00000007,0x0004003b,0x00000007,0x0000083a,0x00000007,0x0004003b,0x00000007, + 0x0000083c,0x00000007,0x00050051,0x00000006,0x0000082a,0x00000138,0x0000000a,0x0003003e, + 0x00000829,0x0000082a,0x00050051,0x00000006,0x0000082c,0x00000138,0x00000006,0x00040039, + 0x00000006,0x0000082d,0x0000006b,0x00050085,0x00000006,0x0000082e,0x0000082c,0x0000082d, + 0x00050088,0x00000006,0x0000082f,0x0000082e,0x000002b1,0x0003003e,0x00000830,0x00000154, + 0x0003003e,0x00000831,0x0000082f,0x00060039,0x00000006,0x00000832,0x0000003f,0x00000830, + 0x00000831,0x0003003e,0x00000833,0x00000832,0x00050039,0x00000006,0x00000834,0x00000018, + 0x00000833,0x0004003d,0x00000006,0x00000836,0x00000829,0x0003003e,0x00000835,0x00000836, + 0x0003003e,0x00000837,0x0000082b,0x0003003e,0x00000838,0x00000834,0x00070039,0x00000006, + 0x00000839,0x0000000c,0x00000835,0x00000837,0x00000838,0x0004003d,0x00000006,0x0000083b, + 0x00000829,0x0003003e,0x0000083a,0x0000083b,0x0003003e,0x0000083c,0x00000839,0x00060039, + 0x00000006,0x0000083d,0x00000023,0x0000083a,0x0000083c,0x0003003e,0x00000829,0x0000083d, + 0x0004003d,0x00000006,0x0000083e,0x00000829,0x00050041,0x00000007,0x0000083f,0x00000139, + 0x0000019d,0x0003003e,0x0000083f,0x0000083e,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000140,0x00000000,0x0000013c,0x00030037,0x0000006d,0x0000013d,0x00030037,0x00000122, + 0x0000013e,0x00030037,0x00000102,0x0000013f,0x000200f8,0x00000141,0x0004003b,0x0000001b, + 0x00000842,0x00000007,0x0004003b,0x0000001b,0x00000855,0x00000007,0x0004003b,0x0000006d, + 0x00000858,0x00000007,0x0004003b,0x0000006d,0x00000859,0x00000007,0x0004003b,0x0000006d, + 0x0000085c,0x00000007,0x0004003b,0x0000001b,0x0000085e,0x00000007,0x0004003b,0x0000001b, + 0x00000862,0x00000007,0x0004003b,0x00000122,0x00000867,0x00000007,0x0004003b,0x0000001b, + 0x0000086b,0x00000007,0x0004003b,0x0000001b,0x0000086e,0x00000007,0x0004003b,0x0000006d, + 0x00000870,0x00000007,0x0004003b,0x0000006d,0x00000871,0x00000007,0x0004003b,0x0000001b, + 0x00000873,0x00000007,0x0004003b,0x0000001b,0x00000877,0x00000007,0x0004003b,0x0000001b, + 0x0000087c,0x00000007,0x0004003b,0x0000006d,0x0000087f,0x00000007,0x0004003b,0x0000006d, + 0x00000880,0x00000007,0x0004003b,0x0000001b,0x00000882,0x00000007,0x0004003b,0x00000030, + 0x00000890,0x00000007,0x0004003b,0x0000001b,0x00000891,0x00000007,0x0004003b,0x00000007, + 0x00000895,0x00000007,0x0004003b,0x00000007,0x0000089a,0x00000007,0x0004003b,0x00000007, + 0x0000089f,0x00000007,0x0004003b,0x00000007,0x000008a4,0x00000007,0x0004003d,0x00000055, + 0x00000840,0x0000013d,0x00050041,0x0000006d,0x00000841,0x0000013e,0x00000197,0x0003003e, + 0x00000841,0x00000840,0x0004003d,0x00000055,0x00000843,0x0000013d,0x0004006f,0x0000001a, + 0x00000844,0x00000843,0x00050050,0x0000001a,0x00000845,0x000002b1,0x000002b1,0x00050081, + 0x0000001a,0x00000846,0x00000844,0x00000845,0x00040039,0x00000055,0x00000847,0x0000005b, + 0x0004006f,0x0000001a,0x00000848,0x00000847,0x00050088,0x0000001a,0x00000849,0x00000846, + 0x00000848,0x0003003e,0x00000842,0x00000849,0x0004003d,0x0000001a,0x0000084a,0x00000842, + 0x00050041,0x0000001b,0x0000084b,0x0000013e,0x0000023e,0x0003003e,0x0000084b,0x0000084a, + 0x0004003d,0x0000001a,0x0000084c,0x00000842,0x00040039,0x0000001a,0x0000084d,0x00000060, + 0x00040039,0x00000055,0x0000084e,0x00000057,0x0004006f,0x0000001a,0x0000084f,0x0000084e, + 0x00050088,0x0000001a,0x00000850,0x0000084d,0x0000084f,0x00050081,0x0000001a,0x00000851, + 0x0000084c,0x00000850,0x00050041,0x0000001b,0x00000852,0x0000013e,0x000001a2,0x0003003e, + 0x00000852,0x00000851,0x00040039,0x00000055,0x00000853,0x00000057,0x00040039,0x00000055, + 0x00000854,0x00000059,0x00050041,0x0000001b,0x00000856,0x0000013e,0x000001a2,0x0004003d, + 0x0000001a,0x00000857,0x00000856,0x0003003e,0x00000855,0x00000857,0x0003003e,0x00000858, + 0x00000853,0x0003003e,0x00000859,0x00000854,0x00070039,0x0000001a,0x0000085a,0x000000cf, + 0x00000855,0x00000858,0x00000859,0x00050041,0x0000001b,0x0000085b,0x0000013e,0x000001a7, + 0x0003003e,0x0000085b,0x0000085a,0x0004003d,0x00000055,0x0000085d,0x0000013d,0x0003003e, + 0x0000085c,0x0000085d,0x0004003d,0x0000001a,0x0000085f,0x00000842,0x0003003e,0x0000085e, + 0x0000085f,0x00060039,0x0000001a,0x00000860,0x00000120,0x0000085c,0x0000085e,0x00050041, + 0x0000001b,0x00000861,0x0000013e,0x0000019d,0x0003003e,0x00000861,0x00000860,0x00050041, + 0x0000001b,0x00000863,0x0000013e,0x0000019d,0x0004003d,0x0000001a,0x00000864,0x00000863, + 0x0003003e,0x00000862,0x00000864,0x00050039,0x00000006,0x00000865,0x0000009d,0x00000862, + 0x00050041,0x00000007,0x00000866,0x0000013e,0x000003dc,0x0003003e,0x00000866,0x00000865, + 0x0004003d,0x00000100,0x00000868,0x0000013e,0x0003003e,0x00000867,0x00000868,0x00050039, + 0x00000002,0x00000869,0x00000125,0x00000867,0x0004003d,0x00000100,0x0000086a,0x00000867, + 0x0003003e,0x0000013e,0x0000086a,0x00040039,0x00000055,0x0000086c,0x00000057,0x00040039, + 0x00000055,0x0000086d,0x00000059,0x0004003d,0x0000001a,0x0000086f,0x00000842,0x0003003e, + 0x0000086e,0x0000086f,0x0003003e,0x00000870,0x0000086c,0x0003003e,0x00000871,0x0000086d, + 0x00070039,0x0000001a,0x00000872,0x000000cf,0x0000086e,0x00000870,0x00000871,0x0003003e, + 0x0000086b,0x00000872,0x0004003d,0x0000001a,0x00000874,0x0000086b,0x0003003e,0x00000873, + 0x00000874,0x00050039,0x00000006,0x00000875,0x00000087,0x00000873,0x00050041,0x00000007, + 0x00000876,0x0000013e,0x000003f0,0x0003003e,0x00000876,0x00000875,0x00040039,0x00000055, + 0x00000878,0x00000057,0x00050050,0x00000055,0x00000879,0x000001a2,0x000001a2,0x00050087, + 0x00000055,0x0000087a,0x00000878,0x00000879,0x00040039,0x00000055,0x0000087b,0x00000080, + 0x00050041,0x0000001b,0x0000087d,0x0000013e,0x000001a2,0x0004003d,0x0000001a,0x0000087e, + 0x0000087d,0x0003003e,0x0000087c,0x0000087e,0x0003003e,0x0000087f,0x0000087a,0x0003003e, + 0x00000880,0x0000087b,0x00070039,0x0000001a,0x00000881,0x000000cf,0x0000087c,0x0000087f, + 0x00000880,0x0003003e,0x00000877,0x00000881,0x0004003d,0x0000001a,0x00000883,0x00000877, + 0x0003003e,0x00000882,0x00000883,0x00050039,0x00000006,0x00000884,0x00000084,0x00000882, + 0x00050041,0x00000007,0x00000885,0x0000013e,0x00000402,0x0003003e,0x00000885,0x00000884, + 0x00050041,0x000000a8,0x00000886,0x0000013e,0x000001b7,0x0004003d,0x000000a7,0x00000887, + 0x00000886,0x000500a4,0x000000a7,0x00000888,0x00000887,0x000007c8,0x000400a8,0x000000a7, + 0x00000889,0x00000888,0x000300f7,0x0000088b,0x00000000,0x000400fa,0x00000889,0x0000088a, + 0x0000088b,0x000200f8,0x0000088a,0x00040039,0x00000006,0x0000088c,0x00000069,0x000500b4, + 0x000000a7,0x0000088d,0x00000154,0x0000088c,0x000200f9,0x0000088b,0x000200f8,0x0000088b, + 0x000700f5,0x000000a7,0x0000088e,0x00000888,0x00000141,0x0000088d,0x0000088a,0x00050041, + 0x000000a8,0x0000088f,0x0000013e,0x00000403,0x0003003e,0x0000088f,0x0000088e,0x00050041, + 0x0000001b,0x00000892,0x0000013e,0x000001a7,0x0004003d,0x0000001a,0x00000893,0x00000892, + 0x0003003e,0x00000891,0x00000893,0x00050039,0x0000002f,0x00000894,0x0000009a,0x00000891, + 0x0003003e,0x00000890,0x00000894,0x00050041,0x00000007,0x00000896,0x00000890,0x000001fa, + 0x0004003d,0x00000006,0x00000897,0x00000896,0x0003003e,0x00000895,0x00000897,0x00050039, + 0x00000006,0x00000898,0x00000018,0x00000895,0x00050041,0x00000007,0x00000899,0x0000013e, + 0x000003ee,0x0003003e,0x00000899,0x00000898,0x00050041,0x00000007,0x0000089b,0x00000890, + 0x00000293,0x0004003d,0x00000006,0x0000089c,0x0000089b,0x0003003e,0x0000089a,0x0000089c, + 0x00050039,0x00000006,0x0000089d,0x00000018,0x0000089a,0x00050041,0x00000007,0x0000089e, + 0x0000013e,0x000001ac,0x0003003e,0x0000089e,0x0000089d,0x00050041,0x00000007,0x000008a0, + 0x00000890,0x00000297,0x0004003d,0x00000006,0x000008a1,0x000008a0,0x0003003e,0x0000089f, + 0x000008a1,0x00050039,0x00000006,0x000008a2,0x00000018,0x0000089f,0x00050041,0x00000007, + 0x000008a3,0x0000013e,0x000003ef,0x0003003e,0x000008a3,0x000008a2,0x00050041,0x00000007, + 0x000008a5,0x00000890,0x00000716,0x0004003d,0x00000006,0x000008a6,0x000008a5,0x0003003e, + 0x000008a4,0x000008a6,0x00050039,0x00000006,0x000008a7,0x00000018,0x000008a4,0x00050041, + 0x00000007,0x000008a8,0x0000013e,0x000001b2,0x0003003e,0x000008a8,0x000008a7,0x00050041, + 0x00000007,0x000008a9,0x0000013e,0x000001b2,0x0004003d,0x00000006,0x000008aa,0x000008a9, + 0x00050085,0x00000006,0x000008ac,0x000008aa,0x000008ab,0x0006000c,0x00000006,0x000008ad, + 0x00000001,0x00000001,0x000008ac,0x000500ba,0x000000a7,0x000008ae,0x000008ad,0x00000155, + 0x000600a9,0x00000006,0x000008af,0x000008ae,0x00000155,0x00000154,0x00050041,0x00000007, + 0x000008b0,0x0000013e,0x000001b2,0x0004003d,0x00000006,0x000008b1,0x000008b0,0x00050085, + 0x00000006,0x000008b2,0x000008b1,0x000008af,0x00050041,0x00000007,0x000008b3,0x0000013e, + 0x000001b2,0x0003003e,0x000008b3,0x000008b2,0x00050041,0x0000000f,0x000008b4,0x0000013f, + 0x0000023e,0x0003003e,0x000008b4,0x00000496,0x00050041,0x0000000f,0x000008b5,0x0000013f, + 0x000001a7,0x0003003e,0x000008b5,0x00000496,0x00050041,0x00000007,0x000008b6,0x0000013f, + 0x0000019d,0x0003003e,0x000008b6,0x00000155,0x00050041,0x00000007,0x000008b7,0x0000013f, + 0x000001a2,0x0003003e,0x000008b7,0x00000154,0x00050041,0x00000007,0x000008b8,0x0000013f, + 0x000003db,0x0003003e,0x000008b8,0x00000154,0x00050041,0x00000007,0x000008b9,0x0000013f, + 0x000003dc,0x0003003e,0x000008b9,0x00000154,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000144,0x00000000,0x00000142,0x00030037,0x0000006d,0x00000143,0x000200f8,0x00000145, + 0x0004003b,0x00000122,0x000008ba,0x00000007,0x0004003b,0x00000102,0x000008bb,0x00000007, + 0x0004003b,0x0000006d,0x000008bc,0x00000007,0x0004003b,0x00000122,0x000008be,0x00000007, + 0x0004003b,0x00000102,0x000008c0,0x00000007,0x0004003b,0x00000102,0x000008d0,0x00000007, + 0x0004003b,0x00000122,0x000008d4,0x00000007,0x0004003b,0x00000102,0x000008d6,0x00000007, + 0x0004003b,0x00000102,0x000008db,0x00000007,0x0004003b,0x00000102,0x000008e0,0x00000007, + 0x0004003b,0x00000102,0x000008e5,0x00000007,0x0004003b,0x00000102,0x000008ea,0x00000007, + 0x0004003b,0x0000000f,0x000008f4,0x00000007,0x0004003b,0x0000000f,0x000008f7,0x00000007, + 0x0004003b,0x0000006d,0x00000902,0x00000007,0x0004003b,0x00000030,0x00000904,0x00000007, + 0x0004003b,0x0000006d,0x00000906,0x00000007,0x0004003b,0x0000000f,0x00000908,0x00000007, + 0x0004003b,0x0000006d,0x0000090c,0x00000007,0x0004003b,0x00000007,0x0000090e,0x00000007, + 0x0004003d,0x00000055,0x000008bd,0x00000143,0x0003003e,0x000008bc,0x000008bd,0x0004003d, + 0x00000100,0x000008bf,0x000008ba,0x0003003e,0x000008be,0x000008bf,0x0004003d,0x00000101, + 0x000008c1,0x000008bb,0x0003003e,0x000008c0,0x000008c1,0x00070039,0x00000002,0x000008c2, + 0x00000140,0x000008bc,0x000008be,0x000008c0,0x0004003d,0x00000100,0x000008c3,0x000008be, + 0x0003003e,0x000008ba,0x000008c3,0x0004003d,0x00000101,0x000008c4,0x000008c0,0x0003003e, + 0x000008bb,0x000008c4,0x00050041,0x000000a8,0x000008c5,0x000008ba,0x000001b7,0x0004003d, + 0x000000a7,0x000008c6,0x000008c5,0x000300f7,0x000008c8,0x00000000,0x000400fa,0x000008c6, + 0x000008c7,0x000008c8,0x000200f8,0x000008c7,0x00050041,0x000000a8,0x000008c9,0x000008ba, + 0x00000403,0x0004003d,0x000000a7,0x000008ca,0x000008c9,0x000400a8,0x000000a7,0x000008cb, + 0x000008ca,0x000200f9,0x000008c8,0x000200f8,0x000008c8,0x000700f5,0x000000a7,0x000008cc, + 0x000008c6,0x00000145,0x000008cb,0x000008c7,0x000300f7,0x000008ce,0x00000000,0x000400fa, + 0x000008cc,0x000008cd,0x000008ce,0x000200f8,0x000008cd,0x0004003d,0x00000100,0x000008cf, + 0x000008ba,0x0004003d,0x00000101,0x000008d1,0x000008bb,0x0003003e,0x000008d0,0x000008d1, + 0x00060039,0x00000002,0x000008d2,0x00000129,0x000008cf,0x000008d0,0x0004003d,0x00000101, + 0x000008d3,0x000008d0,0x0003003e,0x000008bb,0x000008d3,0x000200f9,0x000008ce,0x000200f8, + 0x000008ce,0x0004003d,0x00000100,0x000008d5,0x000008ba,0x0003003e,0x000008d4,0x000008d5, + 0x0004003d,0x00000101,0x000008d7,0x000008bb,0x0003003e,0x000008d6,0x000008d7,0x00060039, + 0x00000002,0x000008d8,0x00000136,0x000008d4,0x000008d6,0x0004003d,0x00000101,0x000008d9, + 0x000008d6,0x0003003e,0x000008bb,0x000008d9,0x0004003d,0x00000100,0x000008da,0x000008ba, + 0x0004003d,0x00000101,0x000008dc,0x000008bb,0x0003003e,0x000008db,0x000008dc,0x00060039, + 0x00000002,0x000008dd,0x0000013a,0x000008da,0x000008db,0x0004003d,0x00000101,0x000008de, + 0x000008db,0x0003003e,0x000008bb,0x000008de,0x0004003d,0x00000100,0x000008df,0x000008ba, + 0x0004003d,0x00000101,0x000008e1,0x000008bb,0x0003003e,0x000008e0,0x000008e1,0x00060039, + 0x00000002,0x000008e2,0x0000010e,0x000008df,0x000008e0,0x0004003d,0x00000101,0x000008e3, + 0x000008e0,0x0003003e,0x000008bb,0x000008e3,0x0004003d,0x00000100,0x000008e4,0x000008ba, + 0x0004003d,0x00000101,0x000008e6,0x000008bb,0x0003003e,0x000008e5,0x000008e6,0x00060039, + 0x00000002,0x000008e7,0x00000131,0x000008e4,0x000008e5,0x0004003d,0x00000101,0x000008e8, + 0x000008e5,0x0003003e,0x000008bb,0x000008e8,0x0004003d,0x00000100,0x000008e9,0x000008ba, + 0x0004003d,0x00000101,0x000008eb,0x000008bb,0x0003003e,0x000008ea,0x000008eb,0x00060039, + 0x00000002,0x000008ec,0x0000012d,0x000008e9,0x000008ea,0x0004003d,0x00000101,0x000008ed, + 0x000008ea,0x0003003e,0x000008bb,0x000008ed,0x00040039,0x00000006,0x000008ee,0x00000096, + 0x00050041,0x0000000f,0x000008ef,0x000008bb,0x000001a7,0x0004003d,0x0000000e,0x000008f0, + 0x000008ef,0x00060050,0x0000000e,0x000008f1,0x000008ee,0x000008ee,0x000008ee,0x00050088, + 0x0000000e,0x000008f2,0x000008f0,0x000008f1,0x00050041,0x0000000f,0x000008f3,0x000008bb, + 0x000001a7,0x0003003e,0x000008f3,0x000008f2,0x00050041,0x0000000f,0x000008f5,0x000008bb, + 0x000001a7,0x0004003d,0x0000000e,0x000008f6,0x000008f5,0x0003003e,0x000008f4,0x000008f6, + 0x0003003e,0x000008f7,0x00000496,0x00060039,0x0000000e,0x000008f8,0x00000047,0x000008f4, + 0x000008f7,0x00050041,0x0000000f,0x000008f9,0x000008bb,0x000001a7,0x0003003e,0x000008f9, + 0x000008f8,0x00050041,0x0000000f,0x000008fa,0x000008bb,0x000001a7,0x0004003d,0x0000000e, + 0x000008fb,0x000008fa,0x00050041,0x00000007,0x000008fc,0x000008bb,0x000003db,0x0004003d, + 0x00000006,0x000008fd,0x000008fc,0x00050051,0x00000006,0x000008fe,0x000008fb,0x00000000, + 0x00050051,0x00000006,0x000008ff,0x000008fb,0x00000001,0x00050051,0x00000006,0x00000900, + 0x000008fb,0x00000002,0x00070050,0x0000002f,0x00000901,0x000008fe,0x000008ff,0x00000900, + 0x000008fd,0x0004003d,0x00000055,0x00000903,0x00000143,0x0003003e,0x00000902,0x00000903, + 0x0003003e,0x00000904,0x00000901,0x00060039,0x00000002,0x00000905,0x00000079,0x00000902, + 0x00000904,0x0004003d,0x00000055,0x00000907,0x00000143,0x0003003e,0x00000906,0x00000907, + 0x00050041,0x0000000f,0x00000909,0x000008bb,0x000001a7,0x0004003d,0x0000000e,0x0000090a, + 0x00000909,0x0003003e,0x00000908,0x0000090a,0x00060039,0x00000002,0x0000090b,0x0000007e, + 0x00000906,0x00000908,0x0004003d,0x00000055,0x0000090d,0x00000143,0x0003003e,0x0000090c, + 0x0000090d,0x0003003e,0x0000090e,0x00000154,0x00060039,0x00000002,0x0000090f,0x00000090, + 0x0000090c,0x0000090e,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h b/gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h new file mode 100644 index 000000000..9170ff3c1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h @@ -0,0 +1,1980 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_ACCUMULATE_SHARPEN_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000912,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x000008fd,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c, + 0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00070005,0x0000000c,0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b, + 0x00030005,0x00000009,0x00000078,0x00030005,0x0000000a,0x00000079,0x00030005,0x0000000b, + 0x00000074,0x00070005,0x00000014,0x4c786666,0x28707265,0x3b336676,0x3b336676,0x003b3166, + 0x00030005,0x00000011,0x00000078,0x00030005,0x00000012,0x00000079,0x00030005,0x00000013, + 0x00000074,0x00060005,0x00000018,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x00000017,0x00000078,0x00060005,0x0000001e,0x46786666,0x74636172,0x32667628,0x0000003b, + 0x00030005,0x0000001d,0x00000078,0x00060005,0x00000023,0x4d786666,0x66286e69,0x31663b31, + 0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022,0x00000079,0x00060005, + 0x00000028,0x4d786666,0x76286e69,0x763b3266,0x003b3266,0x00030005,0x00000026,0x00000078, + 0x00030005,0x00000027,0x00000079,0x00060005,0x0000002d,0x4d786666,0x76286e69,0x763b3366, + 0x003b3366,0x00030005,0x0000002b,0x00000078,0x00030005,0x0000002c,0x00000079,0x00060005, + 0x00000034,0x4d786666,0x76286e69,0x763b3466,0x003b3466,0x00030005,0x00000032,0x00000078, + 0x00030005,0x00000033,0x00000079,0x00060005,0x0000003b,0x4d786666,0x69286e69,0x31693b31, + 0x0000003b,0x00030005,0x00000039,0x00000078,0x00030005,0x0000003a,0x00000079,0x00060005, + 0x0000003f,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x0000003d,0x00000078, + 0x00030005,0x0000003e,0x00000079,0x00060005,0x00000043,0x4d786666,0x76287861,0x763b3266, + 0x003b3266,0x00030005,0x00000041,0x00000078,0x00030005,0x00000042,0x00000079,0x00060005, + 0x00000047,0x4d786666,0x76287861,0x763b3366,0x003b3366,0x00030005,0x00000045,0x00000078, + 0x00030005,0x00000046,0x00000079,0x00060005,0x0000004b,0x4d786666,0x76287861,0x763b3466, + 0x003b3466,0x00030005,0x00000049,0x00000078,0x00030005,0x0000004a,0x00000079,0x00060005, + 0x0000004f,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x0000004d,0x00000078, + 0x00030005,0x0000004e,0x00000079,0x00060005,0x00000053,0x50786666,0x6628776f,0x31663b31, + 0x0000003b,0x00030005,0x00000051,0x00000078,0x00030005,0x00000052,0x00000079,0x00050005, + 0x00000057,0x646e6552,0x69537265,0x0028657a,0x00060005,0x00000059,0x5278614d,0x65646e65, + 0x7a695372,0x00002865,0x00060005,0x0000005b,0x63737055,0x53656c61,0x28657a69,0x00000000, + 0x00090005,0x0000005d,0x76657250,0x73756f69,0x6d617246,0x73705565,0x656c6163,0x657a6953, + 0x00000028,0x00040005,0x00000060,0x7474694a,0x00287265,0x00070005,0x00000062,0x6e776f44, + 0x6c616373,0x63614665,0x28726f74,0x00000000,0x00080005,0x00000065,0x7474694a,0x65537265, + 0x6e657571,0x654c6563,0x6874676e,0x00000028,0x00070005,0x00000067,0x746c6544,0x65725061, + 0x6f707845,0x65727573,0x00000028,0x00050005,0x00000069,0x6d617246,0x646e4965,0x00287865, + 0x00060005,0x0000006b,0x6f6c6556,0x79746963,0x74636146,0x0028726f,0x00070005,0x00000070, + 0x64616f4c,0x75706e49,0x6c6f4374,0x7628726f,0x003b3269,0x00040005,0x0000006f,0x50785069, + 0x0000736f,0x00070005,0x00000074,0x64616f4c,0x74736948,0x2879726f,0x3b326976,0x00000000, + 0x00050005,0x00000073,0x48785069,0x6f747369,0x00007972,0x000c0005,0x00000079,0x726f7453, + 0x746e4965,0x616e7265,0x6c6f436c,0x6e41726f,0x69655764,0x28746867,0x3b326976,0x3b346676, + 0x00000000,0x00040005,0x00000077,0x50785069,0x0000736f,0x00060005,0x00000078,0x6c6f4366, + 0x6e41726f,0x69655764,0x00746867,0x000c0005,0x0000007b,0x46746547,0x68747261,0x44747365, + 0x68747065,0x3170694d,0x6f736552,0x65637275,0x656d6944,0x6f69736e,0x0028736e,0x000a0005, + 0x0000007f,0x706d6153,0x6146656c,0x65687472,0x65447473,0x4d687470,0x28317069,0x3b326676, + 0x00000000,0x00030005,0x0000007e,0x00565566,0x00090005,0x00000082,0x706d6153,0x754c656c, + 0x6e49616d,0x62617473,0x74696c69,0x66762879,0x00003b32,0x00030005,0x00000081,0x00007675, + 0x00070005,0x00000086,0x64616f4c,0x654e7752,0x636f4c77,0x7628736b,0x003b3269,0x00040005, + 0x00000085,0x50785069,0x0000736f,0x00080005,0x0000008b,0x726f7453,0x77654e65,0x6b636f4c, + 0x69762873,0x31663b32,0x0000003b,0x00040005,0x00000089,0x50785069,0x0000736f,0x00040005, + 0x0000008a,0x4c77656e,0x006b636f,0x000a0005,0x0000008f,0x64616f4c,0x616c6944,0x4d646574, + 0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x00000000,0x00050005,0x0000008e,0x49785069, + 0x7475706e,0x00000000,0x00050005,0x00000091,0x6f707845,0x65727573,0x00000028,0x000a0005, + 0x00000095,0x706d6153,0x6944656c,0x6574616c,0x61655264,0x76697463,0x73614d65,0x7628736b, + 0x003b3266,0x00030005,0x00000094,0x00565566,0x00070005,0x00000098,0x34746547,0x6c65564b, + 0x7469636f,0x66762879,0x00003b32,0x00060005,0x00000097,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00070005,0x0000009a,0x74636552,0x63696669,0x6f697461,0x786f426e,0x00000000, + 0x00060006,0x0000009a,0x00000000,0x43786f62,0x65746e65,0x00000072,0x00050006,0x0000009a, + 0x00000001,0x56786f62,0x00006365,0x00050006,0x0000009a,0x00000002,0x62626161,0x006e694d, + 0x00050006,0x0000009a,0x00000003,0x62626161,0x0078614d,0x00080006,0x0000009a,0x00000004, + 0x786f4266,0x746e6543,0x65577265,0x74686769,0x00000000,0x00180005,0x000000a0,0x74636552, + 0x63696669,0x6f697461,0x786f426e,0x49646441,0x6974696e,0x61536c61,0x656c706d,0x72747328, + 0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d, + 0x3366762d,0x3131662d,0x3366763b,0x3b31663b,0x00000000,0x00070005,0x0000009d,0x74636572, + 0x63696669,0x6f697461,0x786f426e,0x00000000,0x00050005,0x0000009e,0x6f6c6f63,0x6d615372, + 0x00656c70,0x00060005,0x0000009f,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00170005, + 0x000000a9,0x74636552,0x63696669,0x6f697461,0x786f426e,0x53646441,0x6c706d61,0x31622865, + 0x7274733b,0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d, + 0x3366762d,0x3366762d,0x3131662d,0x3366763b,0x3b31663b,0x00000000,0x00060005,0x000000a5, + 0x696e4962,0x6c616974,0x706d6153,0x0000656c,0x00070005,0x000000a6,0x74636572,0x63696669, + 0x6f697461,0x786f426e,0x00000000,0x00050005,0x000000a7,0x6f6c6f63,0x6d615372,0x00656c70, + 0x00060005,0x000000a8,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00170005,0x000000ad, + 0x74636552,0x63696669,0x6f697461,0x786f426e,0x706d6f43,0x56657475,0x61697261,0x4265636e, + 0x6144786f,0x73286174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x003b3131,0x00070005,0x000000ac,0x74636572, + 0x63696669,0x6f697461,0x786f426e,0x00000000,0x00060005,0x000000b1,0x436f4359,0x526f5467, + 0x76284247,0x003b3366,0x00040005,0x000000b0,0x6f435966,0x00006743,0x00060005,0x000000b4, + 0x54424752,0x6f43596f,0x76286743,0x003b3366,0x00040005,0x000000b3,0x62675266,0x00000000, + 0x00060005,0x000000b7,0x656e6f54,0x2870616d,0x3b336676,0x00000000,0x00040005,0x000000b6, + 0x62675266,0x00000000,0x00070005,0x000000ba,0x65766e49,0x54657372,0x6d656e6f,0x76287061, + 0x003b3366,0x00040005,0x000000b9,0x62675266,0x00000000,0x00060005,0x000000be,0x76557349, + 0x69736e49,0x76286564,0x003b3266,0x00030005,0x000000bd,0x00765566,0x00080005,0x000000c4, + 0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005,0x000000c1, + 0x53785069,0x6c706d61,0x00000065,0x00050005,0x000000c2,0x4f785069,0x65736666,0x00000074, + 0x00060005,0x000000c3,0x78655469,0x65727574,0x657a6953,0x00000000,0x00080005,0x000000ca, + 0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976,0x00000000,0x00030005,0x000000c7, + 0x00765566,0x00060005,0x000000c8,0x78655469,0x65727574,0x657a6953,0x00000000,0x00060005, + 0x000000c9,0x73655269,0x6372756f,0x7a695365,0x00000065,0x00070005,0x000000cf,0x6e4f7349, + 0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x000000cd,0x00736f70,0x00040005, + 0x000000ce,0x657a6973,0x00000000,0x00070005,0x000000d2,0x636e614c,0x32736f7a,0x6c436f4e, + 0x28706d61,0x003b3166,0x00030005,0x000000d1,0x00000078,0x00060005,0x000000d5,0x636e614c, + 0x32736f7a,0x3b316628,0x00000000,0x00030005,0x000000d4,0x00000078,0x00090005,0x000000d8, + 0x636e614c,0x32736f7a,0x72707041,0x7153786f,0x6c436f4e,0x28706d61,0x003b3166,0x00030005, + 0x000000d7,0x00003278,0x00080005,0x000000db,0x636e614c,0x32736f7a,0x72707041,0x7153786f, + 0x3b316628,0x00000000,0x00030005,0x000000da,0x00003278,0x000a0005,0x000000e3,0x636e614c, + 0x32736f7a,0x34667628,0x3466763b,0x3466763b,0x3466763b,0x3b31663b,0x00000000,0x00040005, + 0x000000de,0x6c6f4366,0x0030726f,0x00040005,0x000000df,0x6c6f4366,0x0031726f,0x00040005, + 0x000000e0,0x6c6f4366,0x0032726f,0x00040005,0x000000e1,0x6c6f4366,0x0033726f,0x00030005, + 0x000000e2,0x00000074,0x00080005,0x000000e5,0x63746546,0x42646568,0x62756369,0x61536369, + 0x656c706d,0x00000073,0x00060006,0x000000e5,0x00000000,0x6c6f4366,0x3030726f,0x00000000, + 0x00060006,0x000000e5,0x00000001,0x6c6f4366,0x3031726f,0x00000000,0x00060006,0x000000e5, + 0x00000002,0x6c6f4366,0x3032726f,0x00000000,0x00060006,0x000000e5,0x00000003,0x6c6f4366, + 0x3033726f,0x00000000,0x00060006,0x000000e5,0x00000004,0x6c6f4366,0x3130726f,0x00000000, + 0x00060006,0x000000e5,0x00000005,0x6c6f4366,0x3131726f,0x00000000,0x00060006,0x000000e5, + 0x00000006,0x6c6f4366,0x3132726f,0x00000000,0x00060006,0x000000e5,0x00000007,0x6c6f4366, + 0x3133726f,0x00000000,0x00060006,0x000000e5,0x00000008,0x6c6f4366,0x3230726f,0x00000000, + 0x00060006,0x000000e5,0x00000009,0x6c6f4366,0x3231726f,0x00000000,0x00060006,0x000000e5, + 0x0000000a,0x6c6f4366,0x3232726f,0x00000000,0x00060006,0x000000e5,0x0000000b,0x6c6f4366, + 0x3233726f,0x00000000,0x00060006,0x000000e5,0x0000000c,0x6c6f4366,0x3330726f,0x00000000, + 0x00060006,0x000000e5,0x0000000d,0x6c6f4366,0x3331726f,0x00000000,0x00060006,0x000000e5, + 0x0000000e,0x6c6f4366,0x3332726f,0x00000000,0x00060006,0x000000e5,0x0000000f,0x6c6f4366, + 0x3333726f,0x00000000,0x001d0005,0x000000ea,0x636e614c,0x32736f7a,0x72747328,0x2d746375, + 0x63746546,0x42646568,0x62756369,0x61536369,0x656c706d,0x66762d73,0x66762d34,0x66762d34, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34, + 0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x66762d34,0x763b3134,0x003b3266,0x00040005, + 0x000000e8,0x706d6153,0x0073656c,0x00040005,0x000000e9,0x46785066,0x00636172,0x00080005, + 0x000000ef,0x6d616c43,0x6f6f4370,0x76286472,0x763b3269,0x763b3269,0x003b3269,0x00050005, + 0x000000ec,0x53785069,0x6c706d61,0x00000065,0x00050005,0x000000ed,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x000000ee,0x78655469,0x65727574,0x657a6953,0x00000000,0x00110005, + 0x000000f4,0x69726544,0x6e69676e,0x74732867,0x74637572,0x6365522d,0x69666974,0x69746163, + 0x6f426e6f,0x66762d78,0x66762d33,0x66762d33,0x66762d33,0x31662d33,0x66763b31,0x00003b33, + 0x00050005,0x000000f2,0x70696c63,0x676e6970,0x00786f42,0x00040005,0x000000f3,0x6c6f4366, + 0x0000726f,0x000b0005,0x000000f9,0x55746547,0x6d617370,0x4c656c70,0x7a636e61,0x6557736f, + 0x74686769,0x32667628,0x3b31663b,0x00000000,0x00070005,0x000000f7,0x63725366,0x706d6153, + 0x664f656c,0x74657366,0x00000000,0x00060005,0x000000f8,0x72654b66,0x576c656e,0x68676965, + 0x00000074,0x000a0005,0x000000fb,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43, + 0x61506e6f,0x736d6172,0x00000000,0x00060006,0x000000fb,0x00000000,0x48785069,0x736f5072, + 0x00000000,0x00050006,0x000000fb,0x00000001,0x55724866,0x00000076,0x00070006,0x000000fb, + 0x00000002,0x55724c66,0x74694a76,0x65726574,0x00000064,0x00070006,0x000000fb,0x00000003, + 0x55724c66,0x77485f76,0x706d6153,0x0072656c,0x00070006,0x000000fb,0x00000004,0x746f4d66, + 0x566e6f69,0x6f746365,0x00000072,0x00080006,0x000000fb,0x00000005,0x70655266,0x656a6f72, + 0x64657463,0x76557248,0x00000000,0x00060006,0x000000fb,0x00000006,0x564b3466,0x636f6c65, + 0x00797469,0x00070006,0x000000fb,0x00000007,0x73694466,0x6c63636f,0x6f697375,0x0000006e, + 0x00070006,0x000000fb,0x00000008,0x61655266,0x76697463,0x73614d65,0x0000006b,0x00070006, + 0x000000fb,0x00000009,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00070006,0x000000fb, + 0x0000000a,0x63634166,0x6c756d75,0x6f697461,0x0000006e,0x00090006,0x000000fb,0x0000000b, + 0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x74636146,0x0000726f,0x00090006,0x000000fb, + 0x0000000c,0x72614666,0x73656874,0x70654474,0x6e496874,0x6574654d,0x00007372,0x00080006, + 0x000000fb,0x0000000d,0x45734962,0x74736978,0x53676e69,0x6c706d61,0x00000065,0x00070006, + 0x000000fb,0x0000000e,0x4e734962,0x61537765,0x656c706d,0x00000000,0x00080005,0x000000fc, + 0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x61746144,0x00000000,0x00060006,0x000000fc, + 0x00000000,0x70696c63,0x676e6970,0x00786f42,0x00070006,0x000000fc,0x00000001,0x73705566, + 0x6c706d61,0x6f436465,0x00726f6c,0x00080006,0x000000fc,0x00000002,0x73705566,0x6c706d61, + 0x65576465,0x74686769,0x00000000,0x00070006,0x000000fc,0x00000003,0x73694866,0x79726f74, + 0x6f6c6f43,0x00000072,0x00070006,0x000000fc,0x00000004,0x73694866,0x79726f74,0x67696557, + 0x00007468,0x00050006,0x000000fc,0x00000005,0x636f4c66,0x0000006b,0x000a0006,0x000000fc, + 0x00000006,0x636f4c66,0x6e6f436b,0x62697274,0x6f697475,0x6968546e,0x61724673,0x0000656d, + 0x00360005,0x00000101,0x706d6f43,0x4d657475,0x654b7861,0x6c656e72,0x67696557,0x73287468, + 0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150, + 0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74, + 0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463, + 0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131, + 0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005,0x000000ff, + 0x61726170,0x0000736d,0x00040005,0x00000100,0x61746164,0x00000000,0x00080005,0x00000104, + 0x64616f4c,0x70657250,0x64657261,0x6f6c6f43,0x69762872,0x00003b32,0x00050005,0x00000103, + 0x6d615369,0x50656c70,0x0000736f,0x00380005,0x00000109,0x706d6f43,0x55657475,0x6d617370, + 0x64656c70,0x6f6c6f43,0x646e4172,0x67696557,0x73287468,0x63757274,0x63412d74,0x756d7563, + 0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266, + 0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31, + 0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f, + 0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33, + 0x2d31662d,0x3b313166,0x00000000,0x00040005,0x00000107,0x61726170,0x0000736d,0x00040005, + 0x00000108,0x61746164,0x00000000,0x00070005,0x0000010c,0x70617257,0x74736948,0x2879726f, + 0x3b326976,0x00000000,0x00050005,0x0000010b,0x53785069,0x6c706d61,0x00000065,0x000a0005, + 0x00000111,0x63746546,0x73694868,0x79726f74,0x706d6153,0x2873656c,0x3b326976,0x3b326976, + 0x00000000,0x00050005,0x0000010f,0x53785069,0x6c706d61,0x00000065,0x00060005,0x00000110, + 0x78655469,0x65727574,0x657a6953,0x00000000,0x00080005,0x00000116,0x74736948,0x5379726f, + 0x6c706d61,0x66762865,0x69763b32,0x00003b32,0x00050005,0x00000114,0x53765566,0x6c706d61, + 0x00000065,0x00060005,0x00000115,0x78655469,0x65727574,0x657a6953,0x00000000,0x00090005, + 0x0000011b,0x4d746547,0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x3b326676,0x00000000, + 0x00050005,0x00000119,0x48785069,0x736f5072,0x00000000,0x00040005,0x0000011a,0x55724866, + 0x00000076,0x001e0005,0x00000120,0x706d6f43,0x52657475,0x6f727065,0x7463656a,0x56556465, + 0x74732873,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d, + 0x6d617261,0x69762d73,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x66762d32,0x31662d32, + 0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3166,0x31622d31,0x00003b31,0x00040005, + 0x0000011f,0x61726170,0x0000736d,0x00350005,0x00000124,0x72706552,0x63656a6f,0x73694874, + 0x79726f74,0x6f6c6f43,0x74732872,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e, + 0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73,0x66762d32,0x66762d32,0x66762d32,0x66762d32, + 0x66762d32,0x31662d32,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3166,0x31622d31, + 0x74733b31,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e,0x74614473,0x74732d61, + 0x74637572,0x6365522d,0x69666974,0x69746163,0x6f426e6f,0x66762d78,0x66762d33,0x66762d33, + 0x66762d33,0x31662d33,0x66762d31,0x31662d33,0x3366762d,0x2d31662d,0x662d3166,0x003b3131, + 0x00040005,0x00000122,0x61726170,0x0000736d,0x00040005,0x00000123,0x61746164,0x00000000, + 0x00330005,0x00000128,0x75636341,0x616c756d,0x73286574,0x63757274,0x63412d74,0x756d7563, + 0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d,0x61726150,0x762d736d,0x762d3269,0x762d3266, + 0x762d3266,0x762d3266,0x762d3266,0x662d3266,0x31662d31,0x2d31662d,0x662d3166,0x31662d31, + 0x2d31662d,0x622d3162,0x733b3131,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f, + 0x61447373,0x732d6174,0x63757274,0x65522d74,0x66697463,0x74616369,0x426e6f69,0x762d786f, + 0x762d3366,0x762d3366,0x762d3366,0x662d3366,0x762d3131,0x662d3366,0x66762d31,0x31662d33, + 0x2d31662d,0x3b313166,0x00000000,0x00040005,0x00000126,0x61726170,0x0000736d,0x00040005, + 0x00000127,0x61746164,0x00000000,0x00340005,0x0000012c,0x74636552,0x48796669,0x6f747369, + 0x73287972,0x63757274,0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x6f437373,0x6e6f6d6d, + 0x61726150,0x762d736d,0x762d3269,0x762d3266,0x762d3266,0x762d3266,0x762d3266,0x662d3266, + 0x31662d31,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d,0x622d3162,0x733b3131,0x63757274, + 0x63412d74,0x756d7563,0x6974616c,0x61506e6f,0x61447373,0x732d6174,0x63757274,0x65522d74, + 0x66697463,0x74616369,0x426e6f69,0x762d786f,0x762d3366,0x762d3366,0x762d3366,0x662d3366, + 0x762d3131,0x662d3366,0x66762d31,0x31662d33,0x2d31662d,0x3b313166,0x00000000,0x00040005, + 0x0000012a,0x61726170,0x0000736d,0x00040005,0x0000012b,0x61746164,0x00000000,0x00340005, + 0x00000131,0x61647055,0x6f4c6574,0x74536b63,0x73757461,0x72747328,0x2d746375,0x75636341, + 0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f,0x736d6172,0x3269762d,0x3266762d, + 0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x662d3166,0x31622d31,0x3131622d,0x7274733b,0x2d746375,0x75636341,0x616c756d,0x6e6f6974, + 0x73736150,0x61746144,0x7274732d,0x2d746375,0x74636552,0x63696669,0x6f697461,0x786f426e, + 0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d,0x3366762d,0x2d31662d,0x2d336676, + 0x662d3166,0x31662d31,0x00003b31,0x00040005,0x0000012f,0x61726170,0x0000736d,0x00040005, + 0x00000130,0x61746164,0x00000000,0x00370005,0x00000135,0x706d6f43,0x42657475,0x41657361, + 0x6d756363,0x74616c75,0x576e6f69,0x68676965,0x74732874,0x74637572,0x6363412d,0x6c756d75, + 0x6f697461,0x7361506e,0x6d6f4373,0x506e6f6d,0x6d617261,0x69762d73,0x66762d32,0x66762d32, + 0x66762d32,0x66762d32,0x66762d32,0x31662d32,0x2d31662d,0x662d3166,0x31662d31,0x2d31662d, + 0x622d3166,0x31622d31,0x74733b31,0x74637572,0x6363412d,0x6c756d75,0x6f697461,0x7361506e, + 0x74614473,0x74732d61,0x74637572,0x6365522d,0x69666974,0x69746163,0x6f426e6f,0x66762d78, + 0x66762d33,0x66762d33,0x66762d33,0x31662d33,0x66762d31,0x31662d33,0x3366762d,0x2d31662d, + 0x662d3166,0x003b3131,0x00040005,0x00000133,0x61726170,0x0000736d,0x00040005,0x00000134, + 0x61746164,0x00000000,0x00340005,0x0000013b,0x74696e49,0x73736150,0x61746144,0x32697628, + 0x7274733b,0x2d746375,0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x6d6d6f43,0x61506e6f, + 0x736d6172,0x3269762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x3266762d,0x2d31662d, + 0x662d3166,0x31662d31,0x2d31662d,0x662d3166,0x31622d31,0x3131622d,0x7274733b,0x2d746375, + 0x75636341,0x616c756d,0x6e6f6974,0x73736150,0x61746144,0x7274732d,0x2d746375,0x74636552, + 0x63696669,0x6f697461,0x786f426e,0x3366762d,0x3366762d,0x3366762d,0x3366762d,0x3131662d, + 0x3366762d,0x2d31662d,0x2d336676,0x662d3166,0x31662d31,0x00003b31,0x00050005,0x00000138, + 0x48785069,0x736f5072,0x00000000,0x00040005,0x00000139,0x61726170,0x0000736d,0x00040005, + 0x0000013a,0x61746164,0x00000000,0x00060005,0x0000013f,0x75636341,0x616c756d,0x76286574, + 0x003b3269,0x00050005,0x0000013e,0x48785069,0x736f5072,0x00000000,0x00070005,0x0000018f, + 0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x0000018f,0x00000000, + 0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000018f,0x00000001,0x65725069,0x756f6976, + 0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x0000018f,0x00000002, + 0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000018f,0x00000003,0x65725069, + 0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x0000018f, + 0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x0000018f,0x00000005, + 0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000018f,0x00000006,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000018f,0x00000007,0x74694a66, + 0x00726574,0x00090006,0x0000018f,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d, + 0x72657474,0x00000000,0x00080006,0x0000018f,0x00000009,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00080006,0x0000018f,0x0000000a,0x776f4466,0x6163736e,0x6146656c, + 0x726f7463,0x00000000,0x000b0006,0x0000018f,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365, + 0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x0000018f,0x0000000c, + 0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000018f,0x0000000d,0x74694a66,0x53726574, + 0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000018f,0x0000000e,0x6c654466, + 0x69546174,0x0000656d,0x00080006,0x0000018f,0x0000000f,0x6c654466,0x72506174,0x70784565, + 0x7275736f,0x00000065,0x000a0006,0x0000018f,0x00000010,0x65695666,0x61705377,0x6f546563, + 0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000018f,0x00000011,0x61724666, + 0x6e49656d,0x00786564,0x00070006,0x0000018f,0x00000012,0x6c655666,0x7469636f,0x63614679, + 0x00726f74,0x00080006,0x0000018f,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373, + 0x0000656c,0x00080006,0x0000018f,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567, + 0x00656c61,0x000a0006,0x0000018f,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e, + 0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000018f,0x00000016,0x6e694d66,0x6f736944, + 0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x00000191, + 0x53466263,0x70553352,0x6c616373,0x00007265,0x00080005,0x000001c9,0x6e695f72,0x5f747570, + 0x6f6c6f63,0x696a5f72,0x72657474,0x00006465,0x00090005,0x000001d0,0x6e695f72,0x6e726574, + 0x755f6c61,0x61637370,0x5f64656c,0x6f6c6f63,0x00000072,0x00090005,0x000001d8,0x695f7772, + 0x7265746e,0x5f6c616e,0x63737075,0x64656c61,0x6c6f635f,0x0000726f,0x00080005,0x000001dc, + 0x61665f72,0x65687472,0x645f7473,0x68747065,0x70696d5f,0x00000031,0x00060005,0x000001e4, + 0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00070005,0x000001ef,0x756c5f72,0x695f616d, + 0x6174736e,0x696c6962,0x00007974,0x00060005,0x000001fa,0x6e5f7772,0x6c5f7765,0x736b636f, + 0x00000000,0x00090005,0x00000205,0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f, + 0x73726f74,0x00000000,0x00050005,0x0000020c,0x6f707865,0x65727573,0x00000000,0x00070005, + 0x0000020d,0x6e695f72,0x5f747570,0x6f707865,0x65727573,0x00000000,0x00090005,0x00000219, + 0x69645f72,0x6574616c,0x65725f64,0x69746361,0x6d5f6576,0x736b7361,0x00000000,0x00060005, + 0x0000022b,0x67696577,0x64657468,0x706d6153,0x0000656c,0x00040005,0x00000237,0x61726170, + 0x0000006d,0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005,0x0000023f,0x61726170, + 0x0000006d,0x00040005,0x00000242,0x61726170,0x0000006d,0x00040005,0x00000245,0x61726170, + 0x0000006d,0x00060005,0x00000248,0x67696577,0x64657468,0x706d6153,0x0000656c,0x00040005, + 0x00000274,0x44647473,0x00007665,0x00040005,0x00000281,0x62675266,0x00000000,0x00040005, + 0x0000029d,0x6f435966,0x00006743,0x00040005,0x000002c3,0x61726170,0x0000006d,0x00040005, + 0x000002c4,0x61726170,0x0000006d,0x00040005,0x000002c8,0x61726170,0x0000006d,0x00040005, + 0x000002cb,0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170,0x0000006d,0x00040005, + 0x000002d0,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005, + 0x000002dc,0x61726170,0x0000006d,0x00040005,0x000002e0,0x61726170,0x0000006d,0x00040005, + 0x000002e3,0x61726170,0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d,0x00040005, + 0x000002e7,0x61726170,0x0000006d,0x00040005,0x00000304,0x75736572,0x0000746c,0x00040005, + 0x0000030b,0x61726170,0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d,0x00040005, + 0x00000310,0x61726170,0x0000006d,0x00040005,0x00000311,0x61726170,0x0000006d,0x00040005, + 0x00000317,0x61726170,0x0000006d,0x00040005,0x0000031a,0x61726170,0x0000006d,0x00040005, + 0x0000031c,0x61726170,0x0000006d,0x00040005,0x0000031d,0x61726170,0x0000006d,0x00060005, + 0x00000323,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x00000328,0x616c4366, + 0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x0000032d,0x61726170,0x0000006d, + 0x00040005,0x0000032f,0x61726170,0x0000006d,0x00040005,0x00000331,0x61726170,0x0000006d, + 0x00040005,0x00000332,0x61726170,0x0000006d,0x00050005,0x00000334,0x616c4366,0x6465706d, + 0x00007655,0x00040005,0x00000362,0x61726170,0x0000006d,0x00040005,0x00000363,0x61726170, + 0x0000006d,0x00040005,0x00000365,0x61726170,0x0000006d,0x00030005,0x0000036a,0x00000061, + 0x00030005,0x0000036f,0x00000062,0x00040005,0x00000381,0x61726170,0x0000006d,0x00040005, + 0x00000383,0x61726170,0x0000006d,0x00040005,0x00000385,0x61726170,0x0000006d,0x00050005, + 0x0000038a,0x69655766,0x30746867,0x00000000,0x00040005,0x0000038e,0x61726170,0x0000006d, + 0x00050005,0x00000390,0x69655766,0x31746867,0x00000000,0x00040005,0x00000394,0x61726170, + 0x0000006d,0x00050005,0x00000396,0x69655766,0x32746867,0x00000000,0x00040005,0x00000399, + 0x61726170,0x0000006d,0x00050005,0x0000039b,0x69655766,0x33746867,0x00000000,0x00040005, + 0x0000039e,0x61726170,0x0000006d,0x00050005,0x000003ba,0x6c6f4366,0x3058726f,0x00000000, + 0x00040005,0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003be,0x61726170,0x0000006d, + 0x00040005,0x000003c1,0x61726170,0x0000006d,0x00040005,0x000003c4,0x61726170,0x0000006d, + 0x00040005,0x000003c7,0x61726170,0x0000006d,0x00050005,0x000003cb,0x6c6f4366,0x3158726f, + 0x00000000,0x00040005,0x000003ce,0x61726170,0x0000006d,0x00040005,0x000003d1,0x61726170, + 0x0000006d,0x00040005,0x000003d4,0x61726170,0x0000006d,0x00040005,0x000003d7,0x61726170, + 0x0000006d,0x00040005,0x000003da,0x61726170,0x0000006d,0x00050005,0x000003de,0x6c6f4366, + 0x3258726f,0x00000000,0x00040005,0x000003e2,0x61726170,0x0000006d,0x00040005,0x000003e5, + 0x61726170,0x0000006d,0x00040005,0x000003e8,0x61726170,0x0000006d,0x00040005,0x000003eb, + 0x61726170,0x0000006d,0x00040005,0x000003ee,0x61726170,0x0000006d,0x00050005,0x000003f2, + 0x6c6f4366,0x3358726f,0x00000000,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005, + 0x000003f8,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170,0x0000006d,0x00040005, + 0x000003fe,0x61726170,0x0000006d,0x00040005,0x00000401,0x61726170,0x0000006d,0x00050005, + 0x00000405,0x6c6f4366,0x5958726f,0x00000000,0x00040005,0x00000406,0x61726170,0x0000006d, + 0x00040005,0x00000408,0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170,0x0000006d, + 0x00040005,0x0000040c,0x61726170,0x0000006d,0x00040005,0x0000040e,0x61726170,0x0000006d, + 0x00070005,0x00000415,0x72654466,0x69676e69,0x6153676e,0x656c706d,0x00000073,0x00060005, + 0x0000041f,0x72654466,0x69676e69,0x694d676e,0x0000006e,0x00060005,0x00000422,0x72654466, + 0x69676e69,0x614d676e,0x00000078,0x00060005,0x00000425,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x0000042e,0x61726170,0x0000006d,0x00040005,0x00000430,0x61726170, + 0x0000006d,0x00040005,0x00000435,0x61726170,0x0000006d,0x00040005,0x00000437,0x61726170, + 0x0000006d,0x00040005,0x00000444,0x75736572,0x0000746c,0x00040005,0x0000044b,0x61726170, + 0x0000006d,0x00040005,0x0000044e,0x61726170,0x0000006d,0x00040005,0x00000450,0x61726170, + 0x0000006d,0x00040005,0x00000451,0x61726170,0x0000006d,0x00040005,0x00000457,0x61726170, + 0x0000006d,0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045c,0x61726170, + 0x0000006d,0x00040005,0x0000045d,0x61726170,0x0000006d,0x00080005,0x00000469,0x63725366, + 0x706d6153,0x664f656c,0x74657366,0x73616942,0x00006465,0x00060005,0x0000046e,0x6d615366, + 0x57656c70,0x68676965,0x00000074,0x00040005,0x00000472,0x61726170,0x0000006d,0x00060005, + 0x00000477,0x72654b66,0x536c656e,0x42657a69,0x00736169,0x00040005,0x00000480,0x61726170, + 0x0000006d,0x00040005,0x00000481,0x61726170,0x0000006d,0x00040005,0x00000486,0x62675266, + 0x00000000,0x00040005,0x00000488,0x61726170,0x0000006d,0x00040005,0x0000048b,0x61726170, + 0x0000006d,0x00040005,0x0000048c,0x61726170,0x0000006d,0x00060005,0x00000490,0x65725066, + 0x65726170,0x6f435964,0x00006743,0x00040005,0x00000491,0x61726170,0x0000006d,0x00060005, + 0x00000497,0x74734466,0x7074754f,0x6f507475,0x00000073,0x00060005,0x0000049b,0x63725366, + 0x7074754f,0x6f507475,0x00000073,0x00060005,0x0000049f,0x63725369,0x75706e49,0x736f5074, + 0x00000000,0x00070005,0x000004a3,0x63725366,0x696a6e55,0x72657474,0x6f506465,0x00000073, + 0x00070005,0x000004a9,0x73614266,0x6d615365,0x4f656c70,0x65736666,0x00000074,0x00050005, + 0x000004ad,0x7366666f,0x4c547465,0x00000000,0x00050005,0x000004be,0x696c4662,0x776f5270, + 0x00000000,0x00050005,0x000004c4,0x696c4662,0x6c6f4370,0x00000000,0x00050005,0x000004ca, + 0x66664f66,0x54746573,0x0000004c,0x00070005,0x000004cd,0x49734962,0x6974696e,0x61536c61, + 0x656c706d,0x00000000,0x00060005,0x000004d0,0x6d615369,0x49656c70,0x7865646e,0x00000000, + 0x00030005,0x000004d1,0x00776f72,0x00030005,0x000004d9,0x006c6f63,0x00060005,0x000004e1, + 0x6d615369,0x43656c70,0x6f526c6f,0x00000077,0x00060005,0x000004f5,0x63725369,0x706d6153, + 0x6f50656c,0x00000073,0x00060005,0x000004fb,0x6d615369,0x43656c70,0x64726f6f,0x00000000, + 0x00040005,0x000004fd,0x61726170,0x0000006d,0x00040005,0x000004ff,0x61726170,0x0000006d, + 0x00040005,0x00000500,0x61726170,0x0000006d,0x00050005,0x00000505,0x6d615366,0x73656c70, + 0x00000000,0x00040005,0x00000507,0x61726170,0x0000006d,0x00040005,0x0000051d,0x61726170, + 0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000523,0x61726170, + 0x0000006d,0x00060005,0x00000528,0x72654b66,0x426c656e,0x4d736169,0x00007861,0x00040005, + 0x00000529,0x61726170,0x0000006d,0x00060005,0x0000052d,0x72654b66,0x426c656e,0x4d736169, + 0x00006e69,0x00040005,0x00000532,0x61726170,0x0000006d,0x00040005,0x00000533,0x61726170, + 0x0000006d,0x00070005,0x00000535,0x72654b66,0x426c656e,0x57736169,0x68676965,0x00000074, + 0x00040005,0x0000053f,0x61726170,0x0000006d,0x00040005,0x00000541,0x61726170,0x0000006d, + 0x00040005,0x00000542,0x61726170,0x0000006d,0x00040005,0x00000544,0x61726170,0x0000006d, + 0x00040005,0x00000545,0x61726170,0x0000006d,0x00050005,0x00000547,0x72654b66,0x426c656e, + 0x00736169,0x00040005,0x00000548,0x61726170,0x0000006d,0x00040005,0x0000054a,0x61726170, + 0x0000006d,0x00040005,0x0000054c,0x61726170,0x0000006d,0x00030005,0x0000054f,0x00776f72, + 0x00030005,0x00000557,0x006c6f63,0x00060005,0x0000055f,0x706d6173,0x6f43656c,0x776f526c, + 0x00000000,0x00040005,0x00000573,0x66664f66,0x00746573,0x00070005,0x00000578,0x63725366, + 0x706d6153,0x664f656c,0x74657366,0x00000000,0x00060005,0x0000057c,0x63725369,0x706d6153, + 0x6f50656c,0x00000073,0x00060005,0x00000582,0x536e4f66,0x65657263,0x6361466e,0x00726f74, + 0x00040005,0x00000585,0x61726170,0x0000006d,0x00040005,0x00000586,0x61726170,0x0000006d, + 0x00060005,0x0000058d,0x6d615366,0x57656c70,0x68676965,0x00000074,0x00040005,0x0000058f, + 0x61726170,0x0000006d,0x00040005,0x00000591,0x61726170,0x0000006d,0x00070005,0x000005a3, + 0x63725366,0x706d6153,0x664f656c,0x74657366,0x00007153,0x00070005,0x000005a7,0x786f4266, + 0x706d6153,0x6557656c,0x74686769,0x00000000,0x00060005,0x000005ae,0x696e4962,0x6c616974, + 0x706d6153,0x0000656c,0x00040005,0x000005b8,0x61726170,0x0000006d,0x00040005,0x000005ba, + 0x61726170,0x0000006d,0x00040005,0x000005c6,0x61726170,0x0000006d,0x00040005,0x000005e5, + 0x61726170,0x0000006d,0x00040005,0x000005e8,0x61726170,0x0000006d,0x00040005,0x000005f1, + 0x61726170,0x0000006d,0x00040005,0x000005f5,0x61726170,0x0000006d,0x00040005,0x000005f7, + 0x61726170,0x0000006d,0x00040005,0x000005fc,0x61726170,0x0000006d,0x00040005,0x00000601, + 0x706d6153,0x0073656c,0x00040005,0x00000603,0x61726170,0x0000006d,0x00040005,0x00000605, + 0x61726170,0x0000006d,0x00040005,0x00000606,0x61726170,0x0000006d,0x00040005,0x00000609, + 0x61726170,0x0000006d,0x00040005,0x0000060d,0x61726170,0x0000006d,0x00040005,0x0000060f, + 0x61726170,0x0000006d,0x00040005,0x00000610,0x61726170,0x0000006d,0x00040005,0x00000613, + 0x61726170,0x0000006d,0x00040005,0x00000617,0x61726170,0x0000006d,0x00040005,0x00000619, + 0x61726170,0x0000006d,0x00040005,0x0000061a,0x61726170,0x0000006d,0x00040005,0x0000061d, + 0x61726170,0x0000006d,0x00040005,0x00000621,0x61726170,0x0000006d,0x00040005,0x00000623, + 0x61726170,0x0000006d,0x00040005,0x00000624,0x61726170,0x0000006d,0x00040005,0x00000627, + 0x61726170,0x0000006d,0x00040005,0x0000062b,0x61726170,0x0000006d,0x00040005,0x0000062d, + 0x61726170,0x0000006d,0x00040005,0x0000062e,0x61726170,0x0000006d,0x00040005,0x00000631, + 0x61726170,0x0000006d,0x00040005,0x00000634,0x61726170,0x0000006d,0x00040005,0x00000636, + 0x61726170,0x0000006d,0x00040005,0x00000637,0x61726170,0x0000006d,0x00040005,0x0000063a, + 0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d,0x00040005,0x00000640, + 0x61726170,0x0000006d,0x00040005,0x00000641,0x61726170,0x0000006d,0x00040005,0x00000644, + 0x61726170,0x0000006d,0x00040005,0x00000648,0x61726170,0x0000006d,0x00040005,0x0000064a, + 0x61726170,0x0000006d,0x00040005,0x0000064b,0x61726170,0x0000006d,0x00040005,0x0000064e, + 0x61726170,0x0000006d,0x00040005,0x00000652,0x61726170,0x0000006d,0x00040005,0x00000654, + 0x61726170,0x0000006d,0x00040005,0x00000655,0x61726170,0x0000006d,0x00040005,0x00000658, + 0x61726170,0x0000006d,0x00040005,0x0000065c,0x61726170,0x0000006d,0x00040005,0x0000065e, + 0x61726170,0x0000006d,0x00040005,0x0000065f,0x61726170,0x0000006d,0x00040005,0x00000662, + 0x61726170,0x0000006d,0x00040005,0x00000666,0x61726170,0x0000006d,0x00040005,0x00000668, + 0x61726170,0x0000006d,0x00040005,0x00000669,0x61726170,0x0000006d,0x00040005,0x0000066c, + 0x61726170,0x0000006d,0x00040005,0x00000670,0x61726170,0x0000006d,0x00040005,0x00000672, + 0x61726170,0x0000006d,0x00040005,0x00000673,0x61726170,0x0000006d,0x00040005,0x00000676, + 0x61726170,0x0000006d,0x00040005,0x0000067a,0x61726170,0x0000006d,0x00040005,0x0000067c, + 0x61726170,0x0000006d,0x00040005,0x0000067d,0x61726170,0x0000006d,0x00040005,0x00000680, + 0x61726170,0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005,0x00000686, + 0x61726170,0x0000006d,0x00040005,0x00000687,0x61726170,0x0000006d,0x00040005,0x0000068a, + 0x61726170,0x0000006d,0x00040005,0x0000068e,0x61726170,0x0000006d,0x00040005,0x00000690, + 0x61726170,0x0000006d,0x00040005,0x00000691,0x61726170,0x0000006d,0x00040005,0x00000694, + 0x61726170,0x0000006d,0x00040005,0x00000698,0x61726170,0x0000006d,0x00040005,0x0000069a, + 0x61726170,0x0000006d,0x00040005,0x0000069b,0x61726170,0x0000006d,0x00040005,0x0000069e, + 0x61726170,0x0000006d,0x00050005,0x000006a4,0x53785066,0x6c706d61,0x00000065,0x00040005, + 0x000006aa,0x46785066,0x00636172,0x00040005,0x000006ab,0x61726170,0x0000006d,0x00040005, + 0x000006b2,0x61726170,0x0000006d,0x00040005,0x000006b3,0x61726170,0x0000006d,0x00040005, + 0x000006b7,0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d,0x00040005, + 0x000006bf,0x61726170,0x0000006d,0x00040005,0x000006c0,0x61726170,0x0000006d,0x00040005, + 0x000006c4,0x61726170,0x0000006d,0x00040005,0x000006c5,0x61726170,0x0000006d,0x00050005, + 0x000006c8,0x53785069,0x6c706d61,0x00000065,0x00050005,0x000006cc,0x6c6f4366,0x5958726f, + 0x00000000,0x00040005,0x000006cd,0x61726170,0x0000006d,0x00040005,0x000006cf,0x61726170, + 0x0000006d,0x00040005,0x000006d2,0x61726170,0x0000006d,0x00040005,0x000006d3,0x61726170, + 0x0000006d,0x00080005,0x000006d9,0x6c694466,0x64657461,0x69746f4d,0x65566e6f,0x726f7463, + 0x00000000,0x00040005,0x000006df,0x61726170,0x0000006d,0x00040005,0x000006ea,0x61726170, + 0x0000006d,0x00070005,0x000006ef,0x70655266,0x656a6f72,0x64657463,0x74736948,0x0079726f, + 0x00040005,0x000006f1,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x00000702,0x61726170,0x0000006d,0x00040005,0x00000718,0x61726170,0x0000006d, + 0x00040005,0x00000719,0x61726170,0x0000006d,0x00040005,0x0000071c,0x61726170,0x0000006d, + 0x00040005,0x00000720,0x61726170,0x0000006d,0x00040005,0x00000722,0x61726170,0x0000006d, + 0x00040005,0x00000725,0x61726170,0x0000006d,0x00040005,0x00000729,0x61726170,0x0000006d, + 0x00040005,0x0000072b,0x61726170,0x0000006d,0x00040005,0x0000072e,0x706c4166,0x00006168, + 0x00040005,0x00000734,0x61726170,0x0000006d,0x00040005,0x00000736,0x61726170,0x0000006d, + 0x00040005,0x00000739,0x61726170,0x0000006d,0x00040005,0x0000073c,0x61726170,0x0000006d, + 0x00040005,0x00000740,0x61726170,0x0000006d,0x00040005,0x00000745,0x61726170,0x0000006d, + 0x00070005,0x0000074a,0x566b3466,0x636f6c65,0x46797469,0x6f746361,0x00000072,0x00040005, + 0x0000074e,0x61726170,0x0000006d,0x00060005,0x00000750,0x73694466,0x636e6174,0x63614665, + 0x00726f74,0x00040005,0x00000755,0x61726170,0x0000006d,0x00070005,0x00000757,0x63634166, + 0x6c756d75,0x6f697461,0x6361466e,0x00726f74,0x00060005,0x0000075a,0x61655266,0x76697463, + 0x63614665,0x00726f74,0x00040005,0x0000075b,0x61726170,0x0000006d,0x00040005,0x0000075d, + 0x61726170,0x0000006d,0x00080005,0x0000075f,0x61685366,0x676e6964,0x6e616843,0x61466567, + 0x726f7463,0x00000000,0x00050005,0x00000761,0x786f4266,0x6c616353,0x00005465,0x00040005, + 0x00000762,0x61726170,0x0000006d,0x00040005,0x00000764,0x61726170,0x0000006d,0x00040005, + 0x00000767,0x61726170,0x0000006d,0x00040005,0x00000769,0x61726170,0x0000006d,0x00040005, + 0x0000076b,0x61726170,0x0000006d,0x00040005,0x0000076d,0x61726170,0x0000006d,0x00040005, + 0x0000076f,0x61726170,0x0000006d,0x00040005,0x00000771,0x61726170,0x0000006d,0x00050005, + 0x00000773,0x786f4266,0x6c616353,0x00000065,0x00040005,0x00000775,0x61726170,0x0000006d, + 0x00040005,0x00000776,0x61726170,0x0000006d,0x00040005,0x00000777,0x61726170,0x0000006d, + 0x00060005,0x0000077a,0x61635366,0x4264656c,0x6556786f,0x00000063,0x00080005,0x00000782, + 0x616c4366,0x6465706d,0x6c616353,0x6f426465,0x63655678,0x00000000,0x00040005,0x00000785, + 0x61726170,0x0000006d,0x00040005,0x00000787,0x61726170,0x0000006d,0x00090005,0x00000789, + 0x61725466,0x6f66736e,0x64656d72,0x74736948,0x4379726f,0x726f6c6f,0x00000000,0x00080005, + 0x00000796,0x616c4366,0x6465706d,0x74736948,0x4379726f,0x726f6c6f,0x00000000,0x00090005, + 0x00000799,0x6e694666,0x6c436c61,0x65706d61,0x73694864,0x79726f74,0x6f6c6f43,0x00000072, + 0x00080005,0x000007a0,0x73694866,0x79726f74,0x746e6f43,0x75626972,0x6e6f6974,0x00000000, + 0x00040005,0x000007a1,0x61726170,0x0000006d,0x00040005,0x000007a3,0x61726170,0x0000006d, + 0x00040005,0x000007ac,0x61726170,0x0000006d,0x00040005,0x000007af,0x61726170,0x0000006d, + 0x00040005,0x000007b1,0x61726170,0x0000006d,0x00040005,0x000007b4,0x61726170,0x0000006d, + 0x00080005,0x000007c0,0x66694c66,0x6d697465,0x63654465,0x73616572,0x63614665,0x00726f74, + 0x00040005,0x000007c1,0x61726170,0x0000006d,0x00040005,0x000007c5,0x61726170,0x0000006d, + 0x00040005,0x000007c8,0x61726170,0x0000006d,0x00040005,0x000007cc,0x61726170,0x0000006d, + 0x00040005,0x000007cd,0x61726170,0x0000006d,0x00040005,0x000007d4,0x61726170,0x0000006d, + 0x00040005,0x000007d5,0x61726170,0x0000006d,0x00040005,0x000007db,0x61726170,0x0000006d, + 0x00040005,0x000007de,0x61726170,0x0000006d,0x00070005,0x000007e1,0x77654e66,0x6b636f4c, + 0x65746e49,0x7469736e,0x00000079,0x00040005,0x000007e2,0x61726170,0x0000006d,0x00040005, + 0x000007e9,0x61726170,0x0000006d,0x00040005,0x000007ea,0x61726170,0x0000006d,0x00040005, + 0x000007f4,0x61726170,0x0000006d,0x00040005,0x000007f5,0x61726170,0x0000006d,0x00040005, + 0x000007f7,0x61726170,0x0000006d,0x00040005,0x000007f8,0x61726170,0x0000006d,0x00070005, + 0x000007fb,0x66694c66,0x6d697465,0x63654465,0x73616572,0x00000065,0x00040005,0x00000806, + 0x61726170,0x0000006d,0x00040005,0x00000807,0x61726170,0x0000006d,0x00080005,0x0000080a, + 0x74734566,0x74616d69,0x76556465,0x7478654e,0x6d617246,0x00000065,0x00040005,0x00000810, + 0x61726170,0x0000006d,0x00070005,0x0000081a,0x73614266,0x63634165,0x6c756d75,0x6f697461, + 0x0000006e,0x00040005,0x00000821,0x61726170,0x0000006d,0x00040005,0x00000822,0x61726170, + 0x0000006d,0x00040005,0x00000824,0x61726170,0x0000006d,0x00040005,0x00000826,0x61726170, + 0x0000006d,0x00040005,0x00000828,0x61726170,0x0000006d,0x00040005,0x00000829,0x61726170, + 0x0000006d,0x00040005,0x0000082b,0x61726170,0x0000006d,0x00040005,0x0000082d,0x61726170, + 0x0000006d,0x00040005,0x00000833,0x55724866,0x00000076,0x00040005,0x00000846,0x61726170, + 0x0000006d,0x00040005,0x00000849,0x61726170,0x0000006d,0x00040005,0x0000084a,0x61726170, + 0x0000006d,0x00040005,0x0000084d,0x61726170,0x0000006d,0x00040005,0x0000084f,0x61726170, + 0x0000006d,0x00040005,0x00000853,0x61726170,0x0000006d,0x00040005,0x00000858,0x61726170, + 0x0000006d,0x00080005,0x0000085c,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x485f7655, + 0x00000057,0x00040005,0x0000085f,0x61726170,0x0000006d,0x00040005,0x00000861,0x61726170, + 0x0000006d,0x00040005,0x00000862,0x61726170,0x0000006d,0x00040005,0x00000864,0x61726170, + 0x0000006d,0x00070005,0x00000868,0x72614666,0x73656874,0x70654474,0x76556874,0x00000000, + 0x00040005,0x0000086d,0x61726170,0x0000006d,0x00040005,0x00000870,0x61726170,0x0000006d, + 0x00040005,0x00000871,0x61726170,0x0000006d,0x00040005,0x00000873,0x61726170,0x0000006d, + 0x00080005,0x00000881,0x6c694466,0x64657461,0x63616552,0x65766974,0x6b73614d,0x00000073, + 0x00040005,0x00000882,0x61726170,0x0000006d,0x00040005,0x00000886,0x61726170,0x0000006d, + 0x00040005,0x0000088b,0x61726170,0x0000006d,0x00040005,0x00000890,0x61726170,0x0000006d, + 0x00040005,0x00000895,0x61726170,0x0000006d,0x00040005,0x000008ab,0x61726170,0x0000736d, + 0x00040005,0x000008ac,0x61746164,0x00000000,0x00040005,0x000008ad,0x61726170,0x0000006d, + 0x00040005,0x000008af,0x61726170,0x0000006d,0x00040005,0x000008b1,0x61726170,0x0000006d, + 0x00040005,0x000008c1,0x61726170,0x0000006d,0x00040005,0x000008c5,0x61726170,0x0000006d, + 0x00040005,0x000008c7,0x61726170,0x0000006d,0x00040005,0x000008cc,0x61726170,0x0000006d, + 0x00040005,0x000008d1,0x61726170,0x0000006d,0x00040005,0x000008d6,0x61726170,0x0000006d, + 0x00040005,0x000008db,0x61726170,0x0000006d,0x00040005,0x000008e5,0x61726170,0x0000006d, + 0x00040005,0x000008e8,0x61726170,0x0000006d,0x00040005,0x000008f3,0x61726170,0x0000006d, + 0x00040005,0x000008f5,0x61726170,0x0000006d,0x00040005,0x000008f7,0x61726170,0x0000006d, + 0x00040005,0x000008f9,0x61726170,0x0000006d,0x00080005,0x000008fd,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000901,0x61726170,0x0000006d, + 0x00060005,0x00000905,0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00070005,0x00000908, + 0x755f7772,0x61637370,0x5f64656c,0x7074756f,0x00007475,0x00060005,0x00000909,0x75635f72, + 0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x0000090a,0x616c5f72,0x6f7a636e,0x756c5f73, + 0x00000074,0x00030047,0x0000018f,0x00000002,0x00050048,0x0000018f,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000018f,0x00000001,0x00000023,0x00000008,0x00050048,0x0000018f, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000018f,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000018f,0x00000004,0x00000023,0x00000020,0x00050048,0x0000018f,0x00000005, + 0x00000023,0x00000028,0x00050048,0x0000018f,0x00000006,0x00000023,0x00000030,0x00050048, + 0x0000018f,0x00000007,0x00000023,0x00000040,0x00050048,0x0000018f,0x00000008,0x00000023, + 0x00000048,0x00050048,0x0000018f,0x00000009,0x00000023,0x00000050,0x00050048,0x0000018f, + 0x0000000a,0x00000023,0x00000058,0x00050048,0x0000018f,0x0000000b,0x00000023,0x00000060, + 0x00050048,0x0000018f,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000018f,0x0000000d, + 0x00000023,0x0000006c,0x00050048,0x0000018f,0x0000000e,0x00000023,0x00000070,0x00050048, + 0x0000018f,0x0000000f,0x00000023,0x00000074,0x00050048,0x0000018f,0x00000010,0x00000023, + 0x00000078,0x00050048,0x0000018f,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000018f, + 0x00000012,0x00000023,0x00000080,0x00050048,0x0000018f,0x00000013,0x00000023,0x00000084, + 0x00050048,0x0000018f,0x00000014,0x00000023,0x00000088,0x00050048,0x0000018f,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000018f,0x00000016,0x00000023,0x00000090,0x00040047, + 0x00000191,0x00000021,0x0000000c,0x00040047,0x00000191,0x00000022,0x00000000,0x00040047, + 0x000001c9,0x00000021,0x00000008,0x00040047,0x000001c9,0x00000022,0x00000000,0x00040047, + 0x000001d0,0x00000021,0x00000003,0x00040047,0x000001d0,0x00000022,0x00000000,0x00030047, + 0x000001d8,0x00000019,0x00040047,0x000001d8,0x00000021,0x00000009,0x00040047,0x000001d8, + 0x00000022,0x00000000,0x00040047,0x000001dc,0x00000021,0x00000005,0x00040047,0x000001dc, + 0x00000022,0x00000000,0x00040047,0x000001e4,0x00000021,0x000003e9,0x00040047,0x000001e4, + 0x00000022,0x00000000,0x00040047,0x000001ef,0x00000021,0x00000007,0x00040047,0x000001ef, + 0x00000022,0x00000000,0x00040047,0x000001fa,0x00000021,0x0000000b,0x00040047,0x000001fa, + 0x00000022,0x00000000,0x00040047,0x00000205,0x00000021,0x00000002,0x00040047,0x00000205, + 0x00000022,0x00000000,0x00040047,0x0000020d,0x00000021,0x00000000,0x00040047,0x0000020d, + 0x00000022,0x00000000,0x00040047,0x00000219,0x00000021,0x00000001,0x00040047,0x00000219, + 0x00000022,0x00000000,0x00040047,0x000008fd,0x0000000b,0x0000001c,0x00040047,0x00000905, + 0x00000021,0x000003e8,0x00040047,0x00000905,0x00000022,0x00000000,0x00030047,0x00000908, + 0x00000019,0x00040047,0x00000908,0x00000021,0x0000000a,0x00040047,0x00000908,0x00000022, + 0x00000000,0x00040047,0x00000909,0x00000021,0x00000006,0x00040047,0x00000909,0x00000022, + 0x00000000,0x00040047,0x0000090a,0x00000021,0x00000004,0x00040047,0x0000090a,0x00000022, + 0x00000000,0x00040047,0x00000911,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00040017, + 0x0000000e,0x00000006,0x00000003,0x00040020,0x0000000f,0x00000007,0x0000000e,0x00060021, + 0x00000010,0x0000000e,0x0000000f,0x0000000f,0x00000007,0x00040021,0x00000016,0x00000006, + 0x00000007,0x00040017,0x0000001a,0x00000006,0x00000002,0x00040020,0x0000001b,0x00000007, + 0x0000001a,0x00040021,0x0000001c,0x0000001a,0x0000001b,0x00050021,0x00000020,0x00000006, + 0x00000007,0x00000007,0x00050021,0x00000025,0x0000001a,0x0000001b,0x0000001b,0x00050021, + 0x0000002a,0x0000000e,0x0000000f,0x0000000f,0x00040017,0x0000002f,0x00000006,0x00000004, + 0x00040020,0x00000030,0x00000007,0x0000002f,0x00050021,0x00000031,0x0000002f,0x00000030, + 0x00000030,0x00040015,0x00000036,0x00000020,0x00000001,0x00040020,0x00000037,0x00000007, + 0x00000036,0x00050021,0x00000038,0x00000036,0x00000037,0x00000037,0x00040017,0x00000055, + 0x00000036,0x00000002,0x00030021,0x00000056,0x00000055,0x00030021,0x0000005f,0x0000001a, + 0x00030021,0x00000064,0x00000006,0x00040020,0x0000006d,0x00000007,0x00000055,0x00040021, + 0x0000006e,0x0000000e,0x0000006d,0x00040021,0x00000072,0x0000002f,0x0000006d,0x00050021, + 0x00000076,0x00000002,0x0000006d,0x00000030,0x00040021,0x0000007d,0x00000006,0x0000001b, + 0x00040021,0x00000084,0x00000006,0x0000006d,0x00050021,0x00000088,0x00000002,0x0000006d, + 0x00000007,0x00040021,0x0000008d,0x0000001a,0x0000006d,0x00040021,0x00000093,0x0000002f, + 0x0000001b,0x0007001e,0x0000009a,0x0000000e,0x0000000e,0x0000000e,0x0000000e,0x00000006, + 0x00040020,0x0000009b,0x00000007,0x0000009a,0x00060021,0x0000009c,0x00000002,0x0000009b, + 0x0000000e,0x00000006,0x00020014,0x000000a2,0x00040020,0x000000a3,0x00000007,0x000000a2, + 0x00070021,0x000000a4,0x00000002,0x000000a3,0x0000009b,0x0000000e,0x00000006,0x00040021, + 0x000000ab,0x00000002,0x0000009b,0x00040021,0x000000af,0x0000000e,0x0000000f,0x00040021, + 0x000000bc,0x000000a2,0x0000001b,0x00060021,0x000000c0,0x00000055,0x0000006d,0x0000006d, + 0x0000006d,0x00060021,0x000000c6,0x0000001a,0x0000001b,0x0000006d,0x0000006d,0x00050021, + 0x000000cc,0x000000a2,0x0000006d,0x0000006d,0x00080021,0x000000dd,0x0000002f,0x00000030, + 0x00000030,0x00000030,0x00000030,0x00000007,0x0012001e,0x000000e5,0x0000002f,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f, + 0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x0000002f,0x00040020,0x000000e6, + 0x00000007,0x000000e5,0x00050021,0x000000e7,0x0000002f,0x000000e6,0x0000001b,0x00050021, + 0x000000f1,0x00000002,0x0000009b,0x0000000f,0x00050021,0x000000f6,0x00000006,0x0000001b, + 0x00000007,0x0011001e,0x000000fb,0x00000055,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x000000a2,0x000000a2,0x0009001e,0x000000fc,0x0000009a,0x0000000e,0x00000006,0x0000000e, + 0x00000006,0x00000006,0x00000006,0x00040020,0x000000fd,0x00000007,0x000000fc,0x00050021, + 0x000000fe,0x00000006,0x000000fb,0x000000fd,0x00050021,0x00000106,0x00000002,0x000000fb, + 0x000000fd,0x00050021,0x0000010e,0x000000e5,0x0000006d,0x0000006d,0x00050021,0x00000113, + 0x0000002f,0x0000001b,0x0000006d,0x00050021,0x00000118,0x0000001a,0x0000006d,0x0000001b, + 0x00040020,0x0000011d,0x00000007,0x000000fb,0x00040021,0x0000011e,0x00000002,0x0000011d, + 0x00050021,0x0000012e,0x00000002,0x0000011d,0x000000fd,0x00060021,0x00000137,0x00000002, + 0x0000006d,0x0000011d,0x000000fd,0x00040021,0x0000013d,0x00000002,0x0000006d,0x0004002b, + 0x00000006,0x0000014f,0x00000000,0x0004002b,0x00000006,0x00000150,0x3f800000,0x0019001e, + 0x0000018f,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055,0x00000055,0x0000002f, + 0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00040020,0x00000190,0x00000002,0x0000018f,0x0004003b,0x00000190,0x00000191,0x00000002, + 0x0004002b,0x00000036,0x00000192,0x00000000,0x00040020,0x00000193,0x00000002,0x00000055, + 0x0004002b,0x00000036,0x00000198,0x00000004,0x0004002b,0x00000036,0x0000019d,0x00000002, + 0x0004002b,0x00000036,0x000001a2,0x00000003,0x0004002b,0x00000036,0x000001a7,0x00000007, + 0x00040020,0x000001a8,0x00000002,0x0000001a,0x0004002b,0x00000036,0x000001ad,0x0000000a, + 0x0004002b,0x00000036,0x000001b2,0x0000000d,0x00040020,0x000001b3,0x00000002,0x00000006, + 0x0004002b,0x00000036,0x000001b8,0x0000000f,0x0004002b,0x00000036,0x000001bd,0x00000011, + 0x0004002b,0x00000036,0x000001c2,0x00000012,0x00090019,0x000001c7,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001c8,0x00000000, + 0x000001c7,0x0004003b,0x000001c8,0x000001c9,0x00000000,0x0004003b,0x000001c8,0x000001d0, + 0x00000000,0x00090019,0x000001d6,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000002,0x00040020,0x000001d7,0x00000000,0x000001d6,0x0004003b,0x000001d7, + 0x000001d8,0x00000000,0x0004003b,0x000001c8,0x000001dc,0x00000000,0x0002001a,0x000001e2, + 0x00040020,0x000001e3,0x00000000,0x000001e2,0x0004003b,0x000001e3,0x000001e4,0x00000000, + 0x0003001b,0x000001e6,0x000001c7,0x00040015,0x000001ea,0x00000020,0x00000000,0x0004002b, + 0x000001ea,0x000001eb,0x00000000,0x0004003b,0x000001c8,0x000001ef,0x00000000,0x00090019, + 0x000001f8,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x0000000f, + 0x00040020,0x000001f9,0x00000000,0x000001f8,0x0004003b,0x000001f9,0x000001fa,0x00000000, + 0x0004003b,0x000001c8,0x00000205,0x00000000,0x0004003b,0x000001c8,0x0000020d,0x00000000, + 0x0005002c,0x00000055,0x0000020f,0x00000192,0x00000192,0x0004003b,0x000001c8,0x00000219, + 0x00000000,0x0004002b,0x00000006,0x00000222,0x45700000,0x0004002b,0x00000006,0x00000223, + 0x45070000,0x0005002c,0x0000001a,0x00000224,0x00000222,0x00000223,0x0004002b,0x00000036, + 0x0000022f,0x00000001,0x0004002b,0x00000006,0x0000025c,0x00800000,0x0004002b,0x000001ea, + 0x00000284,0x00000001,0x0004002b,0x000001ea,0x00000288,0x00000002,0x0004002b,0x00000006, + 0x0000029e,0x3e800000,0x0004002b,0x00000006,0x000002a2,0x3f000000,0x0004002b,0x00000006, + 0x000002b2,0xbe800000,0x0004002b,0x00000006,0x000002d8,0x387fda40,0x0005002c,0x0000001a, + 0x00000329,0x000002a2,0x000002a2,0x00040017,0x0000033d,0x000001ea,0x00000002,0x00040017, + 0x00000341,0x000000a2,0x00000002,0x0004002b,0x00000006,0x0000034d,0x40490fdb,0x0004002b, + 0x00000006,0x00000354,0x3fc90fdb,0x0004002b,0x00000006,0x00000361,0x40000000,0x0004002b, + 0x00000006,0x0000036b,0x3ecccccd,0x0004002b,0x00000006,0x00000373,0x3fc80000,0x0004002b, + 0x00000006,0x00000378,0x3f100000,0x0004002b,0x00000006,0x00000380,0x40800000,0x0004002b, + 0x00000006,0x0000038b,0xbf800000,0x0004002b,0x00000006,0x00000391,0x80000000,0x0004002b, + 0x00000036,0x000003cc,0x00000005,0x0004002b,0x00000036,0x000003cd,0x00000006,0x0004002b, + 0x00000036,0x000003df,0x00000008,0x0004002b,0x00000036,0x000003e0,0x00000009,0x0004002b, + 0x00000036,0x000003e1,0x0000000b,0x0004002b,0x00000036,0x000003f3,0x0000000c,0x0004002b, + 0x00000036,0x000003f4,0x0000000e,0x0004002b,0x000001ea,0x00000412,0x00000004,0x0004001c, + 0x00000413,0x0000002f,0x00000412,0x00040020,0x00000414,0x00000007,0x00000413,0x0004002b, + 0x00000006,0x0000047f,0x3ffeb852,0x0006002c,0x0000000e,0x00000487,0x0000014f,0x0000014f, + 0x0000014f,0x0004002b,0x00000036,0x000004b3,0xfffffffe,0x0004002b,0x00000036,0x000004b4, + 0xffffffff,0x0004002b,0x000001ea,0x00000502,0x00000009,0x0004001c,0x00000503,0x0000000e, + 0x00000502,0x00040020,0x00000504,0x00000007,0x00000503,0x0004002b,0x00000006,0x00000530, + 0x3e99999a,0x0004002b,0x00000006,0x0000053d,0x40a00000,0x0004002b,0x00000006,0x000005a8, + 0xc0133333,0x0004002b,0x00000006,0x000005e0,0x3d3d70a4,0x0005002c,0x00000055,0x00000602, + 0x000004b4,0x000004b4,0x0005002c,0x00000055,0x0000060c,0x00000192,0x000004b4,0x0005002c, + 0x00000055,0x00000616,0x0000022f,0x000004b4,0x0005002c,0x00000055,0x00000620,0x0000019d, + 0x000004b4,0x0005002c,0x00000055,0x0000062a,0x000004b4,0x00000192,0x0005002c,0x00000055, + 0x0000063d,0x0000022f,0x00000192,0x0005002c,0x00000055,0x00000647,0x0000019d,0x00000192, + 0x0005002c,0x00000055,0x00000651,0x000004b4,0x0000022f,0x0005002c,0x00000055,0x0000065b, + 0x00000192,0x0000022f,0x0005002c,0x00000055,0x00000665,0x0000022f,0x0000022f,0x0005002c, + 0x00000055,0x0000066f,0x0000019d,0x0000022f,0x0005002c,0x00000055,0x00000679,0x000004b4, + 0x0000019d,0x0005002c,0x00000055,0x00000683,0x00000192,0x0000019d,0x0005002c,0x00000055, + 0x0000068d,0x0000022f,0x0000019d,0x0005002c,0x00000055,0x00000697,0x0000019d,0x0000019d, + 0x0004002b,0x000001ea,0x00000707,0x00000003,0x0004002b,0x00000006,0x0000074c,0x41a00000, + 0x0004002b,0x00000006,0x00000751,0x3f400000,0x0004002b,0x00000006,0x00000774,0x40400000, + 0x0004002b,0x00000006,0x0000077d,0x3fd9999a,0x0006002c,0x0000000e,0x0000077e,0x0000077d, + 0x00000150,0x00000150,0x0004002b,0x00000006,0x00000783,0x340018ef,0x0006002c,0x0000000e, + 0x00000784,0x00000783,0x00000783,0x00000783,0x0003002a,0x000000a2,0x000007b9,0x0004002b, + 0x00000006,0x000007fc,0x3dcccccd,0x00030029,0x000000a2,0x00000813,0x0004002b,0x00000006, + 0x0000081c,0x3e19999a,0x0004002b,0x00000006,0x0000089c,0x42c80000,0x00040017,0x000008fb, + 0x000001ea,0x00000003,0x00040020,0x000008fc,0x00000001,0x000008fb,0x0004003b,0x000008fc, + 0x000008fd,0x00000001,0x0004002b,0x00000006,0x00000903,0x477fe000,0x0004002b,0x00000006, + 0x00000904,0x37801002,0x0004003b,0x000001e3,0x00000905,0x00000000,0x00090019,0x00000906, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00040020, + 0x00000907,0x00000000,0x00000906,0x0004003b,0x00000907,0x00000908,0x00000000,0x0004003b, + 0x000001c8,0x00000909,0x00000000,0x0004003b,0x000001c8,0x0000090a,0x00000000,0x0004002b, + 0x00000006,0x0000090b,0x7f7fffff,0x0004002b,0x00000006,0x0000090c,0x3a1fe868,0x0004002b, + 0x00000006,0x0000090d,0x3d800000,0x0004002b,0x00000006,0x0000090e,0x3e400000,0x0004002b, + 0x00000006,0x0000090f,0x461c4000,0x0004002b,0x000001ea,0x00000910,0x00000008,0x0006002c, + 0x000008fb,0x00000911,0x00000910,0x00000910,0x00000284,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000006d,0x00000901,0x00000007, + 0x0004003d,0x000008fb,0x000008fe,0x000008fd,0x0007004f,0x0000033d,0x000008ff,0x000008fe, + 0x000008fe,0x00000000,0x00000001,0x0004007c,0x00000055,0x00000900,0x000008ff,0x0003003e, + 0x00000901,0x00000900,0x00050039,0x00000002,0x00000902,0x0000013f,0x00000901,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8, + 0x0000000d,0x0004003d,0x00000006,0x00000141,0x00000009,0x0004003d,0x00000006,0x00000142, + 0x0000000a,0x0004003d,0x00000006,0x00000143,0x0000000b,0x0008000c,0x00000006,0x00000144, + 0x00000001,0x0000002e,0x00000141,0x00000142,0x00000143,0x000200fe,0x00000144,0x00010038, + 0x00050036,0x0000000e,0x00000014,0x00000000,0x00000010,0x00030037,0x0000000f,0x00000011, + 0x00030037,0x0000000f,0x00000012,0x00030037,0x00000007,0x00000013,0x000200f8,0x00000015, + 0x0004003d,0x0000000e,0x00000147,0x00000011,0x0004003d,0x0000000e,0x00000148,0x00000012, + 0x0004003d,0x00000006,0x00000149,0x00000013,0x00060050,0x0000000e,0x0000014a,0x00000149, + 0x00000149,0x00000149,0x0008000c,0x0000000e,0x0000014b,0x00000001,0x0000002e,0x00000147, + 0x00000148,0x0000014a,0x000200fe,0x0000014b,0x00010038,0x00050036,0x00000006,0x00000018, + 0x00000000,0x00000016,0x00030037,0x00000007,0x00000017,0x000200f8,0x00000019,0x0004003d, + 0x00000006,0x0000014e,0x00000017,0x0008000c,0x00000006,0x00000151,0x00000001,0x0000002b, + 0x0000014e,0x0000014f,0x00000150,0x000200fe,0x00000151,0x00010038,0x00050036,0x0000001a, + 0x0000001e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x000200f8,0x0000001f, + 0x0004003d,0x0000001a,0x00000154,0x0000001d,0x0006000c,0x0000001a,0x00000155,0x00000001, + 0x0000000a,0x00000154,0x000200fe,0x00000155,0x00010038,0x00050036,0x00000006,0x00000023, + 0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x00030037,0x00000007,0x00000022, + 0x000200f8,0x00000024,0x0004003d,0x00000006,0x00000158,0x00000021,0x0004003d,0x00000006, + 0x00000159,0x00000022,0x0007000c,0x00000006,0x0000015a,0x00000001,0x00000025,0x00000158, + 0x00000159,0x000200fe,0x0000015a,0x00010038,0x00050036,0x0000001a,0x00000028,0x00000000, + 0x00000025,0x00030037,0x0000001b,0x00000026,0x00030037,0x0000001b,0x00000027,0x000200f8, + 0x00000029,0x0004003d,0x0000001a,0x0000015d,0x00000026,0x0004003d,0x0000001a,0x0000015e, + 0x00000027,0x0007000c,0x0000001a,0x0000015f,0x00000001,0x00000025,0x0000015d,0x0000015e, + 0x000200fe,0x0000015f,0x00010038,0x00050036,0x0000000e,0x0000002d,0x00000000,0x0000002a, + 0x00030037,0x0000000f,0x0000002b,0x00030037,0x0000000f,0x0000002c,0x000200f8,0x0000002e, + 0x0004003d,0x0000000e,0x00000162,0x0000002b,0x0004003d,0x0000000e,0x00000163,0x0000002c, + 0x0007000c,0x0000000e,0x00000164,0x00000001,0x00000025,0x00000162,0x00000163,0x000200fe, + 0x00000164,0x00010038,0x00050036,0x0000002f,0x00000034,0x00000000,0x00000031,0x00030037, + 0x00000030,0x00000032,0x00030037,0x00000030,0x00000033,0x000200f8,0x00000035,0x0004003d, + 0x0000002f,0x00000167,0x00000032,0x0004003d,0x0000002f,0x00000168,0x00000033,0x0007000c, + 0x0000002f,0x00000169,0x00000001,0x00000025,0x00000167,0x00000168,0x000200fe,0x00000169, + 0x00010038,0x00050036,0x00000036,0x0000003b,0x00000000,0x00000038,0x00030037,0x00000037, + 0x00000039,0x00030037,0x00000037,0x0000003a,0x000200f8,0x0000003c,0x0004003d,0x00000036, + 0x0000016c,0x00000039,0x0004003d,0x00000036,0x0000016d,0x0000003a,0x0007000c,0x00000036, + 0x0000016e,0x00000001,0x00000027,0x0000016c,0x0000016d,0x000200fe,0x0000016e,0x00010038, + 0x00050036,0x00000006,0x0000003f,0x00000000,0x00000020,0x00030037,0x00000007,0x0000003d, + 0x00030037,0x00000007,0x0000003e,0x000200f8,0x00000040,0x0004003d,0x00000006,0x00000171, + 0x0000003d,0x0004003d,0x00000006,0x00000172,0x0000003e,0x0007000c,0x00000006,0x00000173, + 0x00000001,0x00000028,0x00000171,0x00000172,0x000200fe,0x00000173,0x00010038,0x00050036, + 0x0000001a,0x00000043,0x00000000,0x00000025,0x00030037,0x0000001b,0x00000041,0x00030037, + 0x0000001b,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000001a,0x00000176,0x00000041, + 0x0004003d,0x0000001a,0x00000177,0x00000042,0x0007000c,0x0000001a,0x00000178,0x00000001, + 0x00000028,0x00000176,0x00000177,0x000200fe,0x00000178,0x00010038,0x00050036,0x0000000e, + 0x00000047,0x00000000,0x0000002a,0x00030037,0x0000000f,0x00000045,0x00030037,0x0000000f, + 0x00000046,0x000200f8,0x00000048,0x0004003d,0x0000000e,0x0000017b,0x00000045,0x0004003d, + 0x0000000e,0x0000017c,0x00000046,0x0007000c,0x0000000e,0x0000017d,0x00000001,0x00000028, + 0x0000017b,0x0000017c,0x000200fe,0x0000017d,0x00010038,0x00050036,0x0000002f,0x0000004b, + 0x00000000,0x00000031,0x00030037,0x00000030,0x00000049,0x00030037,0x00000030,0x0000004a, + 0x000200f8,0x0000004c,0x0004003d,0x0000002f,0x00000180,0x00000049,0x0004003d,0x0000002f, + 0x00000181,0x0000004a,0x0007000c,0x0000002f,0x00000182,0x00000001,0x00000028,0x00000180, + 0x00000181,0x000200fe,0x00000182,0x00010038,0x00050036,0x00000036,0x0000004f,0x00000000, + 0x00000038,0x00030037,0x00000037,0x0000004d,0x00030037,0x00000037,0x0000004e,0x000200f8, + 0x00000050,0x0004003d,0x00000036,0x00000185,0x0000004d,0x0004003d,0x00000036,0x00000186, + 0x0000004e,0x0007000c,0x00000036,0x00000187,0x00000001,0x0000002a,0x00000185,0x00000186, + 0x000200fe,0x00000187,0x00010038,0x00050036,0x00000006,0x00000053,0x00000000,0x00000020, + 0x00030037,0x00000007,0x00000051,0x00030037,0x00000007,0x00000052,0x000200f8,0x00000054, + 0x0004003d,0x00000006,0x0000018a,0x00000051,0x0004003d,0x00000006,0x0000018b,0x00000052, + 0x0007000c,0x00000006,0x0000018c,0x00000001,0x0000001a,0x0000018a,0x0000018b,0x000200fe, + 0x0000018c,0x00010038,0x00050036,0x00000055,0x00000057,0x00000000,0x00000056,0x000200f8, + 0x00000058,0x00050041,0x00000193,0x00000194,0x00000191,0x00000192,0x0004003d,0x00000055, + 0x00000195,0x00000194,0x000200fe,0x00000195,0x00010038,0x00050036,0x00000055,0x00000059, + 0x00000000,0x00000056,0x000200f8,0x0000005a,0x00050041,0x00000193,0x00000199,0x00000191, + 0x00000198,0x0004003d,0x00000055,0x0000019a,0x00000199,0x000200fe,0x0000019a,0x00010038, + 0x00050036,0x00000055,0x0000005b,0x00000000,0x00000056,0x000200f8,0x0000005c,0x00050041, + 0x00000193,0x0000019e,0x00000191,0x0000019d,0x0004003d,0x00000055,0x0000019f,0x0000019e, + 0x000200fe,0x0000019f,0x00010038,0x00050036,0x00000055,0x0000005d,0x00000000,0x00000056, + 0x000200f8,0x0000005e,0x00050041,0x00000193,0x000001a3,0x00000191,0x000001a2,0x0004003d, + 0x00000055,0x000001a4,0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036,0x0000001a, + 0x00000060,0x00000000,0x0000005f,0x000200f8,0x00000061,0x00050041,0x000001a8,0x000001a9, + 0x00000191,0x000001a7,0x0004003d,0x0000001a,0x000001aa,0x000001a9,0x000200fe,0x000001aa, + 0x00010038,0x00050036,0x0000001a,0x00000062,0x00000000,0x0000005f,0x000200f8,0x00000063, + 0x00050041,0x000001a8,0x000001ae,0x00000191,0x000001ad,0x0004003d,0x0000001a,0x000001af, + 0x000001ae,0x000200fe,0x000001af,0x00010038,0x00050036,0x00000006,0x00000065,0x00000000, + 0x00000064,0x000200f8,0x00000066,0x00050041,0x000001b3,0x000001b4,0x00000191,0x000001b2, + 0x0004003d,0x00000006,0x000001b5,0x000001b4,0x000200fe,0x000001b5,0x00010038,0x00050036, + 0x00000006,0x00000067,0x00000000,0x00000064,0x000200f8,0x00000068,0x00050041,0x000001b3, + 0x000001b9,0x00000191,0x000001b8,0x0004003d,0x00000006,0x000001ba,0x000001b9,0x000200fe, + 0x000001ba,0x00010038,0x00050036,0x00000006,0x00000069,0x00000000,0x00000064,0x000200f8, + 0x0000006a,0x00050041,0x000001b3,0x000001be,0x00000191,0x000001bd,0x0004003d,0x00000006, + 0x000001bf,0x000001be,0x000200fe,0x000001bf,0x00010038,0x00050036,0x00000006,0x0000006b, + 0x00000000,0x00000064,0x000200f8,0x0000006c,0x00050041,0x000001b3,0x000001c3,0x00000191, + 0x000001c2,0x0004003d,0x00000006,0x000001c4,0x000001c3,0x000200fe,0x000001c4,0x00010038, + 0x00050036,0x0000000e,0x00000070,0x00000000,0x0000006e,0x00030037,0x0000006d,0x0000006f, + 0x000200f8,0x00000071,0x0004003d,0x000001c7,0x000001ca,0x000001c9,0x0004003d,0x00000055, + 0x000001cb,0x0000006f,0x0007005f,0x0000002f,0x000001cc,0x000001ca,0x000001cb,0x00000002, + 0x00000192,0x0008004f,0x0000000e,0x000001cd,0x000001cc,0x000001cc,0x00000000,0x00000001, + 0x00000002,0x000200fe,0x000001cd,0x00010038,0x00050036,0x0000002f,0x00000074,0x00000000, + 0x00000072,0x00030037,0x0000006d,0x00000073,0x000200f8,0x00000075,0x0004003d,0x000001c7, + 0x000001d1,0x000001d0,0x0004003d,0x00000055,0x000001d2,0x00000073,0x0007005f,0x0000002f, + 0x000001d3,0x000001d1,0x000001d2,0x00000002,0x00000192,0x000200fe,0x000001d3,0x00010038, + 0x00050036,0x00000002,0x00000079,0x00000000,0x00000076,0x00030037,0x0000006d,0x00000077, + 0x00030037,0x00000030,0x00000078,0x000200f8,0x0000007a,0x0004003d,0x000001d6,0x000001d9, + 0x000001d8,0x0004003d,0x00000055,0x000001da,0x00000077,0x0004003d,0x0000002f,0x000001db, + 0x00000078,0x00040063,0x000001d9,0x000001da,0x000001db,0x000100fd,0x00010038,0x00050036, + 0x00000055,0x0000007b,0x00000000,0x00000056,0x000200f8,0x0000007c,0x0004003d,0x000001c7, + 0x000001dd,0x000001dc,0x00050067,0x00000055,0x000001de,0x000001dd,0x00000192,0x000200fe, + 0x000001de,0x00010038,0x00050036,0x00000006,0x0000007f,0x00000000,0x0000007d,0x00030037, + 0x0000001b,0x0000007e,0x000200f8,0x00000080,0x0004003d,0x000001c7,0x000001e1,0x000001dc, + 0x0004003d,0x000001e2,0x000001e5,0x000001e4,0x00050056,0x000001e6,0x000001e7,0x000001e1, + 0x000001e5,0x0004003d,0x0000001a,0x000001e8,0x0000007e,0x00070058,0x0000002f,0x000001e9, + 0x000001e7,0x000001e8,0x00000002,0x0000014f,0x00050051,0x00000006,0x000001ec,0x000001e9, + 0x00000000,0x000200fe,0x000001ec,0x00010038,0x00050036,0x00000006,0x00000082,0x00000000, + 0x0000007d,0x00030037,0x0000001b,0x00000081,0x000200f8,0x00000083,0x0004003d,0x000001c7, + 0x000001f0,0x000001ef,0x0004003d,0x000001e2,0x000001f1,0x000001e4,0x00050056,0x000001e6, + 0x000001f2,0x000001f0,0x000001f1,0x0004003d,0x0000001a,0x000001f3,0x00000081,0x00070058, + 0x0000002f,0x000001f4,0x000001f2,0x000001f3,0x00000002,0x0000014f,0x00050051,0x00000006, + 0x000001f5,0x000001f4,0x00000000,0x000200fe,0x000001f5,0x00010038,0x00050036,0x00000006, + 0x00000086,0x00000000,0x00000084,0x00030037,0x0000006d,0x00000085,0x000200f8,0x00000087, + 0x0004003d,0x000001f8,0x000001fb,0x000001fa,0x0004003d,0x00000055,0x000001fc,0x00000085, + 0x00050062,0x0000002f,0x000001fd,0x000001fb,0x000001fc,0x00050051,0x00000006,0x000001fe, + 0x000001fd,0x00000000,0x000200fe,0x000001fe,0x00010038,0x00050036,0x00000002,0x0000008b, + 0x00000000,0x00000088,0x00030037,0x0000006d,0x00000089,0x00030037,0x00000007,0x0000008a, + 0x000200f8,0x0000008c,0x0004003d,0x000001f8,0x00000201,0x000001fa,0x0004003d,0x00000055, + 0x00000202,0x00000089,0x0004003d,0x00000006,0x00000203,0x0000008a,0x00070050,0x0000002f, + 0x00000204,0x00000203,0x0000014f,0x0000014f,0x0000014f,0x00040063,0x00000201,0x00000202, + 0x00000204,0x000100fd,0x00010038,0x00050036,0x0000001a,0x0000008f,0x00000000,0x0000008d, + 0x00030037,0x0000006d,0x0000008e,0x000200f8,0x00000090,0x0004003d,0x000001c7,0x00000206, + 0x00000205,0x0004003d,0x00000055,0x00000207,0x0000008e,0x0007005f,0x0000002f,0x00000208, + 0x00000206,0x00000207,0x00000002,0x00000192,0x0007004f,0x0000001a,0x00000209,0x00000208, + 0x00000208,0x00000000,0x00000001,0x000200fe,0x00000209,0x00010038,0x00050036,0x00000006, + 0x00000091,0x00000000,0x00000064,0x000200f8,0x00000092,0x0004003b,0x00000007,0x0000020c, + 0x00000007,0x0004003d,0x000001c7,0x0000020e,0x0000020d,0x0007005f,0x0000002f,0x00000210, + 0x0000020e,0x0000020f,0x00000002,0x00000192,0x00050051,0x00000006,0x00000211,0x00000210, + 0x00000000,0x0003003e,0x0000020c,0x00000211,0x0004003d,0x00000006,0x00000212,0x0000020c, + 0x000500b4,0x000000a2,0x00000213,0x00000212,0x0000014f,0x000300f7,0x00000215,0x00000000, + 0x000400fa,0x00000213,0x00000214,0x00000215,0x000200f8,0x00000214,0x0003003e,0x0000020c, + 0x00000150,0x000200f9,0x00000215,0x000200f8,0x00000215,0x0004003d,0x00000006,0x00000216, + 0x0000020c,0x000200fe,0x00000216,0x00010038,0x00050036,0x0000002f,0x00000095,0x00000000, + 0x00000093,0x00030037,0x0000001b,0x00000094,0x000200f8,0x00000096,0x0004003d,0x000001c7, + 0x0000021a,0x00000219,0x0004003d,0x000001e2,0x0000021b,0x000001e4,0x00050056,0x000001e6, + 0x0000021c,0x0000021a,0x0000021b,0x0004003d,0x0000001a,0x0000021d,0x00000094,0x00070058, + 0x0000002f,0x0000021e,0x0000021c,0x0000021d,0x00000002,0x0000014f,0x000200fe,0x0000021e, + 0x00010038,0x00050036,0x00000006,0x00000098,0x00000000,0x0000007d,0x00030037,0x0000001b, + 0x00000097,0x000200f8,0x00000099,0x0004003d,0x0000001a,0x00000221,0x00000097,0x00050085, + 0x0000001a,0x00000225,0x00000221,0x00000224,0x0006000c,0x00000006,0x00000226,0x00000001, + 0x00000042,0x00000225,0x000200fe,0x00000226,0x00010038,0x00050036,0x00000002,0x000000a0, + 0x00000000,0x0000009c,0x00030037,0x0000009b,0x0000009d,0x00030037,0x0000000e,0x0000009e, + 0x00030037,0x00000006,0x0000009f,0x000200f8,0x000000a1,0x0004003b,0x0000000f,0x0000022b, + 0x00000007,0x00050041,0x0000000f,0x00000229,0x0000009d,0x0000019d,0x0003003e,0x00000229, + 0x0000009e,0x00050041,0x0000000f,0x0000022a,0x0000009d,0x000001a2,0x0003003e,0x0000022a, + 0x0000009e,0x0005008e,0x0000000e,0x0000022c,0x0000009e,0x0000009f,0x0003003e,0x0000022b, + 0x0000022c,0x0004003d,0x0000000e,0x0000022d,0x0000022b,0x00050041,0x0000000f,0x0000022e, + 0x0000009d,0x00000192,0x0003003e,0x0000022e,0x0000022d,0x0004003d,0x0000000e,0x00000230, + 0x0000022b,0x00050085,0x0000000e,0x00000231,0x0000009e,0x00000230,0x00050041,0x0000000f, + 0x00000232,0x0000009d,0x0000022f,0x0003003e,0x00000232,0x00000231,0x00050041,0x00000007, + 0x00000233,0x0000009d,0x00000198,0x0003003e,0x00000233,0x0000009f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000a9,0x00000000,0x000000a4,0x00030037,0x000000a3,0x000000a5, + 0x00030037,0x0000009b,0x000000a6,0x00030037,0x0000000e,0x000000a7,0x00030037,0x00000006, + 0x000000a8,0x000200f8,0x000000aa,0x0004003b,0x0000009b,0x00000237,0x00000007,0x0004003b, + 0x0000000f,0x0000023c,0x00000007,0x0004003b,0x0000000f,0x0000023f,0x00000007,0x0004003b, + 0x0000000f,0x00000242,0x00000007,0x0004003b,0x0000000f,0x00000245,0x00000007,0x0004003b, + 0x0000000f,0x00000248,0x00000007,0x0004003d,0x000000a2,0x00000234,0x000000a5,0x000300f7, + 0x00000236,0x00000000,0x000400fa,0x00000234,0x00000235,0x0000023b,0x000200f8,0x00000235, + 0x0004003d,0x0000009a,0x00000238,0x000000a6,0x0003003e,0x00000237,0x00000238,0x00070039, + 0x00000002,0x00000239,0x000000a0,0x00000237,0x000000a7,0x000000a8,0x0004003d,0x0000009a, + 0x0000023a,0x00000237,0x0003003e,0x000000a6,0x0000023a,0x000200f9,0x00000236,0x000200f8, + 0x0000023b,0x00050041,0x0000000f,0x0000023d,0x000000a6,0x0000019d,0x0004003d,0x0000000e, + 0x0000023e,0x0000023d,0x0003003e,0x0000023c,0x0000023e,0x0003003e,0x0000023f,0x000000a7, + 0x00060039,0x0000000e,0x00000240,0x0000002d,0x0000023c,0x0000023f,0x00050041,0x0000000f, + 0x00000241,0x000000a6,0x0000019d,0x0003003e,0x00000241,0x00000240,0x00050041,0x0000000f, + 0x00000243,0x000000a6,0x000001a2,0x0004003d,0x0000000e,0x00000244,0x00000243,0x0003003e, + 0x00000242,0x00000244,0x0003003e,0x00000245,0x000000a7,0x00060039,0x0000000e,0x00000246, + 0x00000047,0x00000242,0x00000245,0x00050041,0x0000000f,0x00000247,0x000000a6,0x000001a2, + 0x0003003e,0x00000247,0x00000246,0x0005008e,0x0000000e,0x00000249,0x000000a7,0x000000a8, + 0x0003003e,0x00000248,0x00000249,0x0004003d,0x0000000e,0x0000024a,0x00000248,0x00050041, + 0x0000000f,0x0000024b,0x000000a6,0x00000192,0x0004003d,0x0000000e,0x0000024c,0x0000024b, + 0x00050081,0x0000000e,0x0000024d,0x0000024c,0x0000024a,0x00050041,0x0000000f,0x0000024e, + 0x000000a6,0x00000192,0x0003003e,0x0000024e,0x0000024d,0x0004003d,0x0000000e,0x0000024f, + 0x00000248,0x00050085,0x0000000e,0x00000250,0x000000a7,0x0000024f,0x00050041,0x0000000f, + 0x00000251,0x000000a6,0x0000022f,0x0004003d,0x0000000e,0x00000252,0x00000251,0x00050081, + 0x0000000e,0x00000253,0x00000252,0x00000250,0x00050041,0x0000000f,0x00000254,0x000000a6, + 0x0000022f,0x0003003e,0x00000254,0x00000253,0x00050041,0x00000007,0x00000255,0x000000a6, + 0x00000198,0x0004003d,0x00000006,0x00000256,0x00000255,0x00050081,0x00000006,0x00000257, + 0x00000256,0x000000a8,0x00050041,0x00000007,0x00000258,0x000000a6,0x00000198,0x0003003e, + 0x00000258,0x00000257,0x000200f9,0x00000236,0x000200f8,0x00000236,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000ad,0x00000000,0x000000ab,0x00030037,0x0000009b,0x000000ac, + 0x000200f8,0x000000ae,0x0004003b,0x00000007,0x0000025e,0x00000007,0x0004003b,0x0000000f, + 0x00000274,0x00000007,0x00050041,0x00000007,0x00000259,0x000000ac,0x00000198,0x0004003d, + 0x00000006,0x0000025a,0x00000259,0x0006000c,0x00000006,0x0000025b,0x00000001,0x00000004, + 0x0000025a,0x000500ba,0x000000a2,0x0000025d,0x0000025b,0x0000025c,0x000300f7,0x00000260, + 0x00000000,0x000400fa,0x0000025d,0x0000025f,0x00000263,0x000200f8,0x0000025f,0x00050041, + 0x00000007,0x00000261,0x000000ac,0x00000198,0x0004003d,0x00000006,0x00000262,0x00000261, + 0x0003003e,0x0000025e,0x00000262,0x000200f9,0x00000260,0x000200f8,0x00000263,0x0003003e, + 0x0000025e,0x00000150,0x000200f9,0x00000260,0x000200f8,0x00000260,0x0004003d,0x00000006, + 0x00000264,0x0000025e,0x00050041,0x00000007,0x00000265,0x000000ac,0x00000198,0x0003003e, + 0x00000265,0x00000264,0x00050041,0x00000007,0x00000266,0x000000ac,0x00000198,0x0004003d, + 0x00000006,0x00000267,0x00000266,0x00050041,0x0000000f,0x00000268,0x000000ac,0x00000192, + 0x0004003d,0x0000000e,0x00000269,0x00000268,0x00060050,0x0000000e,0x0000026a,0x00000267, + 0x00000267,0x00000267,0x00050088,0x0000000e,0x0000026b,0x00000269,0x0000026a,0x00050041, + 0x0000000f,0x0000026c,0x000000ac,0x00000192,0x0003003e,0x0000026c,0x0000026b,0x00050041, + 0x00000007,0x0000026d,0x000000ac,0x00000198,0x0004003d,0x00000006,0x0000026e,0x0000026d, + 0x00050041,0x0000000f,0x0000026f,0x000000ac,0x0000022f,0x0004003d,0x0000000e,0x00000270, + 0x0000026f,0x00060050,0x0000000e,0x00000271,0x0000026e,0x0000026e,0x0000026e,0x00050088, + 0x0000000e,0x00000272,0x00000270,0x00000271,0x00050041,0x0000000f,0x00000273,0x000000ac, + 0x0000022f,0x0003003e,0x00000273,0x00000272,0x00050041,0x0000000f,0x00000275,0x000000ac, + 0x0000022f,0x0004003d,0x0000000e,0x00000276,0x00000275,0x00050041,0x0000000f,0x00000277, + 0x000000ac,0x00000192,0x0004003d,0x0000000e,0x00000278,0x00000277,0x00050041,0x0000000f, + 0x00000279,0x000000ac,0x00000192,0x0004003d,0x0000000e,0x0000027a,0x00000279,0x00050085, + 0x0000000e,0x0000027b,0x00000278,0x0000027a,0x00050083,0x0000000e,0x0000027c,0x00000276, + 0x0000027b,0x0006000c,0x0000000e,0x0000027d,0x00000001,0x00000004,0x0000027c,0x0006000c, + 0x0000000e,0x0000027e,0x00000001,0x0000001f,0x0000027d,0x0003003e,0x00000274,0x0000027e, + 0x0004003d,0x0000000e,0x0000027f,0x00000274,0x00050041,0x0000000f,0x00000280,0x000000ac, + 0x0000022f,0x0003003e,0x00000280,0x0000027f,0x000100fd,0x00010038,0x00050036,0x0000000e, + 0x000000b1,0x00000000,0x000000af,0x00030037,0x0000000f,0x000000b0,0x000200f8,0x000000b2, + 0x0004003b,0x0000000f,0x00000281,0x00000007,0x00050041,0x00000007,0x00000282,0x000000b0, + 0x000001eb,0x0004003d,0x00000006,0x00000283,0x00000282,0x00050041,0x00000007,0x00000285, + 0x000000b0,0x00000284,0x0004003d,0x00000006,0x00000286,0x00000285,0x00050081,0x00000006, + 0x00000287,0x00000283,0x00000286,0x00050041,0x00000007,0x00000289,0x000000b0,0x00000288, + 0x0004003d,0x00000006,0x0000028a,0x00000289,0x00050083,0x00000006,0x0000028b,0x00000287, + 0x0000028a,0x00050041,0x00000007,0x0000028c,0x000000b0,0x000001eb,0x0004003d,0x00000006, + 0x0000028d,0x0000028c,0x00050041,0x00000007,0x0000028e,0x000000b0,0x00000288,0x0004003d, + 0x00000006,0x0000028f,0x0000028e,0x00050081,0x00000006,0x00000290,0x0000028d,0x0000028f, + 0x00050041,0x00000007,0x00000291,0x000000b0,0x000001eb,0x0004003d,0x00000006,0x00000292, + 0x00000291,0x00050041,0x00000007,0x00000293,0x000000b0,0x00000284,0x0004003d,0x00000006, + 0x00000294,0x00000293,0x00050083,0x00000006,0x00000295,0x00000292,0x00000294,0x00050041, + 0x00000007,0x00000296,0x000000b0,0x00000288,0x0004003d,0x00000006,0x00000297,0x00000296, + 0x00050083,0x00000006,0x00000298,0x00000295,0x00000297,0x00060050,0x0000000e,0x00000299, + 0x0000028b,0x00000290,0x00000298,0x0003003e,0x00000281,0x00000299,0x0004003d,0x0000000e, + 0x0000029a,0x00000281,0x000200fe,0x0000029a,0x00010038,0x00050036,0x0000000e,0x000000b4, + 0x00000000,0x000000af,0x00030037,0x0000000f,0x000000b3,0x000200f8,0x000000b5,0x0004003b, + 0x0000000f,0x0000029d,0x00000007,0x00050041,0x00000007,0x0000029f,0x000000b3,0x000001eb, + 0x0004003d,0x00000006,0x000002a0,0x0000029f,0x00050085,0x00000006,0x000002a1,0x0000029e, + 0x000002a0,0x00050041,0x00000007,0x000002a3,0x000000b3,0x00000284,0x0004003d,0x00000006, + 0x000002a4,0x000002a3,0x00050085,0x00000006,0x000002a5,0x000002a2,0x000002a4,0x00050081, + 0x00000006,0x000002a6,0x000002a1,0x000002a5,0x00050041,0x00000007,0x000002a7,0x000000b3, + 0x00000288,0x0004003d,0x00000006,0x000002a8,0x000002a7,0x00050085,0x00000006,0x000002a9, + 0x0000029e,0x000002a8,0x00050081,0x00000006,0x000002aa,0x000002a6,0x000002a9,0x00050041, + 0x00000007,0x000002ab,0x000000b3,0x000001eb,0x0004003d,0x00000006,0x000002ac,0x000002ab, + 0x00050085,0x00000006,0x000002ad,0x000002a2,0x000002ac,0x00050041,0x00000007,0x000002ae, + 0x000000b3,0x00000288,0x0004003d,0x00000006,0x000002af,0x000002ae,0x00050085,0x00000006, + 0x000002b0,0x000002a2,0x000002af,0x00050083,0x00000006,0x000002b1,0x000002ad,0x000002b0, + 0x00050041,0x00000007,0x000002b3,0x000000b3,0x000001eb,0x0004003d,0x00000006,0x000002b4, + 0x000002b3,0x00050085,0x00000006,0x000002b5,0x000002b2,0x000002b4,0x00050041,0x00000007, + 0x000002b6,0x000000b3,0x00000284,0x0004003d,0x00000006,0x000002b7,0x000002b6,0x00050085, + 0x00000006,0x000002b8,0x000002a2,0x000002b7,0x00050081,0x00000006,0x000002b9,0x000002b5, + 0x000002b8,0x00050041,0x00000007,0x000002ba,0x000000b3,0x00000288,0x0004003d,0x00000006, + 0x000002bb,0x000002ba,0x00050085,0x00000006,0x000002bc,0x0000029e,0x000002bb,0x00050083, + 0x00000006,0x000002bd,0x000002b9,0x000002bc,0x00060050,0x0000000e,0x000002be,0x000002aa, + 0x000002b1,0x000002bd,0x0003003e,0x0000029d,0x000002be,0x0004003d,0x0000000e,0x000002bf, + 0x0000029d,0x000200fe,0x000002bf,0x00010038,0x00050036,0x0000000e,0x000000b7,0x00000000, + 0x000000af,0x00030037,0x0000000f,0x000000b6,0x000200f8,0x000000b8,0x0004003b,0x00000007, + 0x000002c3,0x00000007,0x0004003b,0x00000007,0x000002c4,0x00000007,0x0004003b,0x00000007, + 0x000002c8,0x00000007,0x0004003b,0x00000007,0x000002cb,0x00000007,0x0004003b,0x00000007, + 0x000002cf,0x00000007,0x0004003b,0x00000007,0x000002d0,0x00000007,0x0004003d,0x0000000e, + 0x000002c2,0x000000b6,0x0003003e,0x000002c3,0x0000014f,0x00050041,0x00000007,0x000002c5, + 0x000000b6,0x000001eb,0x0004003d,0x00000006,0x000002c6,0x000002c5,0x0003003e,0x000002c4, + 0x000002c6,0x00060039,0x00000006,0x000002c7,0x0000003f,0x000002c3,0x000002c4,0x00050041, + 0x00000007,0x000002c9,0x000000b6,0x00000284,0x0004003d,0x00000006,0x000002ca,0x000002c9, + 0x0003003e,0x000002c8,0x000002ca,0x00050041,0x00000007,0x000002cc,0x000000b6,0x00000288, + 0x0004003d,0x00000006,0x000002cd,0x000002cc,0x0003003e,0x000002cb,0x000002cd,0x00060039, + 0x00000006,0x000002ce,0x0000003f,0x000002c8,0x000002cb,0x0003003e,0x000002cf,0x000002c7, + 0x0003003e,0x000002d0,0x000002ce,0x00060039,0x00000006,0x000002d1,0x0000003f,0x000002cf, + 0x000002d0,0x00050081,0x00000006,0x000002d2,0x000002d1,0x00000150,0x00060050,0x0000000e, + 0x000002d3,0x000002d2,0x000002d2,0x000002d2,0x00050088,0x0000000e,0x000002d4,0x000002c2, + 0x000002d3,0x000200fe,0x000002d4,0x00010038,0x00050036,0x0000000e,0x000000ba,0x00000000, + 0x000000af,0x00030037,0x0000000f,0x000000b9,0x000200f8,0x000000bb,0x0004003b,0x00000007, + 0x000002d9,0x00000007,0x0004003b,0x00000007,0x000002dc,0x00000007,0x0004003b,0x00000007, + 0x000002e0,0x00000007,0x0004003b,0x00000007,0x000002e3,0x00000007,0x0004003b,0x00000007, + 0x000002e6,0x00000007,0x0004003b,0x00000007,0x000002e7,0x00000007,0x0004003d,0x0000000e, + 0x000002d7,0x000000b9,0x00050041,0x00000007,0x000002da,0x000000b9,0x00000284,0x0004003d, + 0x00000006,0x000002db,0x000002da,0x0003003e,0x000002d9,0x000002db,0x00050041,0x00000007, + 0x000002dd,0x000000b9,0x00000288,0x0004003d,0x00000006,0x000002de,0x000002dd,0x0003003e, + 0x000002dc,0x000002de,0x00060039,0x00000006,0x000002df,0x0000003f,0x000002d9,0x000002dc, + 0x00050041,0x00000007,0x000002e1,0x000000b9,0x000001eb,0x0004003d,0x00000006,0x000002e2, + 0x000002e1,0x0003003e,0x000002e0,0x000002e2,0x0003003e,0x000002e3,0x000002df,0x00060039, + 0x00000006,0x000002e4,0x0000003f,0x000002e0,0x000002e3,0x00050083,0x00000006,0x000002e5, + 0x00000150,0x000002e4,0x0003003e,0x000002e6,0x000002d8,0x0003003e,0x000002e7,0x000002e5, + 0x00060039,0x00000006,0x000002e8,0x0000003f,0x000002e6,0x000002e7,0x00060050,0x0000000e, + 0x000002e9,0x000002e8,0x000002e8,0x000002e8,0x00050088,0x0000000e,0x000002ea,0x000002d7, + 0x000002e9,0x000200fe,0x000002ea,0x00010038,0x00050036,0x000000a2,0x000000be,0x00000000, + 0x000000bc,0x00030037,0x0000001b,0x000000bd,0x000200f8,0x000000bf,0x00050041,0x00000007, + 0x000002ed,0x000000bd,0x000001eb,0x0004003d,0x00000006,0x000002ee,0x000002ed,0x000500be, + 0x000000a2,0x000002ef,0x000002ee,0x0000014f,0x000300f7,0x000002f1,0x00000000,0x000400fa, + 0x000002ef,0x000002f0,0x000002f1,0x000200f8,0x000002f0,0x00050041,0x00000007,0x000002f2, + 0x000000bd,0x000001eb,0x0004003d,0x00000006,0x000002f3,0x000002f2,0x000500bc,0x000000a2, + 0x000002f4,0x000002f3,0x00000150,0x000200f9,0x000002f1,0x000200f8,0x000002f1,0x000700f5, + 0x000000a2,0x000002f5,0x000002ef,0x000000bf,0x000002f4,0x000002f0,0x000300f7,0x000002f7, + 0x00000000,0x000400fa,0x000002f5,0x000002f6,0x000002f7,0x000200f8,0x000002f6,0x00050041, + 0x00000007,0x000002f8,0x000000bd,0x00000284,0x0004003d,0x00000006,0x000002f9,0x000002f8, + 0x000500be,0x000000a2,0x000002fa,0x000002f9,0x0000014f,0x000300f7,0x000002fc,0x00000000, + 0x000400fa,0x000002fa,0x000002fb,0x000002fc,0x000200f8,0x000002fb,0x00050041,0x00000007, + 0x000002fd,0x000000bd,0x00000284,0x0004003d,0x00000006,0x000002fe,0x000002fd,0x000500bc, + 0x000000a2,0x000002ff,0x000002fe,0x00000150,0x000200f9,0x000002fc,0x000200f8,0x000002fc, + 0x000700f5,0x000000a2,0x00000300,0x000002fa,0x000002f6,0x000002ff,0x000002fb,0x000200f9, + 0x000002f7,0x000200f8,0x000002f7,0x000700f5,0x000000a2,0x00000301,0x000002f5,0x000002f1, + 0x00000300,0x000002fc,0x000200fe,0x00000301,0x00010038,0x00050036,0x00000055,0x000000c4, + 0x00000000,0x000000c0,0x00030037,0x0000006d,0x000000c1,0x00030037,0x0000006d,0x000000c2, + 0x00030037,0x0000006d,0x000000c3,0x000200f8,0x000000c5,0x0004003b,0x0000006d,0x00000304, + 0x00000007,0x0004003b,0x00000037,0x0000030b,0x00000007,0x0004003b,0x00000037,0x0000030e, + 0x00000007,0x0004003b,0x00000037,0x00000310,0x00000007,0x0004003b,0x00000037,0x00000311, + 0x00000007,0x0004003b,0x00000037,0x00000317,0x00000007,0x0004003b,0x00000037,0x0000031a, + 0x00000007,0x0004003b,0x00000037,0x0000031c,0x00000007,0x0004003b,0x00000037,0x0000031d, + 0x00000007,0x0004003d,0x00000055,0x00000305,0x000000c1,0x0004003d,0x00000055,0x00000306, + 0x000000c2,0x00050080,0x00000055,0x00000307,0x00000305,0x00000306,0x0003003e,0x00000304, + 0x00000307,0x00050041,0x00000037,0x00000308,0x000000c3,0x000001eb,0x0004003d,0x00000036, + 0x00000309,0x00000308,0x00050082,0x00000036,0x0000030a,0x00000309,0x0000022f,0x00050041, + 0x00000037,0x0000030c,0x00000304,0x000001eb,0x0004003d,0x00000036,0x0000030d,0x0000030c, + 0x0003003e,0x0000030b,0x0000030d,0x0003003e,0x0000030e,0x0000030a,0x00060039,0x00000036, + 0x0000030f,0x0000003b,0x0000030b,0x0000030e,0x0003003e,0x00000310,0x00000192,0x0003003e, + 0x00000311,0x0000030f,0x00060039,0x00000036,0x00000312,0x0000004f,0x00000310,0x00000311, + 0x00050041,0x00000037,0x00000313,0x00000304,0x000001eb,0x0003003e,0x00000313,0x00000312, + 0x00050041,0x00000037,0x00000314,0x000000c3,0x00000284,0x0004003d,0x00000036,0x00000315, + 0x00000314,0x00050082,0x00000036,0x00000316,0x00000315,0x0000022f,0x00050041,0x00000037, + 0x00000318,0x00000304,0x00000284,0x0004003d,0x00000036,0x00000319,0x00000318,0x0003003e, + 0x00000317,0x00000319,0x0003003e,0x0000031a,0x00000316,0x00060039,0x00000036,0x0000031b, + 0x0000003b,0x00000317,0x0000031a,0x0003003e,0x0000031c,0x00000192,0x0003003e,0x0000031d, + 0x0000031b,0x00060039,0x00000036,0x0000031e,0x0000004f,0x0000031c,0x0000031d,0x00050041, + 0x00000037,0x0000031f,0x00000304,0x00000284,0x0003003e,0x0000031f,0x0000031e,0x0004003d, + 0x00000055,0x00000320,0x00000304,0x000200fe,0x00000320,0x00010038,0x00050036,0x0000001a, + 0x000000ca,0x00000000,0x000000c6,0x00030037,0x0000001b,0x000000c7,0x00030037,0x0000006d, + 0x000000c8,0x00030037,0x0000006d,0x000000c9,0x000200f8,0x000000cb,0x0004003b,0x0000001b, + 0x00000323,0x00000007,0x0004003b,0x0000001b,0x00000328,0x00000007,0x0004003b,0x0000001b, + 0x0000032d,0x00000007,0x0004003b,0x0000001b,0x0000032f,0x00000007,0x0004003b,0x0000001b, + 0x00000331,0x00000007,0x0004003b,0x0000001b,0x00000332,0x00000007,0x0004003b,0x0000001b, + 0x00000334,0x00000007,0x0004003d,0x0000001a,0x00000324,0x000000c7,0x0004003d,0x00000055, + 0x00000325,0x000000c8,0x0004006f,0x0000001a,0x00000326,0x00000325,0x00050085,0x0000001a, + 0x00000327,0x00000324,0x00000326,0x0003003e,0x00000323,0x00000327,0x0004003d,0x00000055, + 0x0000032a,0x000000c8,0x0004006f,0x0000001a,0x0000032b,0x0000032a,0x00050083,0x0000001a, + 0x0000032c,0x0000032b,0x00000329,0x0004003d,0x0000001a,0x0000032e,0x00000323,0x0003003e, + 0x0000032d,0x0000032e,0x0003003e,0x0000032f,0x0000032c,0x00060039,0x0000001a,0x00000330, + 0x00000028,0x0000032d,0x0000032f,0x0003003e,0x00000331,0x00000329,0x0003003e,0x00000332, + 0x00000330,0x00060039,0x0000001a,0x00000333,0x00000043,0x00000331,0x00000332,0x0003003e, + 0x00000328,0x00000333,0x0004003d,0x0000001a,0x00000335,0x00000328,0x0004003d,0x00000055, + 0x00000336,0x000000c9,0x0004006f,0x0000001a,0x00000337,0x00000336,0x00050088,0x0000001a, + 0x00000338,0x00000335,0x00000337,0x0003003e,0x00000334,0x00000338,0x0004003d,0x0000001a, + 0x00000339,0x00000334,0x000200fe,0x00000339,0x00010038,0x00050036,0x000000a2,0x000000cf, + 0x00000000,0x000000cc,0x00030037,0x0000006d,0x000000cd,0x00030037,0x0000006d,0x000000ce, + 0x000200f8,0x000000d0,0x0004003d,0x00000055,0x0000033c,0x000000cd,0x0004007c,0x0000033d, + 0x0000033e,0x0000033c,0x0004003d,0x00000055,0x0000033f,0x000000ce,0x0004007c,0x0000033d, + 0x00000340,0x0000033f,0x000500b0,0x00000341,0x00000342,0x0000033e,0x00000340,0x0004009b, + 0x000000a2,0x00000343,0x00000342,0x000200fe,0x00000343,0x00010038,0x00050036,0x00000006, + 0x000000d2,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d1,0x000200f8,0x000000d3, + 0x0004003b,0x00000007,0x00000349,0x00000007,0x0004003d,0x00000006,0x00000346,0x000000d1, + 0x0006000c,0x00000006,0x00000347,0x00000001,0x00000004,0x00000346,0x000500b8,0x000000a2, + 0x00000348,0x00000347,0x000002d8,0x000300f7,0x0000034b,0x00000000,0x000400fa,0x00000348, + 0x0000034a,0x0000034c,0x000200f8,0x0000034a,0x0003003e,0x00000349,0x00000150,0x000200f9, + 0x0000034b,0x000200f8,0x0000034c,0x0004003d,0x00000006,0x0000034e,0x000000d1,0x00050085, + 0x00000006,0x0000034f,0x0000034d,0x0000034e,0x0006000c,0x00000006,0x00000350,0x00000001, + 0x0000000d,0x0000034f,0x0004003d,0x00000006,0x00000351,0x000000d1,0x00050085,0x00000006, + 0x00000352,0x0000034d,0x00000351,0x00050088,0x00000006,0x00000353,0x00000350,0x00000352, + 0x0004003d,0x00000006,0x00000355,0x000000d1,0x00050085,0x00000006,0x00000356,0x00000354, + 0x00000355,0x0006000c,0x00000006,0x00000357,0x00000001,0x0000000d,0x00000356,0x0004003d, + 0x00000006,0x00000358,0x000000d1,0x00050085,0x00000006,0x00000359,0x00000354,0x00000358, + 0x00050088,0x00000006,0x0000035a,0x00000357,0x00000359,0x00050085,0x00000006,0x0000035b, + 0x00000353,0x0000035a,0x0003003e,0x00000349,0x0000035b,0x000200f9,0x0000034b,0x000200f8, + 0x0000034b,0x0004003d,0x00000006,0x0000035c,0x00000349,0x000200fe,0x0000035c,0x00010038, + 0x00050036,0x00000006,0x000000d5,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d4, + 0x000200f8,0x000000d6,0x0004003b,0x00000007,0x00000362,0x00000007,0x0004003b,0x00000007, + 0x00000363,0x00000007,0x0004003b,0x00000007,0x00000365,0x00000007,0x0004003d,0x00000006, + 0x0000035f,0x000000d4,0x0006000c,0x00000006,0x00000360,0x00000001,0x00000004,0x0000035f, + 0x0003003e,0x00000362,0x00000360,0x0003003e,0x00000363,0x00000361,0x00060039,0x00000006, + 0x00000364,0x00000023,0x00000362,0x00000363,0x0003003e,0x000000d4,0x00000364,0x0004003d, + 0x00000006,0x00000366,0x000000d4,0x0003003e,0x00000365,0x00000366,0x00050039,0x00000006, + 0x00000367,0x000000d2,0x00000365,0x000200fe,0x00000367,0x00010038,0x00050036,0x00000006, + 0x000000d8,0x00000000,0x00000016,0x00030037,0x00000007,0x000000d7,0x000200f8,0x000000d9, + 0x0004003b,0x00000007,0x0000036a,0x00000007,0x0004003b,0x00000007,0x0000036f,0x00000007, + 0x0004003d,0x00000006,0x0000036c,0x000000d7,0x00050085,0x00000006,0x0000036d,0x0000036b, + 0x0000036c,0x00050083,0x00000006,0x0000036e,0x0000036d,0x00000150,0x0003003e,0x0000036a, + 0x0000036e,0x0004003d,0x00000006,0x00000370,0x000000d7,0x00050085,0x00000006,0x00000371, + 0x0000029e,0x00000370,0x00050083,0x00000006,0x00000372,0x00000371,0x00000150,0x0003003e, + 0x0000036f,0x00000372,0x0004003d,0x00000006,0x00000374,0x0000036a,0x00050085,0x00000006, + 0x00000375,0x00000373,0x00000374,0x0004003d,0x00000006,0x00000376,0x0000036a,0x00050085, + 0x00000006,0x00000377,0x00000375,0x00000376,0x00050083,0x00000006,0x00000379,0x00000377, + 0x00000378,0x0004003d,0x00000006,0x0000037a,0x0000036f,0x0004003d,0x00000006,0x0000037b, + 0x0000036f,0x00050085,0x00000006,0x0000037c,0x0000037a,0x0000037b,0x00050085,0x00000006, + 0x0000037d,0x00000379,0x0000037c,0x000200fe,0x0000037d,0x00010038,0x00050036,0x00000006, + 0x000000db,0x00000000,0x00000016,0x00030037,0x00000007,0x000000da,0x000200f8,0x000000dc, + 0x0004003b,0x00000007,0x00000381,0x00000007,0x0004003b,0x00000007,0x00000383,0x00000007, + 0x0004003b,0x00000007,0x00000385,0x00000007,0x0004003d,0x00000006,0x00000382,0x000000da, + 0x0003003e,0x00000381,0x00000382,0x0003003e,0x00000383,0x00000380,0x00060039,0x00000006, + 0x00000384,0x00000023,0x00000381,0x00000383,0x0003003e,0x000000da,0x00000384,0x0004003d, + 0x00000006,0x00000386,0x000000da,0x0003003e,0x00000385,0x00000386,0x00050039,0x00000006, + 0x00000387,0x000000d8,0x00000385,0x000200fe,0x00000387,0x00010038,0x00050036,0x0000002f, + 0x000000e3,0x00000000,0x000000dd,0x00030037,0x00000030,0x000000de,0x00030037,0x00000030, + 0x000000df,0x00030037,0x00000030,0x000000e0,0x00030037,0x00000030,0x000000e1,0x00030037, + 0x00000007,0x000000e2,0x000200f8,0x000000e4,0x0004003b,0x00000007,0x0000038a,0x00000007, + 0x0004003b,0x00000007,0x0000038e,0x00000007,0x0004003b,0x00000007,0x00000390,0x00000007, + 0x0004003b,0x00000007,0x00000394,0x00000007,0x0004003b,0x00000007,0x00000396,0x00000007, + 0x0004003b,0x00000007,0x00000399,0x00000007,0x0004003b,0x00000007,0x0000039b,0x00000007, + 0x0004003b,0x00000007,0x0000039e,0x00000007,0x0004003d,0x00000006,0x0000038c,0x000000e2, + 0x00050083,0x00000006,0x0000038d,0x0000038b,0x0000038c,0x0003003e,0x0000038e,0x0000038d, + 0x00050039,0x00000006,0x0000038f,0x000000d5,0x0000038e,0x0003003e,0x0000038a,0x0000038f, + 0x0004003d,0x00000006,0x00000392,0x000000e2,0x00050083,0x00000006,0x00000393,0x00000391, + 0x00000392,0x0003003e,0x00000394,0x00000393,0x00050039,0x00000006,0x00000395,0x000000d5, + 0x00000394,0x0003003e,0x00000390,0x00000395,0x0004003d,0x00000006,0x00000397,0x000000e2, + 0x00050083,0x00000006,0x00000398,0x00000150,0x00000397,0x0003003e,0x00000399,0x00000398, + 0x00050039,0x00000006,0x0000039a,0x000000d5,0x00000399,0x0003003e,0x00000396,0x0000039a, + 0x0004003d,0x00000006,0x0000039c,0x000000e2,0x00050083,0x00000006,0x0000039d,0x00000361, + 0x0000039c,0x0003003e,0x0000039e,0x0000039d,0x00050039,0x00000006,0x0000039f,0x000000d5, + 0x0000039e,0x0003003e,0x0000039b,0x0000039f,0x0004003d,0x00000006,0x000003a0,0x0000038a, + 0x0004003d,0x0000002f,0x000003a1,0x000000de,0x0005008e,0x0000002f,0x000003a2,0x000003a1, + 0x000003a0,0x0004003d,0x00000006,0x000003a3,0x00000390,0x0004003d,0x0000002f,0x000003a4, + 0x000000df,0x0005008e,0x0000002f,0x000003a5,0x000003a4,0x000003a3,0x00050081,0x0000002f, + 0x000003a6,0x000003a2,0x000003a5,0x0004003d,0x00000006,0x000003a7,0x00000396,0x0004003d, + 0x0000002f,0x000003a8,0x000000e0,0x0005008e,0x0000002f,0x000003a9,0x000003a8,0x000003a7, + 0x00050081,0x0000002f,0x000003aa,0x000003a6,0x000003a9,0x0004003d,0x00000006,0x000003ab, + 0x0000039b,0x0004003d,0x0000002f,0x000003ac,0x000000e1,0x0005008e,0x0000002f,0x000003ad, + 0x000003ac,0x000003ab,0x00050081,0x0000002f,0x000003ae,0x000003aa,0x000003ad,0x0004003d, + 0x00000006,0x000003af,0x0000038a,0x0004003d,0x00000006,0x000003b0,0x00000390,0x00050081, + 0x00000006,0x000003b1,0x000003af,0x000003b0,0x0004003d,0x00000006,0x000003b2,0x00000396, + 0x00050081,0x00000006,0x000003b3,0x000003b1,0x000003b2,0x0004003d,0x00000006,0x000003b4, + 0x0000039b,0x00050081,0x00000006,0x000003b5,0x000003b3,0x000003b4,0x00070050,0x0000002f, + 0x000003b6,0x000003b5,0x000003b5,0x000003b5,0x000003b5,0x00050088,0x0000002f,0x000003b7, + 0x000003ae,0x000003b6,0x000200fe,0x000003b7,0x00010038,0x00050036,0x0000002f,0x000000ea, + 0x00000000,0x000000e7,0x00030037,0x000000e6,0x000000e8,0x00030037,0x0000001b,0x000000e9, + 0x000200f8,0x000000eb,0x0004003b,0x00000030,0x000003ba,0x00000007,0x0004003b,0x00000030, + 0x000003bb,0x00000007,0x0004003b,0x00000030,0x000003be,0x00000007,0x0004003b,0x00000030, + 0x000003c1,0x00000007,0x0004003b,0x00000030,0x000003c4,0x00000007,0x0004003b,0x00000007, + 0x000003c7,0x00000007,0x0004003b,0x00000030,0x000003cb,0x00000007,0x0004003b,0x00000030, + 0x000003ce,0x00000007,0x0004003b,0x00000030,0x000003d1,0x00000007,0x0004003b,0x00000030, + 0x000003d4,0x00000007,0x0004003b,0x00000030,0x000003d7,0x00000007,0x0004003b,0x00000007, + 0x000003da,0x00000007,0x0004003b,0x00000030,0x000003de,0x00000007,0x0004003b,0x00000030, + 0x000003e2,0x00000007,0x0004003b,0x00000030,0x000003e5,0x00000007,0x0004003b,0x00000030, + 0x000003e8,0x00000007,0x0004003b,0x00000030,0x000003eb,0x00000007,0x0004003b,0x00000007, + 0x000003ee,0x00000007,0x0004003b,0x00000030,0x000003f2,0x00000007,0x0004003b,0x00000030, + 0x000003f5,0x00000007,0x0004003b,0x00000030,0x000003f8,0x00000007,0x0004003b,0x00000030, + 0x000003fb,0x00000007,0x0004003b,0x00000030,0x000003fe,0x00000007,0x0004003b,0x00000007, + 0x00000401,0x00000007,0x0004003b,0x00000030,0x00000405,0x00000007,0x0004003b,0x00000030, + 0x00000406,0x00000007,0x0004003b,0x00000030,0x00000408,0x00000007,0x0004003b,0x00000030, + 0x0000040a,0x00000007,0x0004003b,0x00000030,0x0000040c,0x00000007,0x0004003b,0x00000007, + 0x0000040e,0x00000007,0x0004003b,0x00000414,0x00000415,0x00000007,0x0004003b,0x00000030, + 0x0000041f,0x00000007,0x0004003b,0x00000030,0x00000422,0x00000007,0x0004003b,0x00000037, + 0x00000425,0x00000007,0x0004003b,0x00000030,0x0000042e,0x00000007,0x0004003b,0x00000030, + 0x00000430,0x00000007,0x0004003b,0x00000030,0x00000435,0x00000007,0x0004003b,0x00000030, + 0x00000437,0x00000007,0x00050041,0x00000030,0x000003bc,0x000000e8,0x00000192,0x0004003d, + 0x0000002f,0x000003bd,0x000003bc,0x0003003e,0x000003bb,0x000003bd,0x00050041,0x00000030, + 0x000003bf,0x000000e8,0x0000022f,0x0004003d,0x0000002f,0x000003c0,0x000003bf,0x0003003e, + 0x000003be,0x000003c0,0x00050041,0x00000030,0x000003c2,0x000000e8,0x0000019d,0x0004003d, + 0x0000002f,0x000003c3,0x000003c2,0x0003003e,0x000003c1,0x000003c3,0x00050041,0x00000030, + 0x000003c5,0x000000e8,0x000001a2,0x0004003d,0x0000002f,0x000003c6,0x000003c5,0x0003003e, + 0x000003c4,0x000003c6,0x00050041,0x00000007,0x000003c8,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x000003c9,0x000003c8,0x0003003e,0x000003c7,0x000003c9,0x00090039,0x0000002f, + 0x000003ca,0x000000e3,0x000003bb,0x000003be,0x000003c1,0x000003c4,0x000003c7,0x0003003e, + 0x000003ba,0x000003ca,0x00050041,0x00000030,0x000003cf,0x000000e8,0x00000198,0x0004003d, + 0x0000002f,0x000003d0,0x000003cf,0x0003003e,0x000003ce,0x000003d0,0x00050041,0x00000030, + 0x000003d2,0x000000e8,0x000003cc,0x0004003d,0x0000002f,0x000003d3,0x000003d2,0x0003003e, + 0x000003d1,0x000003d3,0x00050041,0x00000030,0x000003d5,0x000000e8,0x000003cd,0x0004003d, + 0x0000002f,0x000003d6,0x000003d5,0x0003003e,0x000003d4,0x000003d6,0x00050041,0x00000030, + 0x000003d8,0x000000e8,0x000001a7,0x0004003d,0x0000002f,0x000003d9,0x000003d8,0x0003003e, + 0x000003d7,0x000003d9,0x00050041,0x00000007,0x000003db,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x000003dc,0x000003db,0x0003003e,0x000003da,0x000003dc,0x00090039,0x0000002f, + 0x000003dd,0x000000e3,0x000003ce,0x000003d1,0x000003d4,0x000003d7,0x000003da,0x0003003e, + 0x000003cb,0x000003dd,0x00050041,0x00000030,0x000003e3,0x000000e8,0x000003df,0x0004003d, + 0x0000002f,0x000003e4,0x000003e3,0x0003003e,0x000003e2,0x000003e4,0x00050041,0x00000030, + 0x000003e6,0x000000e8,0x000003e0,0x0004003d,0x0000002f,0x000003e7,0x000003e6,0x0003003e, + 0x000003e5,0x000003e7,0x00050041,0x00000030,0x000003e9,0x000000e8,0x000001ad,0x0004003d, + 0x0000002f,0x000003ea,0x000003e9,0x0003003e,0x000003e8,0x000003ea,0x00050041,0x00000030, + 0x000003ec,0x000000e8,0x000003e1,0x0004003d,0x0000002f,0x000003ed,0x000003ec,0x0003003e, + 0x000003eb,0x000003ed,0x00050041,0x00000007,0x000003ef,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x000003f0,0x000003ef,0x0003003e,0x000003ee,0x000003f0,0x00090039,0x0000002f, + 0x000003f1,0x000000e3,0x000003e2,0x000003e5,0x000003e8,0x000003eb,0x000003ee,0x0003003e, + 0x000003de,0x000003f1,0x00050041,0x00000030,0x000003f6,0x000000e8,0x000003f3,0x0004003d, + 0x0000002f,0x000003f7,0x000003f6,0x0003003e,0x000003f5,0x000003f7,0x00050041,0x00000030, + 0x000003f9,0x000000e8,0x000001b2,0x0004003d,0x0000002f,0x000003fa,0x000003f9,0x0003003e, + 0x000003f8,0x000003fa,0x00050041,0x00000030,0x000003fc,0x000000e8,0x000003f4,0x0004003d, + 0x0000002f,0x000003fd,0x000003fc,0x0003003e,0x000003fb,0x000003fd,0x00050041,0x00000030, + 0x000003ff,0x000000e8,0x000001b8,0x0004003d,0x0000002f,0x00000400,0x000003ff,0x0003003e, + 0x000003fe,0x00000400,0x00050041,0x00000007,0x00000402,0x000000e9,0x000001eb,0x0004003d, + 0x00000006,0x00000403,0x00000402,0x0003003e,0x00000401,0x00000403,0x00090039,0x0000002f, + 0x00000404,0x000000e3,0x000003f5,0x000003f8,0x000003fb,0x000003fe,0x00000401,0x0003003e, + 0x000003f2,0x00000404,0x0004003d,0x0000002f,0x00000407,0x000003ba,0x0003003e,0x00000406, + 0x00000407,0x0004003d,0x0000002f,0x00000409,0x000003cb,0x0003003e,0x00000408,0x00000409, + 0x0004003d,0x0000002f,0x0000040b,0x000003de,0x0003003e,0x0000040a,0x0000040b,0x0004003d, + 0x0000002f,0x0000040d,0x000003f2,0x0003003e,0x0000040c,0x0000040d,0x00050041,0x00000007, + 0x0000040f,0x000000e9,0x00000284,0x0004003d,0x00000006,0x00000410,0x0000040f,0x0003003e, + 0x0000040e,0x00000410,0x00090039,0x0000002f,0x00000411,0x000000e3,0x00000406,0x00000408, + 0x0000040a,0x0000040c,0x0000040e,0x0003003e,0x00000405,0x00000411,0x00050041,0x00000030, + 0x00000416,0x000000e8,0x000003cc,0x0004003d,0x0000002f,0x00000417,0x00000416,0x00050041, + 0x00000030,0x00000418,0x000000e8,0x000003cd,0x0004003d,0x0000002f,0x00000419,0x00000418, + 0x00050041,0x00000030,0x0000041a,0x000000e8,0x000003e0,0x0004003d,0x0000002f,0x0000041b, + 0x0000041a,0x00050041,0x00000030,0x0000041c,0x000000e8,0x000001ad,0x0004003d,0x0000002f, + 0x0000041d,0x0000041c,0x00070050,0x00000413,0x0000041e,0x00000417,0x00000419,0x0000041b, + 0x0000041d,0x0003003e,0x00000415,0x0000041e,0x00050041,0x00000030,0x00000420,0x00000415, + 0x00000192,0x0004003d,0x0000002f,0x00000421,0x00000420,0x0003003e,0x0000041f,0x00000421, + 0x00050041,0x00000030,0x00000423,0x00000415,0x00000192,0x0004003d,0x0000002f,0x00000424, + 0x00000423,0x0003003e,0x00000422,0x00000424,0x0003003e,0x00000425,0x0000022f,0x000200f9, + 0x00000426,0x000200f8,0x00000426,0x000400f6,0x00000428,0x00000429,0x00000000,0x000200f9, + 0x0000042a,0x000200f8,0x0000042a,0x0004003d,0x00000036,0x0000042b,0x00000425,0x000500b1, + 0x000000a2,0x0000042c,0x0000042b,0x00000198,0x000400fa,0x0000042c,0x00000427,0x00000428, + 0x000200f8,0x00000427,0x0004003d,0x00000036,0x0000042d,0x00000425,0x0004003d,0x0000002f, + 0x0000042f,0x0000041f,0x0003003e,0x0000042e,0x0000042f,0x00050041,0x00000030,0x00000431, + 0x00000415,0x0000042d,0x0004003d,0x0000002f,0x00000432,0x00000431,0x0003003e,0x00000430, + 0x00000432,0x00060039,0x0000002f,0x00000433,0x00000034,0x0000042e,0x00000430,0x0003003e, + 0x0000041f,0x00000433,0x0004003d,0x00000036,0x00000434,0x00000425,0x0004003d,0x0000002f, + 0x00000436,0x00000422,0x0003003e,0x00000435,0x00000436,0x00050041,0x00000030,0x00000438, + 0x00000415,0x00000434,0x0004003d,0x0000002f,0x00000439,0x00000438,0x0003003e,0x00000437, + 0x00000439,0x00060039,0x0000002f,0x0000043a,0x0000004b,0x00000435,0x00000437,0x0003003e, + 0x00000422,0x0000043a,0x000200f9,0x00000429,0x000200f8,0x00000429,0x0004003d,0x00000036, + 0x0000043b,0x00000425,0x00050080,0x00000036,0x0000043c,0x0000043b,0x0000022f,0x0003003e, + 0x00000425,0x0000043c,0x000200f9,0x00000426,0x000200f8,0x00000428,0x0004003d,0x0000002f, + 0x0000043d,0x00000405,0x0004003d,0x0000002f,0x0000043e,0x0000041f,0x0004003d,0x0000002f, + 0x0000043f,0x00000422,0x0008000c,0x0000002f,0x00000440,0x00000001,0x0000002b,0x0000043d, + 0x0000043e,0x0000043f,0x0003003e,0x00000405,0x00000440,0x0004003d,0x0000002f,0x00000441, + 0x00000405,0x000200fe,0x00000441,0x00010038,0x00050036,0x00000055,0x000000ef,0x00000000, + 0x000000c0,0x00030037,0x0000006d,0x000000ec,0x00030037,0x0000006d,0x000000ed,0x00030037, + 0x0000006d,0x000000ee,0x000200f8,0x000000f0,0x0004003b,0x0000006d,0x00000444,0x00000007, + 0x0004003b,0x00000037,0x0000044b,0x00000007,0x0004003b,0x00000037,0x0000044e,0x00000007, + 0x0004003b,0x00000037,0x00000450,0x00000007,0x0004003b,0x00000037,0x00000451,0x00000007, + 0x0004003b,0x00000037,0x00000457,0x00000007,0x0004003b,0x00000037,0x0000045a,0x00000007, + 0x0004003b,0x00000037,0x0000045c,0x00000007,0x0004003b,0x00000037,0x0000045d,0x00000007, + 0x0004003d,0x00000055,0x00000445,0x000000ec,0x0004003d,0x00000055,0x00000446,0x000000ed, + 0x00050080,0x00000055,0x00000447,0x00000445,0x00000446,0x0003003e,0x00000444,0x00000447, + 0x00050041,0x00000037,0x00000448,0x000000ee,0x000001eb,0x0004003d,0x00000036,0x00000449, + 0x00000448,0x00050082,0x00000036,0x0000044a,0x00000449,0x0000019d,0x00050041,0x00000037, + 0x0000044c,0x00000444,0x000001eb,0x0004003d,0x00000036,0x0000044d,0x0000044c,0x0003003e, + 0x0000044b,0x0000044d,0x0003003e,0x0000044e,0x0000044a,0x00060039,0x00000036,0x0000044f, + 0x0000003b,0x0000044b,0x0000044e,0x0003003e,0x00000450,0x0000022f,0x0003003e,0x00000451, + 0x0000044f,0x00060039,0x00000036,0x00000452,0x0000004f,0x00000450,0x00000451,0x00050041, + 0x00000037,0x00000453,0x00000444,0x000001eb,0x0003003e,0x00000453,0x00000452,0x00050041, + 0x00000037,0x00000454,0x000000ee,0x00000284,0x0004003d,0x00000036,0x00000455,0x00000454, + 0x00050082,0x00000036,0x00000456,0x00000455,0x0000019d,0x00050041,0x00000037,0x00000458, + 0x00000444,0x00000284,0x0004003d,0x00000036,0x00000459,0x00000458,0x0003003e,0x00000457, + 0x00000459,0x0003003e,0x0000045a,0x00000456,0x00060039,0x00000036,0x0000045b,0x0000003b, + 0x00000457,0x0000045a,0x0003003e,0x0000045c,0x0000022f,0x0003003e,0x0000045d,0x0000045b, + 0x00060039,0x00000036,0x0000045e,0x0000004f,0x0000045c,0x0000045d,0x00050041,0x00000037, + 0x0000045f,0x00000444,0x00000284,0x0003003e,0x0000045f,0x0000045e,0x0004003d,0x00000055, + 0x00000460,0x00000444,0x000200fe,0x00000460,0x00010038,0x00050036,0x00000002,0x000000f4, + 0x00000000,0x000000f1,0x00030037,0x0000009b,0x000000f2,0x00030037,0x0000000f,0x000000f3, + 0x000200f8,0x000000f5,0x0004003d,0x0000000e,0x00000463,0x000000f3,0x00050041,0x0000000f, + 0x00000464,0x000000f2,0x0000019d,0x0004003d,0x0000000e,0x00000465,0x00000464,0x00050041, + 0x0000000f,0x00000466,0x000000f2,0x000001a2,0x0004003d,0x0000000e,0x00000467,0x00000466, + 0x0008000c,0x0000000e,0x00000468,0x00000001,0x0000002b,0x00000463,0x00000465,0x00000467, + 0x0003003e,0x000000f3,0x00000468,0x000100fd,0x00010038,0x00050036,0x00000006,0x000000f9, + 0x00000000,0x000000f6,0x00030037,0x0000001b,0x000000f7,0x00030037,0x00000007,0x000000f8, + 0x000200f8,0x000000fa,0x0004003b,0x0000001b,0x00000469,0x00000007,0x0004003b,0x00000007, + 0x0000046e,0x00000007,0x0004003b,0x00000007,0x00000472,0x00000007,0x0004003d,0x0000001a, + 0x0000046a,0x000000f7,0x0004003d,0x00000006,0x0000046b,0x000000f8,0x00050050,0x0000001a, + 0x0000046c,0x0000046b,0x0000046b,0x00050085,0x0000001a,0x0000046d,0x0000046a,0x0000046c, + 0x0003003e,0x00000469,0x0000046d,0x0004003d,0x0000001a,0x0000046f,0x00000469,0x0004003d, + 0x0000001a,0x00000470,0x00000469,0x00050094,0x00000006,0x00000471,0x0000046f,0x00000470, + 0x0003003e,0x00000472,0x00000471,0x00050039,0x00000006,0x00000473,0x000000db,0x00000472, + 0x0003003e,0x0000046e,0x00000473,0x0004003d,0x00000006,0x00000474,0x0000046e,0x000200fe, + 0x00000474,0x00010038,0x00050036,0x00000006,0x00000101,0x00000000,0x000000fe,0x00030037, + 0x000000fb,0x000000ff,0x00030037,0x000000fd,0x00000100,0x000200f8,0x00000102,0x0004003b, + 0x00000007,0x00000477,0x00000007,0x0004003b,0x00000007,0x00000480,0x00000007,0x0004003b, + 0x00000007,0x00000481,0x00000007,0x00040039,0x0000001a,0x00000478,0x00000062,0x00050050, + 0x0000001a,0x00000479,0x00000150,0x00000150,0x00050088,0x0000001a,0x0000047a,0x00000479, + 0x00000478,0x00050050,0x0000001a,0x0000047b,0x00000150,0x00000150,0x00050083,0x0000001a, + 0x0000047c,0x0000047a,0x0000047b,0x00050051,0x00000006,0x0000047d,0x0000047c,0x00000000, + 0x00050081,0x00000006,0x0000047e,0x00000150,0x0000047d,0x0003003e,0x00000477,0x0000047e, + 0x0003003e,0x00000480,0x0000047f,0x0004003d,0x00000006,0x00000482,0x00000477,0x0003003e, + 0x00000481,0x00000482,0x00060039,0x00000006,0x00000483,0x00000023,0x00000480,0x00000481, + 0x000200fe,0x00000483,0x00010038,0x00050036,0x0000000e,0x00000104,0x00000000,0x0000006e, + 0x00030037,0x0000006d,0x00000103,0x000200f8,0x00000105,0x0004003b,0x0000000f,0x00000486, + 0x00000007,0x0004003b,0x0000006d,0x00000488,0x00000007,0x0004003b,0x0000000f,0x0000048b, + 0x00000007,0x0004003b,0x0000000f,0x0000048c,0x00000007,0x0004003b,0x0000000f,0x00000490, + 0x00000007,0x0004003b,0x0000000f,0x00000491,0x00000007,0x0004003d,0x00000055,0x00000489, + 0x00000103,0x0003003e,0x00000488,0x00000489,0x00050039,0x0000000e,0x0000048a,0x00000070, + 0x00000488,0x0003003e,0x0000048b,0x00000487,0x0003003e,0x0000048c,0x0000048a,0x00060039, + 0x0000000e,0x0000048d,0x00000047,0x0000048b,0x0000048c,0x00040039,0x00000006,0x0000048e, + 0x00000091,0x0005008e,0x0000000e,0x0000048f,0x0000048d,0x0000048e,0x0003003e,0x00000486, + 0x0000048f,0x0004003d,0x0000000e,0x00000492,0x00000486,0x0003003e,0x00000491,0x00000492, + 0x00050039,0x0000000e,0x00000493,0x000000b4,0x00000491,0x0003003e,0x00000490,0x00000493, + 0x0004003d,0x0000000e,0x00000494,0x00000490,0x000200fe,0x00000494,0x00010038,0x00050036, + 0x00000002,0x00000109,0x00000000,0x00000106,0x00030037,0x000000fb,0x00000107,0x00030037, + 0x000000fd,0x00000108,0x000200f8,0x0000010a,0x0004003b,0x0000001b,0x00000497,0x00000007, + 0x0004003b,0x0000001b,0x0000049b,0x00000007,0x0004003b,0x0000006d,0x0000049f,0x00000007, + 0x0004003b,0x0000001b,0x000004a3,0x00000007,0x0004003b,0x0000001b,0x000004a9,0x00000007, + 0x0004003b,0x0000006d,0x000004ad,0x00000007,0x0004003b,0x000000a3,0x000004be,0x00000007, + 0x0004003b,0x000000a3,0x000004c4,0x00000007,0x0004003b,0x0000001b,0x000004ca,0x00000007, + 0x0004003b,0x000000a3,0x000004cd,0x00000007,0x0004003b,0x00000037,0x000004d0,0x00000007, + 0x0004003b,0x00000037,0x000004d1,0x00000007,0x0004003b,0x00000037,0x000004d9,0x00000007, + 0x0004003b,0x0000006d,0x000004e1,0x00000007,0x0004003b,0x00000037,0x000004e3,0x00000007, + 0x0004003b,0x00000037,0x000004ec,0x00000007,0x0004003b,0x0000006d,0x000004f5,0x00000007, + 0x0004003b,0x0000006d,0x000004fb,0x00000007,0x0004003b,0x0000006d,0x000004fd,0x00000007, + 0x0004003b,0x0000006d,0x000004ff,0x00000007,0x0004003b,0x0000006d,0x00000500,0x00000007, + 0x0004003b,0x00000504,0x00000505,0x00000007,0x0004003b,0x0000006d,0x00000507,0x00000007, + 0x0004003b,0x0000000f,0x0000051d,0x00000007,0x0004003b,0x0000000f,0x00000521,0x00000007, + 0x0004003b,0x0000000f,0x00000523,0x00000007,0x0004003b,0x00000007,0x00000528,0x00000007, + 0x0004003b,0x000000fd,0x00000529,0x00000007,0x0004003b,0x00000007,0x0000052d,0x00000007, + 0x0004003b,0x00000007,0x00000532,0x00000007,0x0004003b,0x00000007,0x00000533,0x00000007, + 0x0004003b,0x00000007,0x00000535,0x00000007,0x0004003b,0x00000007,0x0000053f,0x00000007, + 0x0004003b,0x00000007,0x00000541,0x00000007,0x0004003b,0x00000007,0x00000542,0x00000007, + 0x0004003b,0x00000007,0x00000544,0x00000007,0x0004003b,0x00000007,0x00000545,0x00000007, + 0x0004003b,0x00000007,0x00000547,0x00000007,0x0004003b,0x00000007,0x00000548,0x00000007, + 0x0004003b,0x00000007,0x0000054a,0x00000007,0x0004003b,0x00000007,0x0000054c,0x00000007, + 0x0004003b,0x00000037,0x0000054f,0x00000007,0x0004003b,0x00000037,0x00000557,0x00000007, + 0x0004003b,0x0000006d,0x0000055f,0x00000007,0x0004003b,0x00000037,0x00000561,0x00000007, + 0x0004003b,0x00000037,0x0000056a,0x00000007,0x0004003b,0x0000001b,0x00000573,0x00000007, + 0x0004003b,0x0000001b,0x00000578,0x00000007,0x0004003b,0x0000006d,0x0000057c,0x00000007, + 0x0004003b,0x00000007,0x00000582,0x00000007,0x0004003b,0x0000006d,0x00000585,0x00000007, + 0x0004003b,0x0000006d,0x00000586,0x00000007,0x0004003b,0x00000007,0x0000058d,0x00000007, + 0x0004003b,0x0000001b,0x0000058f,0x00000007,0x0004003b,0x00000007,0x00000591,0x00000007, + 0x0004003b,0x00000007,0x000005a3,0x00000007,0x0004003b,0x00000007,0x000005a7,0x00000007, + 0x0004003b,0x000000a3,0x000005ae,0x00000007,0x0004003b,0x000000a3,0x000005b8,0x00000007, + 0x0004003b,0x0000009b,0x000005ba,0x00000007,0x0004003b,0x0000009b,0x000005c6,0x00000007, + 0x0004003b,0x0000009b,0x000005e5,0x00000007,0x0004003b,0x0000000f,0x000005e8,0x00000007, + 0x0004003b,0x0000000f,0x000005f1,0x00000007,0x0004003b,0x0000000f,0x000005f5,0x00000007, + 0x0004003b,0x0000000f,0x000005f7,0x00000007,0x00050051,0x00000055,0x00000498,0x00000107, + 0x00000000,0x0004006f,0x0000001a,0x00000499,0x00000498,0x00050081,0x0000001a,0x0000049a, + 0x00000499,0x00000329,0x0003003e,0x00000497,0x0000049a,0x0004003d,0x0000001a,0x0000049c, + 0x00000497,0x00040039,0x0000001a,0x0000049d,0x00000062,0x00050085,0x0000001a,0x0000049e, + 0x0000049c,0x0000049d,0x0003003e,0x0000049b,0x0000049e,0x0004003d,0x0000001a,0x000004a0, + 0x0000049b,0x0006000c,0x0000001a,0x000004a1,0x00000001,0x00000008,0x000004a0,0x0004006e, + 0x00000055,0x000004a2,0x000004a1,0x0003003e,0x0000049f,0x000004a2,0x0004003d,0x00000055, + 0x000004a4,0x0000049f,0x0004006f,0x0000001a,0x000004a5,0x000004a4,0x00050081,0x0000001a, + 0x000004a6,0x000004a5,0x00000329,0x00040039,0x0000001a,0x000004a7,0x00000060,0x00050083, + 0x0000001a,0x000004a8,0x000004a6,0x000004a7,0x0003003e,0x000004a3,0x000004a8,0x0004003d, + 0x0000001a,0x000004aa,0x000004a3,0x0004003d,0x0000001a,0x000004ab,0x0000049b,0x00050083, + 0x0000001a,0x000004ac,0x000004aa,0x000004ab,0x0003003e,0x000004a9,0x000004ac,0x00050041, + 0x00000007,0x000004ae,0x000004a3,0x000001eb,0x0004003d,0x00000006,0x000004af,0x000004ae, + 0x00050041,0x00000007,0x000004b0,0x0000049b,0x000001eb,0x0004003d,0x00000006,0x000004b1, + 0x000004b0,0x000500ba,0x000000a2,0x000004b2,0x000004af,0x000004b1,0x000600a9,0x00000036, + 0x000004b5,0x000004b2,0x000004b3,0x000004b4,0x00050041,0x00000037,0x000004b6,0x000004ad, + 0x000001eb,0x0003003e,0x000004b6,0x000004b5,0x00050041,0x00000007,0x000004b7,0x000004a3, + 0x00000284,0x0004003d,0x00000006,0x000004b8,0x000004b7,0x00050041,0x00000007,0x000004b9, + 0x0000049b,0x00000284,0x0004003d,0x00000006,0x000004ba,0x000004b9,0x000500ba,0x000000a2, + 0x000004bb,0x000004b8,0x000004ba,0x000600a9,0x00000036,0x000004bc,0x000004bb,0x000004b3, + 0x000004b4,0x00050041,0x00000037,0x000004bd,0x000004ad,0x00000284,0x0003003e,0x000004bd, + 0x000004bc,0x00050041,0x00000007,0x000004bf,0x000004a3,0x00000284,0x0004003d,0x00000006, + 0x000004c0,0x000004bf,0x00050041,0x00000007,0x000004c1,0x0000049b,0x00000284,0x0004003d, + 0x00000006,0x000004c2,0x000004c1,0x000500ba,0x000000a2,0x000004c3,0x000004c0,0x000004c2, + 0x0003003e,0x000004be,0x000004c3,0x00050041,0x00000007,0x000004c5,0x000004a3,0x000001eb, + 0x0004003d,0x00000006,0x000004c6,0x000004c5,0x00050041,0x00000007,0x000004c7,0x0000049b, + 0x000001eb,0x0004003d,0x00000006,0x000004c8,0x000004c7,0x000500ba,0x000000a2,0x000004c9, + 0x000004c6,0x000004c8,0x0003003e,0x000004c4,0x000004c9,0x0004003d,0x00000055,0x000004cb, + 0x000004ad,0x0004006f,0x0000001a,0x000004cc,0x000004cb,0x0003003e,0x000004ca,0x000004cc, + 0x00050051,0x00000006,0x000004ce,0x00000107,0x0000000a,0x000500b4,0x000000a2,0x000004cf, + 0x000004ce,0x0000014f,0x0003003e,0x000004cd,0x000004cf,0x0003003e,0x000004d0,0x00000192, + 0x0003003e,0x000004d1,0x00000192,0x000200f9,0x000004d2,0x000200f8,0x000004d2,0x000400f6, + 0x000004d4,0x000004d5,0x00000000,0x000200f9,0x000004d6,0x000200f8,0x000004d6,0x0004003d, + 0x00000036,0x000004d7,0x000004d1,0x000500b1,0x000000a2,0x000004d8,0x000004d7,0x000001a2, + 0x000400fa,0x000004d8,0x000004d3,0x000004d4,0x000200f8,0x000004d3,0x0003003e,0x000004d9, + 0x00000192,0x000200f9,0x000004da,0x000200f8,0x000004da,0x000400f6,0x000004dc,0x000004dd, + 0x00000000,0x000200f9,0x000004de,0x000200f8,0x000004de,0x0004003d,0x00000036,0x000004df, + 0x000004d9,0x000500b1,0x000000a2,0x000004e0,0x000004df,0x000001a2,0x000400fa,0x000004e0, + 0x000004db,0x000004dc,0x000200f8,0x000004db,0x0004003d,0x000000a2,0x000004e2,0x000004c4, + 0x000300f7,0x000004e5,0x00000000,0x000400fa,0x000004e2,0x000004e4,0x000004e8,0x000200f8, + 0x000004e4,0x0004003d,0x00000036,0x000004e6,0x000004d9,0x00050082,0x00000036,0x000004e7, + 0x000001a2,0x000004e6,0x0003003e,0x000004e3,0x000004e7,0x000200f9,0x000004e5,0x000200f8, + 0x000004e8,0x0004003d,0x00000036,0x000004e9,0x000004d9,0x0003003e,0x000004e3,0x000004e9, + 0x000200f9,0x000004e5,0x000200f8,0x000004e5,0x0004003d,0x00000036,0x000004ea,0x000004e3, + 0x0004003d,0x000000a2,0x000004eb,0x000004be,0x000300f7,0x000004ee,0x00000000,0x000400fa, + 0x000004eb,0x000004ed,0x000004f1,0x000200f8,0x000004ed,0x0004003d,0x00000036,0x000004ef, + 0x000004d1,0x00050082,0x00000036,0x000004f0,0x000001a2,0x000004ef,0x0003003e,0x000004ec, + 0x000004f0,0x000200f9,0x000004ee,0x000200f8,0x000004f1,0x0004003d,0x00000036,0x000004f2, + 0x000004d1,0x0003003e,0x000004ec,0x000004f2,0x000200f9,0x000004ee,0x000200f8,0x000004ee, + 0x0004003d,0x00000036,0x000004f3,0x000004ec,0x00050050,0x00000055,0x000004f4,0x000004ea, + 0x000004f3,0x0003003e,0x000004e1,0x000004f4,0x0004003d,0x00000055,0x000004f6,0x0000049f, + 0x0004003d,0x00000055,0x000004f7,0x000004ad,0x00050080,0x00000055,0x000004f8,0x000004f6, + 0x000004f7,0x0004003d,0x00000055,0x000004f9,0x000004e1,0x00050080,0x00000055,0x000004fa, + 0x000004f8,0x000004f9,0x0003003e,0x000004f5,0x000004fa,0x00040039,0x00000055,0x000004fc, + 0x00000057,0x0004003d,0x00000055,0x000004fe,0x000004f5,0x0003003e,0x000004fd,0x000004fe, + 0x0003003e,0x000004ff,0x0000020f,0x0003003e,0x00000500,0x000004fc,0x00070039,0x00000055, + 0x00000501,0x000000c4,0x000004fd,0x000004ff,0x00000500,0x0003003e,0x000004fb,0x00000501, + 0x0004003d,0x00000036,0x00000506,0x000004d0,0x0004003d,0x00000055,0x00000508,0x000004fb, + 0x0003003e,0x00000507,0x00000508,0x00050039,0x0000000e,0x00000509,0x00000104,0x00000507, + 0x00050041,0x0000000f,0x0000050a,0x00000505,0x00000506,0x0003003e,0x0000050a,0x00000509, + 0x0004003d,0x00000036,0x0000050b,0x000004d0,0x00050080,0x00000036,0x0000050c,0x0000050b, + 0x0000022f,0x0003003e,0x000004d0,0x0000050c,0x000200f9,0x000004dd,0x000200f8,0x000004dd, + 0x0004003d,0x00000036,0x0000050d,0x000004d9,0x00050080,0x00000036,0x0000050e,0x0000050d, + 0x0000022f,0x0003003e,0x000004d9,0x0000050e,0x000200f9,0x000004da,0x000200f8,0x000004dc, + 0x000200f9,0x000004d5,0x000200f8,0x000004d5,0x0004003d,0x00000036,0x0000050f,0x000004d1, + 0x00050080,0x00000036,0x00000510,0x0000050f,0x0000022f,0x0003003e,0x000004d1,0x00000510, + 0x000200f9,0x000004d2,0x000200f8,0x000004d4,0x0004003d,0x000000a2,0x00000511,0x000004cd, + 0x000300f7,0x00000513,0x00000000,0x000400fa,0x00000511,0x00000512,0x00000513,0x000200f8, + 0x00000512,0x0003003e,0x000004d0,0x00000192,0x000200f9,0x00000514,0x000200f8,0x00000514, + 0x000400f6,0x00000516,0x00000517,0x00000000,0x000200f9,0x00000518,0x000200f8,0x00000518, + 0x0004003d,0x00000036,0x00000519,0x000004d0,0x000500b1,0x000000a2,0x0000051a,0x00000519, + 0x000003e0,0x000400fa,0x0000051a,0x00000515,0x00000516,0x000200f8,0x00000515,0x0004003d, + 0x00000036,0x0000051b,0x000004d0,0x0004003d,0x00000036,0x0000051c,0x000004d0,0x00050041, + 0x0000000f,0x0000051e,0x00000505,0x0000051c,0x0004003d,0x0000000e,0x0000051f,0x0000051e, + 0x0003003e,0x0000051d,0x0000051f,0x00050039,0x0000000e,0x00000520,0x000000b1,0x0000051d, + 0x0003003e,0x00000521,0x00000520,0x00050039,0x0000000e,0x00000522,0x000000b7,0x00000521, + 0x0003003e,0x00000523,0x00000522,0x00050039,0x0000000e,0x00000524,0x000000b4,0x00000523, + 0x00050041,0x0000000f,0x00000525,0x00000505,0x0000051b,0x0003003e,0x00000525,0x00000524, + 0x000200f9,0x00000517,0x000200f8,0x00000517,0x0004003d,0x00000036,0x00000526,0x000004d0, + 0x00050080,0x00000036,0x00000527,0x00000526,0x0000022f,0x0003003e,0x000004d0,0x00000527, + 0x000200f9,0x00000514,0x000200f8,0x00000516,0x000200f9,0x00000513,0x000200f8,0x00000513, + 0x0004003d,0x000000fc,0x0000052a,0x00000108,0x0003003e,0x00000529,0x0000052a,0x00060039, + 0x00000006,0x0000052b,0x00000101,0x00000107,0x00000529,0x0004003d,0x000000fc,0x0000052c, + 0x00000529,0x0003003e,0x00000108,0x0000052c,0x0003003e,0x00000528,0x0000052b,0x0004003d, + 0x00000006,0x0000052e,0x00000528,0x00050081,0x00000006,0x0000052f,0x00000150,0x0000052e, + 0x00050085,0x00000006,0x00000531,0x0000052f,0x00000530,0x0003003e,0x00000532,0x00000150, + 0x0003003e,0x00000533,0x00000531,0x00060039,0x00000006,0x00000534,0x0000003f,0x00000532, + 0x00000533,0x0003003e,0x0000052d,0x00000534,0x00050051,0x00000006,0x00000536,0x00000107, + 0x00000007,0x00050085,0x00000006,0x00000537,0x00000536,0x000002a2,0x00050083,0x00000006, + 0x00000538,0x00000150,0x00000537,0x00050051,0x00000006,0x00000539,0x00000107,0x00000009, + 0x00050083,0x00000006,0x0000053a,0x00000150,0x00000539,0x00050041,0x00000007,0x0000053b, + 0x00000108,0x00000198,0x0004003d,0x00000006,0x0000053c,0x0000053b,0x00050085,0x00000006, + 0x0000053e,0x0000053c,0x0000053d,0x0003003e,0x0000053f,0x0000053e,0x00050039,0x00000006, + 0x00000540,0x00000018,0x0000053f,0x0003003e,0x00000541,0x0000053a,0x0003003e,0x00000542, + 0x00000540,0x00060039,0x00000006,0x00000543,0x00000023,0x00000541,0x00000542,0x0003003e, + 0x00000544,0x00000538,0x0003003e,0x00000545,0x00000543,0x00060039,0x00000006,0x00000546, + 0x00000023,0x00000544,0x00000545,0x0003003e,0x00000535,0x00000546,0x0004003d,0x00000006, + 0x00000549,0x0000052d,0x0003003e,0x00000548,0x00000549,0x0004003d,0x00000006,0x0000054b, + 0x00000528,0x0003003e,0x0000054a,0x0000054b,0x0004003d,0x00000006,0x0000054d,0x00000535, + 0x0003003e,0x0000054c,0x0000054d,0x00070039,0x00000006,0x0000054e,0x0000000c,0x00000548, + 0x0000054a,0x0000054c,0x0003003e,0x00000547,0x0000054e,0x0003003e,0x000004d0,0x00000192, + 0x0003003e,0x0000054f,0x00000192,0x000200f9,0x00000550,0x000200f8,0x00000550,0x000400f6, + 0x00000552,0x00000553,0x00000000,0x000200f9,0x00000554,0x000200f8,0x00000554,0x0004003d, + 0x00000036,0x00000555,0x0000054f,0x000500b1,0x000000a2,0x00000556,0x00000555,0x000001a2, + 0x000400fa,0x00000556,0x00000551,0x00000552,0x000200f8,0x00000551,0x0003003e,0x00000557, + 0x00000192,0x000200f9,0x00000558,0x000200f8,0x00000558,0x000400f6,0x0000055a,0x0000055b, + 0x00000000,0x000200f9,0x0000055c,0x000200f8,0x0000055c,0x0004003d,0x00000036,0x0000055d, + 0x00000557,0x000500b1,0x000000a2,0x0000055e,0x0000055d,0x000001a2,0x000400fa,0x0000055e, + 0x00000559,0x0000055a,0x000200f8,0x00000559,0x0004003d,0x000000a2,0x00000560,0x000004c4, + 0x000300f7,0x00000563,0x00000000,0x000400fa,0x00000560,0x00000562,0x00000566,0x000200f8, + 0x00000562,0x0004003d,0x00000036,0x00000564,0x00000557,0x00050082,0x00000036,0x00000565, + 0x000001a2,0x00000564,0x0003003e,0x00000561,0x00000565,0x000200f9,0x00000563,0x000200f8, + 0x00000566,0x0004003d,0x00000036,0x00000567,0x00000557,0x0003003e,0x00000561,0x00000567, + 0x000200f9,0x00000563,0x000200f8,0x00000563,0x0004003d,0x00000036,0x00000568,0x00000561, + 0x0004003d,0x000000a2,0x00000569,0x000004be,0x000300f7,0x0000056c,0x00000000,0x000400fa, + 0x00000569,0x0000056b,0x0000056f,0x000200f8,0x0000056b,0x0004003d,0x00000036,0x0000056d, + 0x0000054f,0x00050082,0x00000036,0x0000056e,0x000001a2,0x0000056d,0x0003003e,0x0000056a, + 0x0000056e,0x000200f9,0x0000056c,0x000200f8,0x0000056f,0x0004003d,0x00000036,0x00000570, + 0x0000054f,0x0003003e,0x0000056a,0x00000570,0x000200f9,0x0000056c,0x000200f8,0x0000056c, + 0x0004003d,0x00000036,0x00000571,0x0000056a,0x00050050,0x00000055,0x00000572,0x00000568, + 0x00000571,0x0003003e,0x0000055f,0x00000572,0x0004003d,0x0000001a,0x00000574,0x000004ca, + 0x0004003d,0x00000055,0x00000575,0x0000055f,0x0004006f,0x0000001a,0x00000576,0x00000575, + 0x00050081,0x0000001a,0x00000577,0x00000574,0x00000576,0x0003003e,0x00000573,0x00000577, + 0x0004003d,0x0000001a,0x00000579,0x000004a9,0x0004003d,0x0000001a,0x0000057a,0x00000573, + 0x00050081,0x0000001a,0x0000057b,0x00000579,0x0000057a,0x0003003e,0x00000578,0x0000057b, + 0x0004003d,0x00000055,0x0000057d,0x0000049f,0x0004003d,0x00000055,0x0000057e,0x000004ad, + 0x00050080,0x00000055,0x0000057f,0x0000057d,0x0000057e,0x0004003d,0x00000055,0x00000580, + 0x0000055f,0x00050080,0x00000055,0x00000581,0x0000057f,0x00000580,0x0003003e,0x0000057c, + 0x00000581,0x0004003d,0x00000055,0x00000583,0x0000057c,0x00040039,0x00000055,0x00000584, + 0x00000057,0x0003003e,0x00000585,0x00000583,0x0003003e,0x00000586,0x00000584,0x00060039, + 0x000000a2,0x00000587,0x000000cf,0x00000585,0x00000586,0x000600a9,0x00000006,0x00000588, + 0x00000587,0x00000150,0x0000014f,0x0003003e,0x00000582,0x00000588,0x0004003d,0x000000a2, + 0x00000589,0x000004cd,0x000400a8,0x000000a2,0x0000058a,0x00000589,0x000300f7,0x0000058c, + 0x00000000,0x000400fa,0x0000058a,0x0000058b,0x0000058c,0x000200f8,0x0000058b,0x0004003d, + 0x00000006,0x0000058e,0x00000582,0x0004003d,0x0000001a,0x00000590,0x00000578,0x0003003e, + 0x0000058f,0x00000590,0x0004003d,0x00000006,0x00000592,0x00000547,0x0003003e,0x00000591, + 0x00000592,0x00060039,0x00000006,0x00000593,0x000000f9,0x0000058f,0x00000591,0x00050085, + 0x00000006,0x00000594,0x0000058e,0x00000593,0x0003003e,0x0000058d,0x00000594,0x0004003d, + 0x00000036,0x00000595,0x000004d0,0x00050041,0x0000000f,0x00000596,0x00000505,0x00000595, + 0x0004003d,0x0000000e,0x00000597,0x00000596,0x0004003d,0x00000006,0x00000598,0x0000058d, + 0x0005008e,0x0000000e,0x00000599,0x00000597,0x00000598,0x00050041,0x0000000f,0x0000059a, + 0x00000108,0x0000022f,0x0004003d,0x0000000e,0x0000059b,0x0000059a,0x00050081,0x0000000e, + 0x0000059c,0x0000059b,0x00000599,0x00050041,0x0000000f,0x0000059d,0x00000108,0x0000022f, + 0x0003003e,0x0000059d,0x0000059c,0x0004003d,0x00000006,0x0000059e,0x0000058d,0x00050041, + 0x00000007,0x0000059f,0x00000108,0x0000019d,0x0004003d,0x00000006,0x000005a0,0x0000059f, + 0x00050081,0x00000006,0x000005a1,0x000005a0,0x0000059e,0x00050041,0x00000007,0x000005a2, + 0x00000108,0x0000019d,0x0003003e,0x000005a2,0x000005a1,0x000200f9,0x0000058c,0x000200f8, + 0x0000058c,0x0004003d,0x0000001a,0x000005a4,0x00000578,0x0004003d,0x0000001a,0x000005a5, + 0x00000578,0x00050094,0x00000006,0x000005a6,0x000005a4,0x000005a5,0x0003003e,0x000005a3, + 0x000005a6,0x0004003d,0x00000006,0x000005a9,0x000005a3,0x00050085,0x00000006,0x000005aa, + 0x000005a8,0x000005a9,0x0006000c,0x00000006,0x000005ab,0x00000001,0x0000001b,0x000005aa, + 0x0004003d,0x00000006,0x000005ac,0x00000582,0x00050085,0x00000006,0x000005ad,0x000005ab, + 0x000005ac,0x0003003e,0x000005a7,0x000005ad,0x0004003d,0x00000036,0x000005af,0x0000054f, + 0x000500aa,0x000000a2,0x000005b0,0x000005af,0x00000192,0x0004003d,0x00000036,0x000005b1, + 0x00000557,0x000500aa,0x000000a2,0x000005b2,0x000005b1,0x00000192,0x000500a7,0x000000a2, + 0x000005b3,0x000005b0,0x000005b2,0x0003003e,0x000005ae,0x000005b3,0x0004003d,0x00000036, + 0x000005b4,0x000004d0,0x00050041,0x0000000f,0x000005b5,0x00000505,0x000005b4,0x0004003d, + 0x0000000e,0x000005b6,0x000005b5,0x0004003d,0x00000006,0x000005b7,0x000005a7,0x0004003d, + 0x000000a2,0x000005b9,0x000005ae,0x0003003e,0x000005b8,0x000005b9,0x00050041,0x0000009b, + 0x000005bb,0x00000108,0x00000192,0x0004003d,0x0000009a,0x000005bc,0x000005bb,0x0003003e, + 0x000005ba,0x000005bc,0x00080039,0x00000002,0x000005bd,0x000000a9,0x000005b8,0x000005ba, + 0x000005b6,0x000005b7,0x0004003d,0x0000009a,0x000005be,0x000005ba,0x00050041,0x0000009b, + 0x000005bf,0x00000108,0x00000192,0x0003003e,0x000005bf,0x000005be,0x0004003d,0x00000036, + 0x000005c0,0x000004d0,0x00050080,0x00000036,0x000005c1,0x000005c0,0x0000022f,0x0003003e, + 0x000004d0,0x000005c1,0x000200f9,0x0000055b,0x000200f8,0x0000055b,0x0004003d,0x00000036, + 0x000005c2,0x00000557,0x00050080,0x00000036,0x000005c3,0x000005c2,0x0000022f,0x0003003e, + 0x00000557,0x000005c3,0x000200f9,0x00000558,0x000200f8,0x0000055a,0x000200f9,0x00000553, + 0x000200f8,0x00000553,0x0004003d,0x00000036,0x000005c4,0x0000054f,0x00050080,0x00000036, + 0x000005c5,0x000005c4,0x0000022f,0x0003003e,0x0000054f,0x000005c5,0x000200f9,0x00000550, + 0x000200f8,0x00000552,0x00050041,0x0000009b,0x000005c7,0x00000108,0x00000192,0x0004003d, + 0x0000009a,0x000005c8,0x000005c7,0x0003003e,0x000005c6,0x000005c8,0x00050039,0x00000002, + 0x000005c9,0x000000ad,0x000005c6,0x0004003d,0x0000009a,0x000005ca,0x000005c6,0x00050041, + 0x0000009b,0x000005cb,0x00000108,0x00000192,0x0003003e,0x000005cb,0x000005ca,0x00050041, + 0x00000007,0x000005cc,0x00000108,0x0000019d,0x0004003d,0x00000006,0x000005cd,0x000005cc, + 0x000500ba,0x000000a2,0x000005ce,0x000005cd,0x000002d8,0x000600a9,0x00000006,0x000005cf, + 0x000005ce,0x00000150,0x0000014f,0x00050041,0x00000007,0x000005d0,0x00000108,0x0000019d, + 0x0004003d,0x00000006,0x000005d1,0x000005d0,0x00050085,0x00000006,0x000005d2,0x000005d1, + 0x000005cf,0x00050041,0x00000007,0x000005d3,0x00000108,0x0000019d,0x0003003e,0x000005d3, + 0x000005d2,0x00050041,0x00000007,0x000005d4,0x00000108,0x0000019d,0x0004003d,0x00000006, + 0x000005d5,0x000005d4,0x000500ba,0x000000a2,0x000005d6,0x000005d5,0x000002d8,0x000300f7, + 0x000005d8,0x00000000,0x000400fa,0x000005d6,0x000005d7,0x000005d8,0x000200f8,0x000005d7, + 0x00050041,0x0000000f,0x000005d9,0x00000108,0x0000022f,0x0004003d,0x0000000e,0x000005da, + 0x000005d9,0x00050041,0x00000007,0x000005db,0x00000108,0x0000019d,0x0004003d,0x00000006, + 0x000005dc,0x000005db,0x00060050,0x0000000e,0x000005dd,0x000005dc,0x000005dc,0x000005dc, + 0x00050088,0x0000000e,0x000005de,0x000005da,0x000005dd,0x00050041,0x0000000f,0x000005df, + 0x00000108,0x0000022f,0x0003003e,0x000005df,0x000005de,0x00050041,0x00000007,0x000005e1, + 0x00000108,0x0000019d,0x0004003d,0x00000006,0x000005e2,0x000005e1,0x00050085,0x00000006, + 0x000005e3,0x000005e2,0x000005e0,0x00050041,0x00000007,0x000005e4,0x00000108,0x0000019d, + 0x0003003e,0x000005e4,0x000005e3,0x00050041,0x0000009b,0x000005e6,0x00000108,0x00000192, + 0x0004003d,0x0000009a,0x000005e7,0x000005e6,0x0003003e,0x000005e5,0x000005e7,0x00050041, + 0x0000000f,0x000005e9,0x00000108,0x0000022f,0x0004003d,0x0000000e,0x000005ea,0x000005e9, + 0x0003003e,0x000005e8,0x000005ea,0x00060039,0x00000002,0x000005eb,0x000000f4,0x000005e5, + 0x000005e8,0x0004003d,0x0000000e,0x000005ec,0x000005e8,0x00050041,0x0000000f,0x000005ed, + 0x00000108,0x0000022f,0x0003003e,0x000005ed,0x000005ec,0x000200f9,0x000005d8,0x000200f8, + 0x000005d8,0x0004003d,0x000000a2,0x000005ee,0x000004cd,0x000300f7,0x000005f0,0x00000000, + 0x000400fa,0x000005ee,0x000005ef,0x000005f0,0x000200f8,0x000005ef,0x00060041,0x0000000f, + 0x000005f2,0x00000108,0x00000192,0x00000192,0x0004003d,0x0000000e,0x000005f3,0x000005f2, + 0x0003003e,0x000005f1,0x000005f3,0x00050039,0x0000000e,0x000005f4,0x000000b1,0x000005f1, + 0x0003003e,0x000005f5,0x000005f4,0x00050039,0x0000000e,0x000005f6,0x000000ba,0x000005f5, + 0x0003003e,0x000005f7,0x000005f6,0x00050039,0x0000000e,0x000005f8,0x000000b4,0x000005f7, + 0x00050041,0x0000000f,0x000005f9,0x00000108,0x0000022f,0x0003003e,0x000005f9,0x000005f8, + 0x00050041,0x00000007,0x000005fa,0x00000108,0x0000019d,0x0003003e,0x000005fa,0x00000150, + 0x00050041,0x00000007,0x000005fb,0x00000108,0x00000198,0x0003003e,0x000005fb,0x0000014f, + 0x000200f9,0x000005f0,0x000200f8,0x000005f0,0x000100fd,0x00010038,0x00050036,0x0000002f, + 0x0000010c,0x00000000,0x00000072,0x00030037,0x0000006d,0x0000010b,0x000200f8,0x0000010d, + 0x0004003b,0x0000006d,0x000005fc,0x00000007,0x0004003d,0x00000055,0x000005fd,0x0000010b, + 0x0003003e,0x000005fc,0x000005fd,0x00050039,0x0000002f,0x000005fe,0x00000074,0x000005fc, + 0x000200fe,0x000005fe,0x00010038,0x00050036,0x000000e5,0x00000111,0x00000000,0x0000010e, + 0x00030037,0x0000006d,0x0000010f,0x00030037,0x0000006d,0x00000110,0x000200f8,0x00000112, + 0x0004003b,0x000000e6,0x00000601,0x00000007,0x0004003b,0x0000006d,0x00000603,0x00000007, + 0x0004003b,0x0000006d,0x00000605,0x00000007,0x0004003b,0x0000006d,0x00000606,0x00000007, + 0x0004003b,0x0000006d,0x00000609,0x00000007,0x0004003b,0x0000006d,0x0000060d,0x00000007, + 0x0004003b,0x0000006d,0x0000060f,0x00000007,0x0004003b,0x0000006d,0x00000610,0x00000007, + 0x0004003b,0x0000006d,0x00000613,0x00000007,0x0004003b,0x0000006d,0x00000617,0x00000007, + 0x0004003b,0x0000006d,0x00000619,0x00000007,0x0004003b,0x0000006d,0x0000061a,0x00000007, + 0x0004003b,0x0000006d,0x0000061d,0x00000007,0x0004003b,0x0000006d,0x00000621,0x00000007, + 0x0004003b,0x0000006d,0x00000623,0x00000007,0x0004003b,0x0000006d,0x00000624,0x00000007, + 0x0004003b,0x0000006d,0x00000627,0x00000007,0x0004003b,0x0000006d,0x0000062b,0x00000007, + 0x0004003b,0x0000006d,0x0000062d,0x00000007,0x0004003b,0x0000006d,0x0000062e,0x00000007, + 0x0004003b,0x0000006d,0x00000631,0x00000007,0x0004003b,0x0000006d,0x00000634,0x00000007, + 0x0004003b,0x0000006d,0x00000636,0x00000007,0x0004003b,0x0000006d,0x00000637,0x00000007, + 0x0004003b,0x0000006d,0x0000063a,0x00000007,0x0004003b,0x0000006d,0x0000063e,0x00000007, + 0x0004003b,0x0000006d,0x00000640,0x00000007,0x0004003b,0x0000006d,0x00000641,0x00000007, + 0x0004003b,0x0000006d,0x00000644,0x00000007,0x0004003b,0x0000006d,0x00000648,0x00000007, + 0x0004003b,0x0000006d,0x0000064a,0x00000007,0x0004003b,0x0000006d,0x0000064b,0x00000007, + 0x0004003b,0x0000006d,0x0000064e,0x00000007,0x0004003b,0x0000006d,0x00000652,0x00000007, + 0x0004003b,0x0000006d,0x00000654,0x00000007,0x0004003b,0x0000006d,0x00000655,0x00000007, + 0x0004003b,0x0000006d,0x00000658,0x00000007,0x0004003b,0x0000006d,0x0000065c,0x00000007, + 0x0004003b,0x0000006d,0x0000065e,0x00000007,0x0004003b,0x0000006d,0x0000065f,0x00000007, + 0x0004003b,0x0000006d,0x00000662,0x00000007,0x0004003b,0x0000006d,0x00000666,0x00000007, + 0x0004003b,0x0000006d,0x00000668,0x00000007,0x0004003b,0x0000006d,0x00000669,0x00000007, + 0x0004003b,0x0000006d,0x0000066c,0x00000007,0x0004003b,0x0000006d,0x00000670,0x00000007, + 0x0004003b,0x0000006d,0x00000672,0x00000007,0x0004003b,0x0000006d,0x00000673,0x00000007, + 0x0004003b,0x0000006d,0x00000676,0x00000007,0x0004003b,0x0000006d,0x0000067a,0x00000007, + 0x0004003b,0x0000006d,0x0000067c,0x00000007,0x0004003b,0x0000006d,0x0000067d,0x00000007, + 0x0004003b,0x0000006d,0x00000680,0x00000007,0x0004003b,0x0000006d,0x00000684,0x00000007, + 0x0004003b,0x0000006d,0x00000686,0x00000007,0x0004003b,0x0000006d,0x00000687,0x00000007, + 0x0004003b,0x0000006d,0x0000068a,0x00000007,0x0004003b,0x0000006d,0x0000068e,0x00000007, + 0x0004003b,0x0000006d,0x00000690,0x00000007,0x0004003b,0x0000006d,0x00000691,0x00000007, + 0x0004003b,0x0000006d,0x00000694,0x00000007,0x0004003b,0x0000006d,0x00000698,0x00000007, + 0x0004003b,0x0000006d,0x0000069a,0x00000007,0x0004003b,0x0000006d,0x0000069b,0x00000007, + 0x0004003b,0x0000006d,0x0000069e,0x00000007,0x0004003d,0x00000055,0x00000604,0x0000010f, + 0x0003003e,0x00000603,0x00000604,0x0003003e,0x00000605,0x00000602,0x0004003d,0x00000055, + 0x00000607,0x00000110,0x0003003e,0x00000606,0x00000607,0x00070039,0x00000055,0x00000608, + 0x000000ef,0x00000603,0x00000605,0x00000606,0x0003003e,0x00000609,0x00000608,0x00050039, + 0x0000002f,0x0000060a,0x0000010c,0x00000609,0x00050041,0x00000030,0x0000060b,0x00000601, + 0x00000192,0x0003003e,0x0000060b,0x0000060a,0x0004003d,0x00000055,0x0000060e,0x0000010f, + 0x0003003e,0x0000060d,0x0000060e,0x0003003e,0x0000060f,0x0000060c,0x0004003d,0x00000055, + 0x00000611,0x00000110,0x0003003e,0x00000610,0x00000611,0x00070039,0x00000055,0x00000612, + 0x000000ef,0x0000060d,0x0000060f,0x00000610,0x0003003e,0x00000613,0x00000612,0x00050039, + 0x0000002f,0x00000614,0x0000010c,0x00000613,0x00050041,0x00000030,0x00000615,0x00000601, + 0x0000022f,0x0003003e,0x00000615,0x00000614,0x0004003d,0x00000055,0x00000618,0x0000010f, + 0x0003003e,0x00000617,0x00000618,0x0003003e,0x00000619,0x00000616,0x0004003d,0x00000055, + 0x0000061b,0x00000110,0x0003003e,0x0000061a,0x0000061b,0x00070039,0x00000055,0x0000061c, + 0x000000ef,0x00000617,0x00000619,0x0000061a,0x0003003e,0x0000061d,0x0000061c,0x00050039, + 0x0000002f,0x0000061e,0x0000010c,0x0000061d,0x00050041,0x00000030,0x0000061f,0x00000601, + 0x0000019d,0x0003003e,0x0000061f,0x0000061e,0x0004003d,0x00000055,0x00000622,0x0000010f, + 0x0003003e,0x00000621,0x00000622,0x0003003e,0x00000623,0x00000620,0x0004003d,0x00000055, + 0x00000625,0x00000110,0x0003003e,0x00000624,0x00000625,0x00070039,0x00000055,0x00000626, + 0x000000ef,0x00000621,0x00000623,0x00000624,0x0003003e,0x00000627,0x00000626,0x00050039, + 0x0000002f,0x00000628,0x0000010c,0x00000627,0x00050041,0x00000030,0x00000629,0x00000601, + 0x000001a2,0x0003003e,0x00000629,0x00000628,0x0004003d,0x00000055,0x0000062c,0x0000010f, + 0x0003003e,0x0000062b,0x0000062c,0x0003003e,0x0000062d,0x0000062a,0x0004003d,0x00000055, + 0x0000062f,0x00000110,0x0003003e,0x0000062e,0x0000062f,0x00070039,0x00000055,0x00000630, + 0x000000ef,0x0000062b,0x0000062d,0x0000062e,0x0003003e,0x00000631,0x00000630,0x00050039, + 0x0000002f,0x00000632,0x0000010c,0x00000631,0x00050041,0x00000030,0x00000633,0x00000601, + 0x00000198,0x0003003e,0x00000633,0x00000632,0x0004003d,0x00000055,0x00000635,0x0000010f, + 0x0003003e,0x00000634,0x00000635,0x0003003e,0x00000636,0x0000020f,0x0004003d,0x00000055, + 0x00000638,0x00000110,0x0003003e,0x00000637,0x00000638,0x00070039,0x00000055,0x00000639, + 0x000000ef,0x00000634,0x00000636,0x00000637,0x0003003e,0x0000063a,0x00000639,0x00050039, + 0x0000002f,0x0000063b,0x0000010c,0x0000063a,0x00050041,0x00000030,0x0000063c,0x00000601, + 0x000003cc,0x0003003e,0x0000063c,0x0000063b,0x0004003d,0x00000055,0x0000063f,0x0000010f, + 0x0003003e,0x0000063e,0x0000063f,0x0003003e,0x00000640,0x0000063d,0x0004003d,0x00000055, + 0x00000642,0x00000110,0x0003003e,0x00000641,0x00000642,0x00070039,0x00000055,0x00000643, + 0x000000ef,0x0000063e,0x00000640,0x00000641,0x0003003e,0x00000644,0x00000643,0x00050039, + 0x0000002f,0x00000645,0x0000010c,0x00000644,0x00050041,0x00000030,0x00000646,0x00000601, + 0x000003cd,0x0003003e,0x00000646,0x00000645,0x0004003d,0x00000055,0x00000649,0x0000010f, + 0x0003003e,0x00000648,0x00000649,0x0003003e,0x0000064a,0x00000647,0x0004003d,0x00000055, + 0x0000064c,0x00000110,0x0003003e,0x0000064b,0x0000064c,0x00070039,0x00000055,0x0000064d, + 0x000000ef,0x00000648,0x0000064a,0x0000064b,0x0003003e,0x0000064e,0x0000064d,0x00050039, + 0x0000002f,0x0000064f,0x0000010c,0x0000064e,0x00050041,0x00000030,0x00000650,0x00000601, + 0x000001a7,0x0003003e,0x00000650,0x0000064f,0x0004003d,0x00000055,0x00000653,0x0000010f, + 0x0003003e,0x00000652,0x00000653,0x0003003e,0x00000654,0x00000651,0x0004003d,0x00000055, + 0x00000656,0x00000110,0x0003003e,0x00000655,0x00000656,0x00070039,0x00000055,0x00000657, + 0x000000ef,0x00000652,0x00000654,0x00000655,0x0003003e,0x00000658,0x00000657,0x00050039, + 0x0000002f,0x00000659,0x0000010c,0x00000658,0x00050041,0x00000030,0x0000065a,0x00000601, + 0x000003df,0x0003003e,0x0000065a,0x00000659,0x0004003d,0x00000055,0x0000065d,0x0000010f, + 0x0003003e,0x0000065c,0x0000065d,0x0003003e,0x0000065e,0x0000065b,0x0004003d,0x00000055, + 0x00000660,0x00000110,0x0003003e,0x0000065f,0x00000660,0x00070039,0x00000055,0x00000661, + 0x000000ef,0x0000065c,0x0000065e,0x0000065f,0x0003003e,0x00000662,0x00000661,0x00050039, + 0x0000002f,0x00000663,0x0000010c,0x00000662,0x00050041,0x00000030,0x00000664,0x00000601, + 0x000003e0,0x0003003e,0x00000664,0x00000663,0x0004003d,0x00000055,0x00000667,0x0000010f, + 0x0003003e,0x00000666,0x00000667,0x0003003e,0x00000668,0x00000665,0x0004003d,0x00000055, + 0x0000066a,0x00000110,0x0003003e,0x00000669,0x0000066a,0x00070039,0x00000055,0x0000066b, + 0x000000ef,0x00000666,0x00000668,0x00000669,0x0003003e,0x0000066c,0x0000066b,0x00050039, + 0x0000002f,0x0000066d,0x0000010c,0x0000066c,0x00050041,0x00000030,0x0000066e,0x00000601, + 0x000001ad,0x0003003e,0x0000066e,0x0000066d,0x0004003d,0x00000055,0x00000671,0x0000010f, + 0x0003003e,0x00000670,0x00000671,0x0003003e,0x00000672,0x0000066f,0x0004003d,0x00000055, + 0x00000674,0x00000110,0x0003003e,0x00000673,0x00000674,0x00070039,0x00000055,0x00000675, + 0x000000ef,0x00000670,0x00000672,0x00000673,0x0003003e,0x00000676,0x00000675,0x00050039, + 0x0000002f,0x00000677,0x0000010c,0x00000676,0x00050041,0x00000030,0x00000678,0x00000601, + 0x000003e1,0x0003003e,0x00000678,0x00000677,0x0004003d,0x00000055,0x0000067b,0x0000010f, + 0x0003003e,0x0000067a,0x0000067b,0x0003003e,0x0000067c,0x00000679,0x0004003d,0x00000055, + 0x0000067e,0x00000110,0x0003003e,0x0000067d,0x0000067e,0x00070039,0x00000055,0x0000067f, + 0x000000ef,0x0000067a,0x0000067c,0x0000067d,0x0003003e,0x00000680,0x0000067f,0x00050039, + 0x0000002f,0x00000681,0x0000010c,0x00000680,0x00050041,0x00000030,0x00000682,0x00000601, + 0x000003f3,0x0003003e,0x00000682,0x00000681,0x0004003d,0x00000055,0x00000685,0x0000010f, + 0x0003003e,0x00000684,0x00000685,0x0003003e,0x00000686,0x00000683,0x0004003d,0x00000055, + 0x00000688,0x00000110,0x0003003e,0x00000687,0x00000688,0x00070039,0x00000055,0x00000689, + 0x000000ef,0x00000684,0x00000686,0x00000687,0x0003003e,0x0000068a,0x00000689,0x00050039, + 0x0000002f,0x0000068b,0x0000010c,0x0000068a,0x00050041,0x00000030,0x0000068c,0x00000601, + 0x000001b2,0x0003003e,0x0000068c,0x0000068b,0x0004003d,0x00000055,0x0000068f,0x0000010f, + 0x0003003e,0x0000068e,0x0000068f,0x0003003e,0x00000690,0x0000068d,0x0004003d,0x00000055, + 0x00000692,0x00000110,0x0003003e,0x00000691,0x00000692,0x00070039,0x00000055,0x00000693, + 0x000000ef,0x0000068e,0x00000690,0x00000691,0x0003003e,0x00000694,0x00000693,0x00050039, + 0x0000002f,0x00000695,0x0000010c,0x00000694,0x00050041,0x00000030,0x00000696,0x00000601, + 0x000003f4,0x0003003e,0x00000696,0x00000695,0x0004003d,0x00000055,0x00000699,0x0000010f, + 0x0003003e,0x00000698,0x00000699,0x0003003e,0x0000069a,0x00000697,0x0004003d,0x00000055, + 0x0000069c,0x00000110,0x0003003e,0x0000069b,0x0000069c,0x00070039,0x00000055,0x0000069d, + 0x000000ef,0x00000698,0x0000069a,0x0000069b,0x0003003e,0x0000069e,0x0000069d,0x00050039, + 0x0000002f,0x0000069f,0x0000010c,0x0000069e,0x00050041,0x00000030,0x000006a0,0x00000601, + 0x000001b8,0x0003003e,0x000006a0,0x0000069f,0x0004003d,0x000000e5,0x000006a1,0x00000601, + 0x000200fe,0x000006a1,0x00010038,0x00050036,0x0000002f,0x00000116,0x00000000,0x00000113, + 0x00030037,0x0000001b,0x00000114,0x00030037,0x0000006d,0x00000115,0x000200f8,0x00000117, + 0x0004003b,0x0000001b,0x000006a4,0x00000007,0x0004003b,0x0000001b,0x000006aa,0x00000007, + 0x0004003b,0x0000001b,0x000006ab,0x00000007,0x0004003b,0x00000007,0x000006b2,0x00000007, + 0x0004003b,0x00000007,0x000006b3,0x00000007,0x0004003b,0x00000007,0x000006b7,0x00000007, + 0x0004003b,0x00000007,0x000006b8,0x00000007,0x0004003b,0x00000007,0x000006bf,0x00000007, + 0x0004003b,0x00000007,0x000006c0,0x00000007,0x0004003b,0x00000007,0x000006c4,0x00000007, + 0x0004003b,0x00000007,0x000006c5,0x00000007,0x0004003b,0x0000006d,0x000006c8,0x00000007, + 0x0004003b,0x00000030,0x000006cc,0x00000007,0x0004003b,0x0000006d,0x000006cd,0x00000007, + 0x0004003b,0x0000006d,0x000006cf,0x00000007,0x0004003b,0x000000e6,0x000006d2,0x00000007, + 0x0004003b,0x0000001b,0x000006d3,0x00000007,0x0004003d,0x0000001a,0x000006a5,0x00000114, + 0x0004003d,0x00000055,0x000006a6,0x00000115,0x0004006f,0x0000001a,0x000006a7,0x000006a6, + 0x00050085,0x0000001a,0x000006a8,0x000006a5,0x000006a7,0x00050083,0x0000001a,0x000006a9, + 0x000006a8,0x00000329,0x0003003e,0x000006a4,0x000006a9,0x0004003d,0x0000001a,0x000006ac, + 0x000006a4,0x0003003e,0x000006ab,0x000006ac,0x00050039,0x0000001a,0x000006ad,0x0000001e, + 0x000006ab,0x0003003e,0x000006aa,0x000006ad,0x00050041,0x00000037,0x000006ae,0x00000115, + 0x000001eb,0x0004003d,0x00000036,0x000006af,0x000006ae,0x00050082,0x00000036,0x000006b0, + 0x000006af,0x0000022f,0x0004006f,0x00000006,0x000006b1,0x000006b0,0x0003003e,0x000006b2, + 0x000006b1,0x00050041,0x00000007,0x000006b4,0x000006a4,0x000001eb,0x0004003d,0x00000006, + 0x000006b5,0x000006b4,0x0003003e,0x000006b3,0x000006b5,0x00060039,0x00000006,0x000006b6, + 0x00000023,0x000006b2,0x000006b3,0x0003003e,0x000006b7,0x0000014f,0x0003003e,0x000006b8, + 0x000006b6,0x00060039,0x00000006,0x000006b9,0x0000003f,0x000006b7,0x000006b8,0x00050041, + 0x00000007,0x000006ba,0x000006a4,0x000001eb,0x0003003e,0x000006ba,0x000006b9,0x00050041, + 0x00000037,0x000006bb,0x00000115,0x00000284,0x0004003d,0x00000036,0x000006bc,0x000006bb, + 0x00050082,0x00000036,0x000006bd,0x000006bc,0x0000022f,0x0004006f,0x00000006,0x000006be, + 0x000006bd,0x0003003e,0x000006bf,0x000006be,0x00050041,0x00000007,0x000006c1,0x000006a4, + 0x00000284,0x0004003d,0x00000006,0x000006c2,0x000006c1,0x0003003e,0x000006c0,0x000006c2, + 0x00060039,0x00000006,0x000006c3,0x00000023,0x000006bf,0x000006c0,0x0003003e,0x000006c4, + 0x0000014f,0x0003003e,0x000006c5,0x000006c3,0x00060039,0x00000006,0x000006c6,0x0000003f, + 0x000006c4,0x000006c5,0x00050041,0x00000007,0x000006c7,0x000006a4,0x00000284,0x0003003e, + 0x000006c7,0x000006c6,0x0004003d,0x0000001a,0x000006c9,0x000006a4,0x0006000c,0x0000001a, + 0x000006ca,0x00000001,0x00000008,0x000006c9,0x0004006e,0x00000055,0x000006cb,0x000006ca, + 0x0003003e,0x000006c8,0x000006cb,0x0004003d,0x00000055,0x000006ce,0x000006c8,0x0003003e, + 0x000006cd,0x000006ce,0x0004003d,0x00000055,0x000006d0,0x00000115,0x0003003e,0x000006cf, + 0x000006d0,0x00060039,0x000000e5,0x000006d1,0x00000111,0x000006cd,0x000006cf,0x0003003e, + 0x000006d2,0x000006d1,0x0004003d,0x0000001a,0x000006d4,0x000006aa,0x0003003e,0x000006d3, + 0x000006d4,0x00060039,0x0000002f,0x000006d5,0x000000ea,0x000006d2,0x000006d3,0x0003003e, + 0x000006cc,0x000006d5,0x0004003d,0x0000002f,0x000006d6,0x000006cc,0x000200fe,0x000006d6, + 0x00010038,0x00050036,0x0000001a,0x0000011b,0x00000000,0x00000118,0x00030037,0x0000006d, + 0x00000119,0x00030037,0x0000001b,0x0000011a,0x000200f8,0x0000011c,0x0004003b,0x0000001b, + 0x000006d9,0x00000007,0x0004003b,0x0000006d,0x000006df,0x00000007,0x0004003d,0x0000001a, + 0x000006da,0x0000011a,0x00040039,0x00000055,0x000006db,0x00000057,0x0004006f,0x0000001a, + 0x000006dc,0x000006db,0x00050085,0x0000001a,0x000006dd,0x000006da,0x000006dc,0x0004006e, + 0x00000055,0x000006de,0x000006dd,0x0003003e,0x000006df,0x000006de,0x00050039,0x0000001a, + 0x000006e0,0x0000008f,0x000006df,0x0003003e,0x000006d9,0x000006e0,0x0004003d,0x0000001a, + 0x000006e1,0x000006d9,0x000200fe,0x000006e1,0x00010038,0x00050036,0x00000002,0x00000120, + 0x00000000,0x0000011e,0x00030037,0x0000011d,0x0000011f,0x000200f8,0x00000121,0x0004003b, + 0x0000001b,0x000006ea,0x00000007,0x00050041,0x0000001b,0x000006e4,0x0000011f,0x0000022f, + 0x0004003d,0x0000001a,0x000006e5,0x000006e4,0x00050041,0x0000001b,0x000006e6,0x0000011f, + 0x00000198,0x0004003d,0x0000001a,0x000006e7,0x000006e6,0x00050081,0x0000001a,0x000006e8, + 0x000006e5,0x000006e7,0x00050041,0x0000001b,0x000006e9,0x0000011f,0x000003cc,0x0003003e, + 0x000006e9,0x000006e8,0x00050041,0x0000001b,0x000006eb,0x0000011f,0x000003cc,0x0004003d, + 0x0000001a,0x000006ec,0x000006eb,0x0003003e,0x000006ea,0x000006ec,0x00050039,0x000000a2, + 0x000006ed,0x000000be,0x000006ea,0x00050041,0x000000a3,0x000006ee,0x0000011f,0x000001b2, + 0x0003003e,0x000006ee,0x000006ed,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000124, + 0x00000000,0x00000106,0x00030037,0x000000fb,0x00000122,0x00030037,0x000000fd,0x00000123, + 0x000200f8,0x00000125,0x0004003b,0x00000030,0x000006ef,0x00000007,0x0004003b,0x0000001b, + 0x000006f1,0x00000007,0x0004003b,0x0000006d,0x000006f3,0x00000007,0x0004003b,0x0000000f, + 0x00000702,0x00000007,0x00040039,0x00000055,0x000006f0,0x0000005d,0x00050051,0x0000001a, + 0x000006f2,0x00000122,0x00000005,0x0003003e,0x000006f1,0x000006f2,0x0003003e,0x000006f3, + 0x000006f0,0x00060039,0x0000002f,0x000006f4,0x00000116,0x000006f1,0x000006f3,0x0003003e, + 0x000006ef,0x000006f4,0x0004003d,0x0000002f,0x000006f5,0x000006ef,0x0008004f,0x0000000e, + 0x000006f6,0x000006f5,0x000006f5,0x00000000,0x00000001,0x00000002,0x00050041,0x0000000f, + 0x000006f7,0x00000123,0x000001a2,0x0003003e,0x000006f7,0x000006f6,0x00040039,0x00000006, + 0x000006f8,0x00000067,0x00050041,0x0000000f,0x000006f9,0x00000123,0x000001a2,0x0004003d, + 0x0000000e,0x000006fa,0x000006f9,0x0005008e,0x0000000e,0x000006fb,0x000006fa,0x000006f8, + 0x00050041,0x0000000f,0x000006fc,0x00000123,0x000001a2,0x0003003e,0x000006fc,0x000006fb, + 0x00040039,0x00000006,0x000006fd,0x00000091,0x00050041,0x0000000f,0x000006fe,0x00000123, + 0x000001a2,0x0004003d,0x0000000e,0x000006ff,0x000006fe,0x0005008e,0x0000000e,0x00000700, + 0x000006ff,0x000006fd,0x00050041,0x0000000f,0x00000701,0x00000123,0x000001a2,0x0003003e, + 0x00000701,0x00000700,0x00050041,0x0000000f,0x00000703,0x00000123,0x000001a2,0x0004003d, + 0x0000000e,0x00000704,0x00000703,0x0003003e,0x00000702,0x00000704,0x00050039,0x0000000e, + 0x00000705,0x000000b4,0x00000702,0x00050041,0x0000000f,0x00000706,0x00000123,0x000001a2, + 0x0003003e,0x00000706,0x00000705,0x00050041,0x00000007,0x00000708,0x000006ef,0x00000707, + 0x0004003d,0x00000006,0x00000709,0x00000708,0x00050041,0x00000007,0x0000070a,0x00000123, + 0x000003cc,0x0003003e,0x0000070a,0x00000709,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000128,0x00000000,0x00000106,0x00030037,0x000000fb,0x00000126,0x00030037,0x000000fd, + 0x00000127,0x000200f8,0x00000129,0x0004003b,0x00000007,0x00000718,0x00000007,0x0004003b, + 0x00000007,0x00000719,0x00000007,0x0004003b,0x0000000f,0x0000071c,0x00000007,0x0004003b, + 0x0000000f,0x00000720,0x00000007,0x0004003b,0x0000000f,0x00000722,0x00000007,0x0004003b, + 0x0000000f,0x00000725,0x00000007,0x0004003b,0x0000000f,0x00000729,0x00000007,0x0004003b, + 0x0000000f,0x0000072b,0x00000007,0x0004003b,0x00000007,0x0000072e,0x00000007,0x0004003b, + 0x00000007,0x00000734,0x00000007,0x0004003b,0x0000000f,0x00000736,0x00000007,0x0004003b, + 0x0000000f,0x00000739,0x00000007,0x0004003b,0x00000007,0x0000073c,0x00000007,0x0004003b, + 0x0000000f,0x00000740,0x00000007,0x0004003b,0x0000000f,0x00000745,0x00000007,0x00050041, + 0x00000007,0x0000070b,0x00000127,0x00000198,0x0004003d,0x00000006,0x0000070c,0x0000070b, + 0x000500ba,0x000000a2,0x0000070d,0x0000070c,0x000002d8,0x000600a9,0x00000006,0x0000070e, + 0x0000070d,0x00000150,0x0000014f,0x00050041,0x00000007,0x0000070f,0x00000127,0x00000198, + 0x0004003d,0x00000006,0x00000710,0x0000070f,0x00050085,0x00000006,0x00000711,0x00000710, + 0x0000070e,0x00050041,0x00000007,0x00000712,0x00000127,0x00000198,0x0003003e,0x00000712, + 0x00000711,0x00050041,0x00000007,0x00000713,0x00000127,0x00000198,0x0004003d,0x00000006, + 0x00000714,0x00000713,0x00050041,0x00000007,0x00000715,0x00000127,0x0000019d,0x0004003d, + 0x00000006,0x00000716,0x00000715,0x00050081,0x00000006,0x00000717,0x00000714,0x00000716, + 0x0003003e,0x00000718,0x000002d8,0x0003003e,0x00000719,0x00000717,0x00060039,0x00000006, + 0x0000071a,0x0000003f,0x00000718,0x00000719,0x00050041,0x00000007,0x0000071b,0x00000127, + 0x00000198,0x0003003e,0x0000071b,0x0000071a,0x00050041,0x0000000f,0x0000071d,0x00000127, + 0x0000022f,0x0004003d,0x0000000e,0x0000071e,0x0000071d,0x0003003e,0x0000071c,0x0000071e, + 0x00050039,0x0000000e,0x0000071f,0x000000b1,0x0000071c,0x0003003e,0x00000720,0x0000071f, + 0x00050039,0x0000000e,0x00000721,0x000000b7,0x00000720,0x0003003e,0x00000722,0x00000721, + 0x00050039,0x0000000e,0x00000723,0x000000b4,0x00000722,0x00050041,0x0000000f,0x00000724, + 0x00000127,0x0000022f,0x0003003e,0x00000724,0x00000723,0x00050041,0x0000000f,0x00000726, + 0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000727,0x00000726,0x0003003e,0x00000725, + 0x00000727,0x00050039,0x0000000e,0x00000728,0x000000b1,0x00000725,0x0003003e,0x00000729, + 0x00000728,0x00050039,0x0000000e,0x0000072a,0x000000b7,0x00000729,0x0003003e,0x0000072b, + 0x0000072a,0x00050039,0x0000000e,0x0000072c,0x000000b4,0x0000072b,0x00050041,0x0000000f, + 0x0000072d,0x00000127,0x000001a2,0x0003003e,0x0000072d,0x0000072c,0x00050041,0x00000007, + 0x0000072f,0x00000127,0x0000019d,0x0004003d,0x00000006,0x00000730,0x0000072f,0x00050041, + 0x00000007,0x00000731,0x00000127,0x00000198,0x0004003d,0x00000006,0x00000732,0x00000731, + 0x00050088,0x00000006,0x00000733,0x00000730,0x00000732,0x0003003e,0x00000734,0x00000733, + 0x00050039,0x00000006,0x00000735,0x00000018,0x00000734,0x0003003e,0x0000072e,0x00000735, + 0x00050041,0x0000000f,0x00000737,0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000738, + 0x00000737,0x0003003e,0x00000736,0x00000738,0x00050041,0x0000000f,0x0000073a,0x00000127, + 0x0000022f,0x0004003d,0x0000000e,0x0000073b,0x0000073a,0x0003003e,0x00000739,0x0000073b, + 0x0004003d,0x00000006,0x0000073d,0x0000072e,0x0003003e,0x0000073c,0x0000073d,0x00070039, + 0x0000000e,0x0000073e,0x00000014,0x00000736,0x00000739,0x0000073c,0x00050041,0x0000000f, + 0x0000073f,0x00000127,0x000001a2,0x0003003e,0x0000073f,0x0000073e,0x00050041,0x0000000f, + 0x00000741,0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000742,0x00000741,0x0003003e, + 0x00000740,0x00000742,0x00050039,0x0000000e,0x00000743,0x000000b1,0x00000740,0x00050041, + 0x0000000f,0x00000744,0x00000127,0x000001a2,0x0003003e,0x00000744,0x00000743,0x00050041, + 0x0000000f,0x00000746,0x00000127,0x000001a2,0x0004003d,0x0000000e,0x00000747,0x00000746, + 0x0003003e,0x00000745,0x00000747,0x00050039,0x0000000e,0x00000748,0x000000ba,0x00000745, + 0x00050041,0x0000000f,0x00000749,0x00000127,0x000001a2,0x0003003e,0x00000749,0x00000748, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000012c,0x00000000,0x00000106,0x00030037, + 0x000000fb,0x0000012a,0x00030037,0x000000fd,0x0000012b,0x000200f8,0x0000012d,0x0004003b, + 0x00000007,0x0000074a,0x00000007,0x0004003b,0x00000007,0x0000074e,0x00000007,0x0004003b, + 0x00000007,0x00000750,0x00000007,0x0004003b,0x00000007,0x00000755,0x00000007,0x0004003b, + 0x00000007,0x00000757,0x00000007,0x0004003b,0x00000007,0x0000075a,0x00000007,0x0004003b, + 0x00000007,0x0000075b,0x00000007,0x0004003b,0x00000007,0x0000075d,0x00000007,0x0004003b, + 0x00000007,0x0000075f,0x00000007,0x0004003b,0x00000007,0x00000761,0x00000007,0x0004003b, + 0x00000007,0x00000762,0x00000007,0x0004003b,0x00000007,0x00000764,0x00000007,0x0004003b, + 0x00000007,0x00000767,0x00000007,0x0004003b,0x00000007,0x00000769,0x00000007,0x0004003b, + 0x00000007,0x0000076b,0x00000007,0x0004003b,0x00000007,0x0000076d,0x00000007,0x0004003b, + 0x00000007,0x0000076f,0x00000007,0x0004003b,0x00000007,0x00000771,0x00000007,0x0004003b, + 0x00000007,0x00000773,0x00000007,0x0004003b,0x00000007,0x00000775,0x00000007,0x0004003b, + 0x00000007,0x00000776,0x00000007,0x0004003b,0x00000007,0x00000777,0x00000007,0x0004003b, + 0x0000000f,0x0000077a,0x00000007,0x0004003b,0x0000000f,0x00000782,0x00000007,0x0004003b, + 0x0000000f,0x00000785,0x00000007,0x0004003b,0x0000000f,0x00000787,0x00000007,0x0004003b, + 0x0000000f,0x00000789,0x00000007,0x0004003b,0x0000000f,0x00000796,0x00000007,0x0004003b, + 0x0000000f,0x00000799,0x00000007,0x0004003b,0x00000007,0x000007a0,0x00000007,0x0004003b, + 0x00000007,0x000007a1,0x00000007,0x0004003b,0x00000007,0x000007a3,0x00000007,0x0004003b, + 0x00000007,0x000007ac,0x00000007,0x0004003b,0x0000000f,0x000007af,0x00000007,0x0004003b, + 0x0000000f,0x000007b1,0x00000007,0x0004003b,0x00000007,0x000007b4,0x00000007,0x00050051, + 0x00000006,0x0000074b,0x0000012a,0x00000006,0x00050088,0x00000006,0x0000074d,0x0000074b, + 0x0000074c,0x0003003e,0x0000074e,0x0000074d,0x00050039,0x00000006,0x0000074f,0x00000018, + 0x0000074e,0x0003003e,0x0000074a,0x0000074f,0x00050051,0x00000006,0x00000752,0x0000012a, + 0x0000000c,0x00050088,0x00000006,0x00000753,0x00000752,0x0000074c,0x00050083,0x00000006, + 0x00000754,0x00000751,0x00000753,0x0003003e,0x00000755,0x00000754,0x00050039,0x00000006, + 0x00000756,0x00000018,0x00000755,0x0003003e,0x00000750,0x00000756,0x00050051,0x00000006, + 0x00000758,0x0000012a,0x0000000a,0x00050083,0x00000006,0x00000759,0x00000150,0x00000758, + 0x0003003e,0x00000757,0x00000759,0x00050051,0x00000006,0x0000075c,0x0000012a,0x00000008, + 0x0003003e,0x0000075b,0x0000075c,0x0003003e,0x0000075d,0x000002a2,0x00060039,0x00000006, + 0x0000075e,0x00000053,0x0000075b,0x0000075d,0x0003003e,0x0000075a,0x0000075e,0x00050051, + 0x00000006,0x00000760,0x0000012a,0x00000009,0x0003003e,0x0000075f,0x00000760,0x0004003d, + 0x00000006,0x00000763,0x0000075a,0x0003003e,0x00000762,0x00000763,0x0004003d,0x00000006, + 0x00000765,0x0000075f,0x0003003e,0x00000764,0x00000765,0x00060039,0x00000006,0x00000766, + 0x0000003f,0x00000762,0x00000764,0x0004003d,0x00000006,0x00000768,0x00000757,0x0003003e, + 0x00000767,0x00000768,0x0003003e,0x00000769,0x00000766,0x00060039,0x00000006,0x0000076a, + 0x0000003f,0x00000767,0x00000769,0x0004003d,0x00000006,0x0000076c,0x00000750,0x0003003e, + 0x0000076b,0x0000076c,0x0003003e,0x0000076d,0x0000076a,0x00060039,0x00000006,0x0000076e, + 0x0000003f,0x0000076b,0x0000076d,0x0004003d,0x00000006,0x00000770,0x0000074a,0x0003003e, + 0x0000076f,0x00000770,0x0003003e,0x00000771,0x0000076e,0x00060039,0x00000006,0x00000772, + 0x0000003f,0x0000076f,0x00000771,0x0003003e,0x00000761,0x00000772,0x0003003e,0x00000775, + 0x00000774,0x0003003e,0x00000776,0x00000150,0x0004003d,0x00000006,0x00000778,0x00000761, + 0x0003003e,0x00000777,0x00000778,0x00070039,0x00000006,0x00000779,0x0000000c,0x00000775, + 0x00000776,0x00000777,0x0003003e,0x00000773,0x00000779,0x00060041,0x0000000f,0x0000077b, + 0x0000012b,0x00000192,0x0000022f,0x0004003d,0x0000000e,0x0000077c,0x0000077b,0x00050085, + 0x0000000e,0x0000077f,0x0000077c,0x0000077e,0x0004003d,0x00000006,0x00000780,0x00000773, + 0x0005008e,0x0000000e,0x00000781,0x0000077f,0x00000780,0x0003003e,0x0000077a,0x00000781, + 0x0004003d,0x0000000e,0x00000786,0x0000077a,0x0003003e,0x00000785,0x00000786,0x0003003e, + 0x00000787,0x00000784,0x00060039,0x0000000e,0x00000788,0x00000047,0x00000785,0x00000787, + 0x0003003e,0x00000782,0x00000788,0x00050041,0x0000000f,0x0000078a,0x0000012b,0x000001a2, + 0x0004003d,0x0000000e,0x0000078b,0x0000078a,0x00060041,0x0000000f,0x0000078c,0x0000012b, + 0x00000192,0x00000192,0x0004003d,0x0000000e,0x0000078d,0x0000078c,0x00050083,0x0000000e, + 0x0000078e,0x0000078b,0x0000078d,0x0004003d,0x0000000e,0x0000078f,0x00000782,0x00050088, + 0x0000000e,0x00000790,0x0000078e,0x0000078f,0x0003003e,0x00000789,0x00000790,0x0004003d, + 0x0000000e,0x00000791,0x00000789,0x0006000c,0x00000006,0x00000792,0x00000001,0x00000042, + 0x00000791,0x000500ba,0x000000a2,0x00000793,0x00000792,0x00000150,0x000300f7,0x00000795, + 0x00000000,0x000400fa,0x00000793,0x00000794,0x00000795,0x000200f8,0x00000794,0x0004003d, + 0x0000000e,0x00000797,0x00000789,0x0006000c,0x0000000e,0x00000798,0x00000001,0x00000045, + 0x00000797,0x0003003e,0x00000796,0x00000798,0x0004003d,0x0000000e,0x0000079a,0x00000796, + 0x0004003d,0x0000000e,0x0000079b,0x0000077a,0x00050085,0x0000000e,0x0000079c,0x0000079a, + 0x0000079b,0x00060041,0x0000000f,0x0000079d,0x0000012b,0x00000192,0x00000192,0x0004003d, + 0x0000000e,0x0000079e,0x0000079d,0x00050081,0x0000000e,0x0000079f,0x0000079c,0x0000079e, + 0x0003003e,0x00000799,0x0000079f,0x00050051,0x00000006,0x000007a2,0x0000012a,0x0000000b, + 0x0003003e,0x000007a1,0x000007a2,0x00050041,0x00000007,0x000007a4,0x0000012b,0x000003cd, + 0x0004003d,0x00000006,0x000007a5,0x000007a4,0x0003003e,0x000007a3,0x000007a5,0x00060039, + 0x00000006,0x000007a6,0x0000003f,0x000007a1,0x000007a3,0x00050051,0x00000006,0x000007a7, + 0x0000012a,0x0000000a,0x00050085,0x00000006,0x000007a8,0x000007a6,0x000007a7,0x00050051, + 0x00000006,0x000007a9,0x0000012a,0x00000007,0x00050083,0x00000006,0x000007aa,0x00000150, + 0x000007a9,0x00050085,0x00000006,0x000007ab,0x000007a8,0x000007aa,0x0003003e,0x000007a0, + 0x000007ab,0x0004003d,0x00000006,0x000007ad,0x000007a0,0x0003003e,0x000007ac,0x000007ad, + 0x00050039,0x00000006,0x000007ae,0x00000018,0x000007ac,0x0004003d,0x0000000e,0x000007b0, + 0x00000799,0x0003003e,0x000007af,0x000007b0,0x00050041,0x0000000f,0x000007b2,0x0000012b, + 0x000001a2,0x0004003d,0x0000000e,0x000007b3,0x000007b2,0x0003003e,0x000007b1,0x000007b3, + 0x0003003e,0x000007b4,0x000007ae,0x00070039,0x0000000e,0x000007b5,0x00000014,0x000007af, + 0x000007b1,0x000007b4,0x00050041,0x0000000f,0x000007b6,0x0000012b,0x000001a2,0x0003003e, + 0x000007b6,0x000007b5,0x000200f9,0x00000795,0x000200f8,0x00000795,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000131,0x00000000,0x0000012e,0x00030037,0x0000011d,0x0000012f, + 0x00030037,0x000000fd,0x00000130,0x000200f8,0x00000132,0x0004003b,0x00000007,0x000007c0, + 0x00000007,0x0004003b,0x00000007,0x000007c1,0x00000007,0x0004003b,0x00000007,0x000007c5, + 0x00000007,0x0004003b,0x00000007,0x000007c8,0x00000007,0x0004003b,0x00000007,0x000007cc, + 0x00000007,0x0004003b,0x00000007,0x000007cd,0x00000007,0x0004003b,0x00000007,0x000007d4, + 0x00000007,0x0004003b,0x00000007,0x000007d5,0x00000007,0x0004003b,0x00000007,0x000007db, + 0x00000007,0x0004003b,0x00000007,0x000007de,0x00000007,0x0004003b,0x00000007,0x000007e1, + 0x00000007,0x0004003b,0x0000006d,0x000007e2,0x00000007,0x0004003b,0x00000007,0x000007e9, + 0x00000007,0x0004003b,0x00000007,0x000007ea,0x00000007,0x0004003b,0x00000007,0x000007f4, + 0x00000007,0x0004003b,0x00000007,0x000007f5,0x00000007,0x0004003b,0x00000007,0x000007f7, + 0x00000007,0x0004003b,0x00000007,0x000007f8,0x00000007,0x0004003b,0x00000007,0x000007fb, + 0x00000007,0x0004003b,0x00000007,0x00000806,0x00000007,0x0004003b,0x00000007,0x00000807, + 0x00000007,0x0004003b,0x0000001b,0x0000080a,0x00000007,0x0004003b,0x0000001b,0x00000810, + 0x00000007,0x00050041,0x000000a3,0x000007b7,0x0000012f,0x000003f4,0x0004003d,0x000000a2, + 0x000007b8,0x000007b7,0x000500a4,0x000000a2,0x000007ba,0x000007b8,0x000007b9,0x000600a9, + 0x00000006,0x000007bb,0x000007ba,0x00000150,0x0000014f,0x00050041,0x00000007,0x000007bc, + 0x00000130,0x000003cc,0x0004003d,0x00000006,0x000007bd,0x000007bc,0x00050085,0x00000006, + 0x000007be,0x000007bd,0x000007bb,0x00050041,0x00000007,0x000007bf,0x00000130,0x000003cc, + 0x0003003e,0x000007bf,0x000007be,0x00050041,0x00000007,0x000007c2,0x0000012f,0x000003e0, + 0x0004003d,0x00000006,0x000007c3,0x000007c2,0x0003003e,0x000007c1,0x000007c3,0x00050039, + 0x00000006,0x000007c4,0x00000018,0x000007c1,0x00050041,0x00000007,0x000007c6,0x0000012f, + 0x000003df,0x0004003d,0x00000006,0x000007c7,0x000007c6,0x0003003e,0x000007c5,0x000007c7, + 0x00050041,0x00000007,0x000007c9,0x0000012f,0x000001a7,0x0004003d,0x00000006,0x000007ca, + 0x000007c9,0x0003003e,0x000007c8,0x000007ca,0x00060039,0x00000006,0x000007cb,0x0000003f, + 0x000007c5,0x000007c8,0x0003003e,0x000007cc,0x000007c4,0x0003003e,0x000007cd,0x000007cb, + 0x00060039,0x00000006,0x000007ce,0x0000003f,0x000007cc,0x000007cd,0x0003003e,0x000007c0, + 0x000007ce,0x00050041,0x00000007,0x000007cf,0x00000130,0x000003cc,0x0004003d,0x00000006, + 0x000007d0,0x000007cf,0x0004003d,0x00000006,0x000007d1,0x000007c0,0x00050085,0x00000006, + 0x000007d2,0x000007d1,0x00000361,0x00050083,0x00000006,0x000007d3,0x000007d0,0x000007d2, + 0x0003003e,0x000007d4,0x0000014f,0x0003003e,0x000007d5,0x000007d3,0x00060039,0x00000006, + 0x000007d6,0x0000003f,0x000007d4,0x000007d5,0x00050041,0x00000007,0x000007d7,0x00000130, + 0x000003cc,0x0003003e,0x000007d7,0x000007d6,0x00050041,0x00000007,0x000007d8,0x00000130, + 0x000003cc,0x0004003d,0x00000006,0x000007d9,0x000007d8,0x00050083,0x00000006,0x000007da, + 0x000007d9,0x00000150,0x0003003e,0x000007db,0x000007da,0x00050039,0x00000006,0x000007dc, + 0x00000018,0x000007db,0x00050085,0x00000006,0x000007dd,0x000007dc,0x00000150,0x0003003e, + 0x000007de,0x000007dd,0x00050039,0x00000006,0x000007df,0x00000018,0x000007de,0x00050041, + 0x00000007,0x000007e0,0x00000130,0x000003cd,0x0003003e,0x000007e0,0x000007df,0x00050041, + 0x0000006d,0x000007e3,0x0000012f,0x00000192,0x0004003d,0x00000055,0x000007e4,0x000007e3, + 0x0003003e,0x000007e2,0x000007e4,0x00050039,0x00000006,0x000007e5,0x00000086,0x000007e2, + 0x00050041,0x00000007,0x000007e6,0x0000012f,0x000003e0,0x0004003d,0x00000006,0x000007e7, + 0x000007e6,0x00050085,0x00000006,0x000007e8,0x000007e7,0x0000014f,0x0003003e,0x000007e9, + 0x000007e8,0x00050041,0x00000007,0x000007eb,0x0000012f,0x000003df,0x0004003d,0x00000006, + 0x000007ec,0x000007eb,0x0003003e,0x000007ea,0x000007ec,0x00060039,0x00000006,0x000007ed, + 0x0000003f,0x000007e9,0x000007ea,0x00050083,0x00000006,0x000007ee,0x00000150,0x000007ed, + 0x00050085,0x00000006,0x000007ef,0x000007e5,0x000007ee,0x0003003e,0x000007e1,0x000007ef, + 0x00050041,0x00000007,0x000007f0,0x00000130,0x000003cc,0x0004003d,0x00000006,0x000007f1, + 0x000007f0,0x0004003d,0x00000006,0x000007f2,0x000007e1,0x00050081,0x00000006,0x000007f3, + 0x000007f1,0x000007f2,0x0003003e,0x000007f4,0x000007f3,0x0003003e,0x000007f5,0x00000361, + 0x00060039,0x00000006,0x000007f6,0x00000023,0x000007f4,0x000007f5,0x0003003e,0x000007f7, + 0x0000014f,0x0003003e,0x000007f8,0x000007f6,0x00060039,0x00000006,0x000007f9,0x0000003f, + 0x000007f7,0x000007f8,0x00050041,0x00000007,0x000007fa,0x00000130,0x000003cc,0x0003003e, + 0x000007fa,0x000007f9,0x00040039,0x00000006,0x000007fd,0x00000065,0x00050088,0x00000006, + 0x000007fe,0x000007fc,0x000007fd,0x0004003d,0x00000006,0x000007ff,0x000007c0,0x00050083, + 0x00000006,0x00000800,0x00000150,0x000007ff,0x00050085,0x00000006,0x00000801,0x000007fe, + 0x00000800,0x0003003e,0x000007fb,0x00000801,0x00050041,0x00000007,0x00000802,0x00000130, + 0x000003cc,0x0004003d,0x00000006,0x00000803,0x00000802,0x0004003d,0x00000006,0x00000804, + 0x000007fb,0x00050083,0x00000006,0x00000805,0x00000803,0x00000804,0x0003003e,0x00000806, + 0x0000014f,0x0003003e,0x00000807,0x00000805,0x00060039,0x00000006,0x00000808,0x0000003f, + 0x00000806,0x00000807,0x00050041,0x00000007,0x00000809,0x00000130,0x000003cc,0x0003003e, + 0x00000809,0x00000808,0x00050041,0x0000001b,0x0000080b,0x0000012f,0x0000022f,0x0004003d, + 0x0000001a,0x0000080c,0x0000080b,0x00050041,0x0000001b,0x0000080d,0x0000012f,0x00000198, + 0x0004003d,0x0000001a,0x0000080e,0x0000080d,0x00050083,0x0000001a,0x0000080f,0x0000080c, + 0x0000080e,0x0003003e,0x0000080a,0x0000080f,0x0004003d,0x0000001a,0x00000811,0x0000080a, + 0x0003003e,0x00000810,0x00000811,0x00050039,0x000000a2,0x00000812,0x000000be,0x00000810, + 0x000500a4,0x000000a2,0x00000814,0x00000812,0x00000813,0x000600a9,0x00000006,0x00000815, + 0x00000814,0x00000150,0x0000014f,0x00050041,0x00000007,0x00000816,0x00000130,0x000003cc, + 0x0004003d,0x00000006,0x00000817,0x00000816,0x00050085,0x00000006,0x00000818,0x00000817, + 0x00000815,0x00050041,0x00000007,0x00000819,0x00000130,0x000003cc,0x0003003e,0x00000819, + 0x00000818,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000135,0x00000000,0x00000106, + 0x00030037,0x000000fb,0x00000133,0x00030037,0x000000fd,0x00000134,0x000200f8,0x00000136, + 0x0004003b,0x00000007,0x0000081a,0x00000007,0x0004003b,0x00000007,0x00000821,0x00000007, + 0x0004003b,0x00000007,0x00000822,0x00000007,0x0004003b,0x00000007,0x00000824,0x00000007, + 0x0004003b,0x00000007,0x00000826,0x00000007,0x0004003b,0x00000007,0x00000828,0x00000007, + 0x0004003b,0x00000007,0x00000829,0x00000007,0x0004003b,0x00000007,0x0000082b,0x00000007, + 0x0004003b,0x00000007,0x0000082d,0x00000007,0x00050051,0x00000006,0x0000081b,0x00000133, + 0x0000000a,0x0003003e,0x0000081a,0x0000081b,0x00050051,0x00000006,0x0000081d,0x00000133, + 0x00000006,0x00040039,0x00000006,0x0000081e,0x0000006b,0x00050085,0x00000006,0x0000081f, + 0x0000081d,0x0000081e,0x00050088,0x00000006,0x00000820,0x0000081f,0x000002a2,0x0003003e, + 0x00000821,0x0000014f,0x0003003e,0x00000822,0x00000820,0x00060039,0x00000006,0x00000823, + 0x0000003f,0x00000821,0x00000822,0x0003003e,0x00000824,0x00000823,0x00050039,0x00000006, + 0x00000825,0x00000018,0x00000824,0x0004003d,0x00000006,0x00000827,0x0000081a,0x0003003e, + 0x00000826,0x00000827,0x0003003e,0x00000828,0x0000081c,0x0003003e,0x00000829,0x00000825, + 0x00070039,0x00000006,0x0000082a,0x0000000c,0x00000826,0x00000828,0x00000829,0x0004003d, + 0x00000006,0x0000082c,0x0000081a,0x0003003e,0x0000082b,0x0000082c,0x0003003e,0x0000082d, + 0x0000082a,0x00060039,0x00000006,0x0000082e,0x00000023,0x0000082b,0x0000082d,0x0003003e, + 0x0000081a,0x0000082e,0x0004003d,0x00000006,0x0000082f,0x0000081a,0x00050041,0x00000007, + 0x00000830,0x00000134,0x00000198,0x0003003e,0x00000830,0x0000082f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000013b,0x00000000,0x00000137,0x00030037,0x0000006d,0x00000138, + 0x00030037,0x0000011d,0x00000139,0x00030037,0x000000fd,0x0000013a,0x000200f8,0x0000013c, + 0x0004003b,0x0000001b,0x00000833,0x00000007,0x0004003b,0x0000001b,0x00000846,0x00000007, + 0x0004003b,0x0000006d,0x00000849,0x00000007,0x0004003b,0x0000006d,0x0000084a,0x00000007, + 0x0004003b,0x0000006d,0x0000084d,0x00000007,0x0004003b,0x0000001b,0x0000084f,0x00000007, + 0x0004003b,0x0000001b,0x00000853,0x00000007,0x0004003b,0x0000011d,0x00000858,0x00000007, + 0x0004003b,0x0000001b,0x0000085c,0x00000007,0x0004003b,0x0000001b,0x0000085f,0x00000007, + 0x0004003b,0x0000006d,0x00000861,0x00000007,0x0004003b,0x0000006d,0x00000862,0x00000007, + 0x0004003b,0x0000001b,0x00000864,0x00000007,0x0004003b,0x0000001b,0x00000868,0x00000007, + 0x0004003b,0x0000001b,0x0000086d,0x00000007,0x0004003b,0x0000006d,0x00000870,0x00000007, + 0x0004003b,0x0000006d,0x00000871,0x00000007,0x0004003b,0x0000001b,0x00000873,0x00000007, + 0x0004003b,0x00000030,0x00000881,0x00000007,0x0004003b,0x0000001b,0x00000882,0x00000007, + 0x0004003b,0x00000007,0x00000886,0x00000007,0x0004003b,0x00000007,0x0000088b,0x00000007, + 0x0004003b,0x00000007,0x00000890,0x00000007,0x0004003b,0x00000007,0x00000895,0x00000007, + 0x0004003d,0x00000055,0x00000831,0x00000138,0x00050041,0x0000006d,0x00000832,0x00000139, + 0x00000192,0x0003003e,0x00000832,0x00000831,0x0004003d,0x00000055,0x00000834,0x00000138, + 0x0004006f,0x0000001a,0x00000835,0x00000834,0x00050050,0x0000001a,0x00000836,0x000002a2, + 0x000002a2,0x00050081,0x0000001a,0x00000837,0x00000835,0x00000836,0x00040039,0x00000055, + 0x00000838,0x0000005b,0x0004006f,0x0000001a,0x00000839,0x00000838,0x00050088,0x0000001a, + 0x0000083a,0x00000837,0x00000839,0x0003003e,0x00000833,0x0000083a,0x0004003d,0x0000001a, + 0x0000083b,0x00000833,0x00050041,0x0000001b,0x0000083c,0x00000139,0x0000022f,0x0003003e, + 0x0000083c,0x0000083b,0x0004003d,0x0000001a,0x0000083d,0x00000833,0x00040039,0x0000001a, + 0x0000083e,0x00000060,0x00040039,0x00000055,0x0000083f,0x00000057,0x0004006f,0x0000001a, + 0x00000840,0x0000083f,0x00050088,0x0000001a,0x00000841,0x0000083e,0x00000840,0x00050081, + 0x0000001a,0x00000842,0x0000083d,0x00000841,0x00050041,0x0000001b,0x00000843,0x00000139, + 0x0000019d,0x0003003e,0x00000843,0x00000842,0x00040039,0x00000055,0x00000844,0x00000057, + 0x00040039,0x00000055,0x00000845,0x00000059,0x00050041,0x0000001b,0x00000847,0x00000139, + 0x0000019d,0x0004003d,0x0000001a,0x00000848,0x00000847,0x0003003e,0x00000846,0x00000848, + 0x0003003e,0x00000849,0x00000844,0x0003003e,0x0000084a,0x00000845,0x00070039,0x0000001a, + 0x0000084b,0x000000ca,0x00000846,0x00000849,0x0000084a,0x00050041,0x0000001b,0x0000084c, + 0x00000139,0x000001a2,0x0003003e,0x0000084c,0x0000084b,0x0004003d,0x00000055,0x0000084e, + 0x00000138,0x0003003e,0x0000084d,0x0000084e,0x0004003d,0x0000001a,0x00000850,0x00000833, + 0x0003003e,0x0000084f,0x00000850,0x00060039,0x0000001a,0x00000851,0x0000011b,0x0000084d, + 0x0000084f,0x00050041,0x0000001b,0x00000852,0x00000139,0x00000198,0x0003003e,0x00000852, + 0x00000851,0x00050041,0x0000001b,0x00000854,0x00000139,0x00000198,0x0004003d,0x0000001a, + 0x00000855,0x00000854,0x0003003e,0x00000853,0x00000855,0x00050039,0x00000006,0x00000856, + 0x00000098,0x00000853,0x00050041,0x00000007,0x00000857,0x00000139,0x000003cd,0x0003003e, + 0x00000857,0x00000856,0x0004003d,0x000000fb,0x00000859,0x00000139,0x0003003e,0x00000858, + 0x00000859,0x00050039,0x00000002,0x0000085a,0x00000120,0x00000858,0x0004003d,0x000000fb, + 0x0000085b,0x00000858,0x0003003e,0x00000139,0x0000085b,0x00040039,0x00000055,0x0000085d, + 0x00000057,0x00040039,0x00000055,0x0000085e,0x00000059,0x0004003d,0x0000001a,0x00000860, + 0x00000833,0x0003003e,0x0000085f,0x00000860,0x0003003e,0x00000861,0x0000085d,0x0003003e, + 0x00000862,0x0000085e,0x00070039,0x0000001a,0x00000863,0x000000ca,0x0000085f,0x00000861, + 0x00000862,0x0003003e,0x0000085c,0x00000863,0x0004003d,0x0000001a,0x00000865,0x0000085c, + 0x0003003e,0x00000864,0x00000865,0x00050039,0x00000006,0x00000866,0x00000082,0x00000864, + 0x00050041,0x00000007,0x00000867,0x00000139,0x000003e1,0x0003003e,0x00000867,0x00000866, + 0x00040039,0x00000055,0x00000869,0x00000057,0x00050050,0x00000055,0x0000086a,0x0000019d, + 0x0000019d,0x00050087,0x00000055,0x0000086b,0x00000869,0x0000086a,0x00040039,0x00000055, + 0x0000086c,0x0000007b,0x00050041,0x0000001b,0x0000086e,0x00000139,0x0000019d,0x0004003d, + 0x0000001a,0x0000086f,0x0000086e,0x0003003e,0x0000086d,0x0000086f,0x0003003e,0x00000870, + 0x0000086b,0x0003003e,0x00000871,0x0000086c,0x00070039,0x0000001a,0x00000872,0x000000ca, + 0x0000086d,0x00000870,0x00000871,0x0003003e,0x00000868,0x00000872,0x0004003d,0x0000001a, + 0x00000874,0x00000868,0x0003003e,0x00000873,0x00000874,0x00050039,0x00000006,0x00000875, + 0x0000007f,0x00000873,0x00050041,0x00000007,0x00000876,0x00000139,0x000003f3,0x0003003e, + 0x00000876,0x00000875,0x00050041,0x000000a3,0x00000877,0x00000139,0x000001b2,0x0004003d, + 0x000000a2,0x00000878,0x00000877,0x000500a4,0x000000a2,0x00000879,0x00000878,0x000007b9, + 0x000400a8,0x000000a2,0x0000087a,0x00000879,0x000300f7,0x0000087c,0x00000000,0x000400fa, + 0x0000087a,0x0000087b,0x0000087c,0x000200f8,0x0000087b,0x00040039,0x00000006,0x0000087d, + 0x00000069,0x000500b4,0x000000a2,0x0000087e,0x0000014f,0x0000087d,0x000200f9,0x0000087c, + 0x000200f8,0x0000087c,0x000700f5,0x000000a2,0x0000087f,0x00000879,0x0000013c,0x0000087e, + 0x0000087b,0x00050041,0x000000a3,0x00000880,0x00000139,0x000003f4,0x0003003e,0x00000880, + 0x0000087f,0x00050041,0x0000001b,0x00000883,0x00000139,0x000001a2,0x0004003d,0x0000001a, + 0x00000884,0x00000883,0x0003003e,0x00000882,0x00000884,0x00050039,0x0000002f,0x00000885, + 0x00000095,0x00000882,0x0003003e,0x00000881,0x00000885,0x00050041,0x00000007,0x00000887, + 0x00000881,0x000001eb,0x0004003d,0x00000006,0x00000888,0x00000887,0x0003003e,0x00000886, + 0x00000888,0x00050039,0x00000006,0x00000889,0x00000018,0x00000886,0x00050041,0x00000007, + 0x0000088a,0x00000139,0x000003df,0x0003003e,0x0000088a,0x00000889,0x00050041,0x00000007, + 0x0000088c,0x00000881,0x00000284,0x0004003d,0x00000006,0x0000088d,0x0000088c,0x0003003e, + 0x0000088b,0x0000088d,0x00050039,0x00000006,0x0000088e,0x00000018,0x0000088b,0x00050041, + 0x00000007,0x0000088f,0x00000139,0x000001a7,0x0003003e,0x0000088f,0x0000088e,0x00050041, + 0x00000007,0x00000891,0x00000881,0x00000288,0x0004003d,0x00000006,0x00000892,0x00000891, + 0x0003003e,0x00000890,0x00000892,0x00050039,0x00000006,0x00000893,0x00000018,0x00000890, + 0x00050041,0x00000007,0x00000894,0x00000139,0x000003e0,0x0003003e,0x00000894,0x00000893, + 0x00050041,0x00000007,0x00000896,0x00000881,0x00000707,0x0004003d,0x00000006,0x00000897, + 0x00000896,0x0003003e,0x00000895,0x00000897,0x00050039,0x00000006,0x00000898,0x00000018, + 0x00000895,0x00050041,0x00000007,0x00000899,0x00000139,0x000001ad,0x0003003e,0x00000899, + 0x00000898,0x00050041,0x00000007,0x0000089a,0x00000139,0x000001ad,0x0004003d,0x00000006, + 0x0000089b,0x0000089a,0x00050085,0x00000006,0x0000089d,0x0000089b,0x0000089c,0x0006000c, + 0x00000006,0x0000089e,0x00000001,0x00000001,0x0000089d,0x000500ba,0x000000a2,0x0000089f, + 0x0000089e,0x00000150,0x000600a9,0x00000006,0x000008a0,0x0000089f,0x00000150,0x0000014f, + 0x00050041,0x00000007,0x000008a1,0x00000139,0x000001ad,0x0004003d,0x00000006,0x000008a2, + 0x000008a1,0x00050085,0x00000006,0x000008a3,0x000008a2,0x000008a0,0x00050041,0x00000007, + 0x000008a4,0x00000139,0x000001ad,0x0003003e,0x000008a4,0x000008a3,0x00050041,0x0000000f, + 0x000008a5,0x0000013a,0x0000022f,0x0003003e,0x000008a5,0x00000487,0x00050041,0x0000000f, + 0x000008a6,0x0000013a,0x000001a2,0x0003003e,0x000008a6,0x00000487,0x00050041,0x00000007, + 0x000008a7,0x0000013a,0x00000198,0x0003003e,0x000008a7,0x00000150,0x00050041,0x00000007, + 0x000008a8,0x0000013a,0x0000019d,0x0003003e,0x000008a8,0x0000014f,0x00050041,0x00000007, + 0x000008a9,0x0000013a,0x000003cc,0x0003003e,0x000008a9,0x0000014f,0x00050041,0x00000007, + 0x000008aa,0x0000013a,0x000003cd,0x0003003e,0x000008aa,0x0000014f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000013f,0x00000000,0x0000013d,0x00030037,0x0000006d,0x0000013e, + 0x000200f8,0x00000140,0x0004003b,0x0000011d,0x000008ab,0x00000007,0x0004003b,0x000000fd, + 0x000008ac,0x00000007,0x0004003b,0x0000006d,0x000008ad,0x00000007,0x0004003b,0x0000011d, + 0x000008af,0x00000007,0x0004003b,0x000000fd,0x000008b1,0x00000007,0x0004003b,0x000000fd, + 0x000008c1,0x00000007,0x0004003b,0x0000011d,0x000008c5,0x00000007,0x0004003b,0x000000fd, + 0x000008c7,0x00000007,0x0004003b,0x000000fd,0x000008cc,0x00000007,0x0004003b,0x000000fd, + 0x000008d1,0x00000007,0x0004003b,0x000000fd,0x000008d6,0x00000007,0x0004003b,0x000000fd, + 0x000008db,0x00000007,0x0004003b,0x0000000f,0x000008e5,0x00000007,0x0004003b,0x0000000f, + 0x000008e8,0x00000007,0x0004003b,0x0000006d,0x000008f3,0x00000007,0x0004003b,0x00000030, + 0x000008f5,0x00000007,0x0004003b,0x0000006d,0x000008f7,0x00000007,0x0004003b,0x00000007, + 0x000008f9,0x00000007,0x0004003d,0x00000055,0x000008ae,0x0000013e,0x0003003e,0x000008ad, + 0x000008ae,0x0004003d,0x000000fb,0x000008b0,0x000008ab,0x0003003e,0x000008af,0x000008b0, + 0x0004003d,0x000000fc,0x000008b2,0x000008ac,0x0003003e,0x000008b1,0x000008b2,0x00070039, + 0x00000002,0x000008b3,0x0000013b,0x000008ad,0x000008af,0x000008b1,0x0004003d,0x000000fb, + 0x000008b4,0x000008af,0x0003003e,0x000008ab,0x000008b4,0x0004003d,0x000000fc,0x000008b5, + 0x000008b1,0x0003003e,0x000008ac,0x000008b5,0x00050041,0x000000a3,0x000008b6,0x000008ab, + 0x000001b2,0x0004003d,0x000000a2,0x000008b7,0x000008b6,0x000300f7,0x000008b9,0x00000000, + 0x000400fa,0x000008b7,0x000008b8,0x000008b9,0x000200f8,0x000008b8,0x00050041,0x000000a3, + 0x000008ba,0x000008ab,0x000003f4,0x0004003d,0x000000a2,0x000008bb,0x000008ba,0x000400a8, + 0x000000a2,0x000008bc,0x000008bb,0x000200f9,0x000008b9,0x000200f8,0x000008b9,0x000700f5, + 0x000000a2,0x000008bd,0x000008b7,0x00000140,0x000008bc,0x000008b8,0x000300f7,0x000008bf, + 0x00000000,0x000400fa,0x000008bd,0x000008be,0x000008bf,0x000200f8,0x000008be,0x0004003d, + 0x000000fb,0x000008c0,0x000008ab,0x0004003d,0x000000fc,0x000008c2,0x000008ac,0x0003003e, + 0x000008c1,0x000008c2,0x00060039,0x00000002,0x000008c3,0x00000124,0x000008c0,0x000008c1, + 0x0004003d,0x000000fc,0x000008c4,0x000008c1,0x0003003e,0x000008ac,0x000008c4,0x000200f9, + 0x000008bf,0x000200f8,0x000008bf,0x0004003d,0x000000fb,0x000008c6,0x000008ab,0x0003003e, + 0x000008c5,0x000008c6,0x0004003d,0x000000fc,0x000008c8,0x000008ac,0x0003003e,0x000008c7, + 0x000008c8,0x00060039,0x00000002,0x000008c9,0x00000131,0x000008c5,0x000008c7,0x0004003d, + 0x000000fc,0x000008ca,0x000008c7,0x0003003e,0x000008ac,0x000008ca,0x0004003d,0x000000fb, + 0x000008cb,0x000008ab,0x0004003d,0x000000fc,0x000008cd,0x000008ac,0x0003003e,0x000008cc, + 0x000008cd,0x00060039,0x00000002,0x000008ce,0x00000135,0x000008cb,0x000008cc,0x0004003d, + 0x000000fc,0x000008cf,0x000008cc,0x0003003e,0x000008ac,0x000008cf,0x0004003d,0x000000fb, + 0x000008d0,0x000008ab,0x0004003d,0x000000fc,0x000008d2,0x000008ac,0x0003003e,0x000008d1, + 0x000008d2,0x00060039,0x00000002,0x000008d3,0x00000109,0x000008d0,0x000008d1,0x0004003d, + 0x000000fc,0x000008d4,0x000008d1,0x0003003e,0x000008ac,0x000008d4,0x0004003d,0x000000fb, + 0x000008d5,0x000008ab,0x0004003d,0x000000fc,0x000008d7,0x000008ac,0x0003003e,0x000008d6, + 0x000008d7,0x00060039,0x00000002,0x000008d8,0x0000012c,0x000008d5,0x000008d6,0x0004003d, + 0x000000fc,0x000008d9,0x000008d6,0x0003003e,0x000008ac,0x000008d9,0x0004003d,0x000000fb, + 0x000008da,0x000008ab,0x0004003d,0x000000fc,0x000008dc,0x000008ac,0x0003003e,0x000008db, + 0x000008dc,0x00060039,0x00000002,0x000008dd,0x00000128,0x000008da,0x000008db,0x0004003d, + 0x000000fc,0x000008de,0x000008db,0x0003003e,0x000008ac,0x000008de,0x00040039,0x00000006, + 0x000008df,0x00000091,0x00050041,0x0000000f,0x000008e0,0x000008ac,0x000001a2,0x0004003d, + 0x0000000e,0x000008e1,0x000008e0,0x00060050,0x0000000e,0x000008e2,0x000008df,0x000008df, + 0x000008df,0x00050088,0x0000000e,0x000008e3,0x000008e1,0x000008e2,0x00050041,0x0000000f, + 0x000008e4,0x000008ac,0x000001a2,0x0003003e,0x000008e4,0x000008e3,0x00050041,0x0000000f, + 0x000008e6,0x000008ac,0x000001a2,0x0004003d,0x0000000e,0x000008e7,0x000008e6,0x0003003e, + 0x000008e5,0x000008e7,0x0003003e,0x000008e8,0x00000487,0x00060039,0x0000000e,0x000008e9, + 0x00000047,0x000008e5,0x000008e8,0x00050041,0x0000000f,0x000008ea,0x000008ac,0x000001a2, + 0x0003003e,0x000008ea,0x000008e9,0x00050041,0x0000000f,0x000008eb,0x000008ac,0x000001a2, + 0x0004003d,0x0000000e,0x000008ec,0x000008eb,0x00050041,0x00000007,0x000008ed,0x000008ac, + 0x000003cc,0x0004003d,0x00000006,0x000008ee,0x000008ed,0x00050051,0x00000006,0x000008ef, + 0x000008ec,0x00000000,0x00050051,0x00000006,0x000008f0,0x000008ec,0x00000001,0x00050051, + 0x00000006,0x000008f1,0x000008ec,0x00000002,0x00070050,0x0000002f,0x000008f2,0x000008ef, + 0x000008f0,0x000008f1,0x000008ee,0x0004003d,0x00000055,0x000008f4,0x0000013e,0x0003003e, + 0x000008f3,0x000008f4,0x0003003e,0x000008f5,0x000008f2,0x00060039,0x00000002,0x000008f6, + 0x00000079,0x000008f3,0x000008f5,0x0004003d,0x00000055,0x000008f8,0x0000013e,0x0003003e, + 0x000008f7,0x000008f8,0x0003003e,0x000008f9,0x0000014f,0x00060039,0x00000002,0x000008fa, + 0x0000008b,0x000008f7,0x000008f9,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h b/gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h new file mode 100644 index 000000000..089fe9ad1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h @@ -0,0 +1,818 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_DISOCCLUSION_MASK_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000003d6,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000003c6, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666, + 0x6f6c4673,0x75287461,0x00003b31,0x00030005,0x0000000a,0x00000078,0x00070005,0x00000011, + 0x42786666,0x64616f72,0x74736163,0x31662832,0x0000003b,0x00040005,0x00000010,0x756c6176, + 0x00000065,0x00070005,0x00000017,0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b, + 0x00030005,0x00000014,0x00000078,0x00030005,0x00000015,0x00000079,0x00030005,0x00000016, + 0x00000074,0x00060005,0x0000001b,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x0000001a,0x00000078,0x00060005,0x00000020,0x46786666,0x74636172,0x32667628,0x0000003b, + 0x00030005,0x0000001f,0x00000078,0x00070005,0x00000024,0x55786666,0x6361706e,0x3233466b, + 0x3b317528,0x00000000,0x00030005,0x00000023,0x00000075,0x00060005,0x00000029,0x4d786666, + 0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000027,0x00000078,0x00030005,0x00000028, + 0x00000079,0x00050005,0x0000002e,0x646e6552,0x69537265,0x0028657a,0x000b0005,0x00000032, + 0x69766544,0x6f546563,0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72,0x726f7463, + 0x00002873,0x00080005,0x00000037,0x64616f4c,0x616c6944,0x44646574,0x68747065,0x32697628, + 0x0000003b,0x00040005,0x00000036,0x50785069,0x0000736f,0x000d0005,0x0000003a,0x64616f4c, + 0x6f636552,0x7274736e,0x65746375,0x70654464,0x72506874,0x6f697665,0x72467375,0x28656d61, + 0x3b326976,0x00000000,0x00050005,0x00000039,0x49785069,0x7475706e,0x00000000,0x000d0005, + 0x0000003d,0x64616f4c,0x69747345,0x6574616d,0x746e4964,0x6f707265,0x6974616c,0x72466e6f, + 0x44656d61,0x68747065,0x32697628,0x0000003b,0x00050005,0x0000003c,0x49785069,0x7475706e, + 0x00000000,0x00080005,0x00000042,0x64616f4c,0x656d6147,0x6c656946,0x28764d64,0x3b326976, + 0x00000000,0x00050005,0x00000041,0x53785069,0x6c706d61,0x00000065,0x000a0005,0x00000049, + 0x64616f4c,0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x31692864,0x3275763b,0x0000003b, + 0x00050005,0x00000047,0x4c70696d,0x6c657665,0x00000000,0x00050005,0x00000048,0x49785069, + 0x7475706e,0x00000000,0x00090005,0x0000004c,0x706d6153,0x6944656c,0x726f7473,0x6e6f6974, + 0x6c656946,0x66762864,0x00003b32,0x00030005,0x0000004b,0x00765566,0x000a0005,0x00000051, + 0x726f7453,0x73694465,0x6c63636f,0x6f697375,0x73614d6e,0x6976286b,0x66763b32,0x00003b32, + 0x00040005,0x0000004f,0x50785069,0x0000736f,0x00030005,0x00000050,0x006c6176,0x00080005, + 0x00000056,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006, + 0x00000056,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x00000056,0x00000001, + 0x69655766,0x73746867,0x00000000,0x00060006,0x00000056,0x00000002,0x73614269,0x736f5065, + 0x00000000,0x000b0005,0x0000005a,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69, + 0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x00000058,0x00765566,0x00040005, + 0x00000059,0x7a695369,0x00000065,0x000c0005,0x0000005d,0x766e6f43,0x46747265,0x446d6f72, + 0x63697665,0x70654465,0x6f546874,0x77656956,0x63617053,0x31662865,0x0000003b,0x00060005, + 0x0000005c,0x76654466,0x44656369,0x68747065,0x00000000,0x00070005,0x00000062,0x706d6f43, + 0x4e657475,0x76286364,0x763b3266,0x003b3269,0x00040005,0x00000060,0x50785066,0x0000736f, + 0x00040005,0x00000061,0x7a695369,0x00000065,0x000b0005,0x00000069,0x56746547,0x53776569, + 0x65636170,0x69736f50,0x6e6f6974,0x32697628,0x3269763b,0x3b31663b,0x00000000,0x00060005, + 0x00000066,0x65695669,0x726f7077,0x736f5074,0x00000000,0x00060005,0x00000067,0x65695669, + 0x726f7077,0x7a695374,0x00000065,0x00060005,0x00000068,0x76654466,0x44656369,0x68747065, + 0x00000000,0x00070005,0x0000006f,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x0000006d,0x00736f70,0x00040005,0x0000006e,0x657a6973,0x00000000,0x00060005, + 0x00000073,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000072,0x00765566, + 0x000b0005,0x00000077,0x6b636150,0x65566465,0x726f7463,0x6c656946,0x746e4564,0x73497972, + 0x6d697250,0x28797261,0x003b3175,0x00050005,0x00000076,0x6b636170,0x6e456465,0x00797274, + 0x00070005,0x00000079,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x00000000,0x00070006, + 0x00000079,0x00000000,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00080006,0x00000079, + 0x00000001,0x67694875,0x69725068,0x7469726f,0x63614679,0x00726f74,0x00080006,0x00000079, + 0x00000002,0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f,0x00050006,0x00000079, + 0x00000003,0x6c615662,0x00006469,0x00060006,0x00000079,0x00000004,0x69725062,0x7972616d, + 0x00000000,0x00060006,0x00000079,0x00000005,0x63655362,0x61646e6f,0x00007972,0x00060006, + 0x00000079,0x00000006,0x506e4962,0x746e6961,0x00006465,0x00060006,0x00000079,0x00000007, + 0x6c655666,0x7469636f,0x00000079,0x00060006,0x00000079,0x00000008,0x67654e62,0x7374754f, + 0x00656469,0x00060006,0x00000079,0x00000009,0x736f5062,0x7374754f,0x00656469,0x00180005, + 0x0000007e,0x61706e55,0x65566b63,0x726f7463,0x6c656946,0x746e4564,0x73656972,0x32757628, + 0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x3266762d,0x2d31662d, + 0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31,0x3131622d,0x0000003b,0x00040005, + 0x0000007c,0x6b636170,0x00006465,0x00050005,0x0000007d,0x6c456676,0x6e656d65,0x00000074, + 0x000c0005,0x00000084,0x706d6f43,0x4d657475,0x706e4976,0x746e6961,0x4c676e69,0x6c657665, + 0x32667628,0x3b31693b,0x3b326976,0x00000000,0x00030005,0x00000081,0x00765566,0x00050005, + 0x00000082,0x70694d69,0x6576654c,0x0000006c,0x00050005,0x00000083,0x78655469,0x657a6953, + 0x00000000,0x00180005,0x00000089,0x64616f4c,0x61706e49,0x65746e69,0x6d614764,0x65694665, + 0x764d646c,0x32667628,0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65,0x7972746e, + 0x3266762d,0x2d31662d,0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31,0x3131622d, + 0x0000003b,0x00030005,0x00000087,0x00765566,0x00050005,0x00000088,0x6c456676,0x6e656d65, + 0x00000074,0x00090005,0x0000008e,0x64616f4c,0x69747345,0x6574616d,0x70654464,0x75286874, + 0x69763b31,0x00003b32,0x00060005,0x0000008c,0x69747365,0x6574616d,0x646e4964,0x00007865, + 0x00050005,0x0000008d,0x6d615369,0x50656c70,0x0000736f,0x00090005,0x00000094,0x706d6f43, + 0x44657475,0x68747065,0x70696c43,0x3b317528,0x3b326676,0x003b3166,0x00060005,0x00000091, + 0x69747365,0x6574616d,0x646e4964,0x00007865,0x00050005,0x00000092,0x53765566,0x6c706d61, + 0x00000065,0x00070005,0x00000093,0x72754366,0x746e6572,0x74706544,0x6d615368,0x00656c70, + 0x000a0005,0x00000098,0x706d6f63,0x44657475,0x636f7369,0x73756c63,0x4d6e6f69,0x286b7361, + 0x3b326976,0x00000000,0x00040005,0x00000097,0x50785069,0x0000736f,0x00040005,0x000000bb, + 0x49466263,0x0000745f,0x00060006,0x000000bb,0x00000000,0x646e6572,0x69537265,0x0000657a, + 0x00060006,0x000000bb,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x000000bb, + 0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x000000bb,0x00000003, + 0x656d6163,0x654e6172,0x00007261,0x00060006,0x000000bb,0x00000004,0x656d6163,0x61466172, + 0x00000072,0x00080006,0x000000bb,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465, + 0x0000657a,0x00050006,0x000000bb,0x00000006,0x65646f4d,0x00000000,0x00050006,0x000000bb, + 0x00000007,0x65736572,0x00000074,0x00080006,0x000000bb,0x00000008,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00060006,0x000000bb,0x00000009,0x746c6564,0x6d695461, + 0x00000065,0x00090006,0x000000bb,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568, + 0x6f746361,0x00000072,0x00080006,0x000000bb,0x0000000b,0x74736964,0x6974726f,0x69466e6f, + 0x53646c65,0x00657a69,0x00080006,0x000000bb,0x0000000c,0x6974706f,0x466c6163,0x53776f6c, + 0x656c6163,0x00000000,0x00090006,0x000000bb,0x0000000d,0x6974706f,0x466c6163,0x42776f6c, + 0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x000000bb,0x0000000e,0x70736964,0x68637461, + 0x67616c46,0x00000073,0x00070006,0x000000bb,0x0000000f,0x5278616d,0x65646e65,0x7a695372, + 0x00000065,0x00090006,0x000000bb,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61, + 0x6f4d7365,0x00006564,0x00070006,0x000000bb,0x00000011,0x496d754e,0x6174736e,0x7365636e, + 0x00000000,0x00090006,0x000000bb,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x73614274,0x00000065,0x00090006,0x000000bb,0x00000013,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x7a695374,0x00000065,0x00070006,0x000000bb,0x00000014,0x75626564,0x72614267, + 0x6f6c6f43,0x00000072,0x000a0006,0x000000bb,0x00000015,0x6b636162,0x66667542,0x72547265, + 0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000000bb,0x00000016,0x4d6e696d, + 0x754c7861,0x616e696d,0x0065636e,0x00060006,0x000000bb,0x00000017,0x6e615466,0x666c6148, + 0x00564f46,0x00050006,0x000000bb,0x00000018,0x6461705f,0x00000031,0x00050006,0x000000bb, + 0x00000019,0x74694a66,0x00726574,0x00080006,0x000000bb,0x0000001a,0x746f4d66,0x566e6f69, + 0x6f746365,0x61635372,0x0000656c,0x00040005,0x000000bd,0x49466263,0x00000000,0x00060005, + 0x000000cc,0x69645f72,0x6574616c,0x65645f64,0x00687470,0x000c0005,0x000000d6,0x65725f72, + 0x736e6f63,0x63757274,0x5f646574,0x74706564,0x72705f68,0x6f697665,0x665f7375,0x656d6172, + 0x00000000,0x00040005,0x000000db,0x61726170,0x0000006d,0x000d0005,0x000000e0,0x65725f72, + 0x736e6f63,0x63757274,0x5f646574,0x74706564,0x6e695f68,0x70726574,0x74616c6f,0x665f6465, + 0x656d6172,0x00000000,0x00040005,0x000000e4,0x61726170,0x0000006d,0x00040005,0x000000e9, + 0x6b636170,0x00586465,0x000a0005,0x000000ea,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e, + 0x726f7463,0x6569665f,0x785f646c,0x00000000,0x00040005,0x000000ef,0x6b636170,0x00596465, + 0x000a0005,0x000000f0,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f, + 0x795f646c,0x00000000,0x00080005,0x000000fa,0x6e695f72,0x6e696170,0x676e6974,0x7279705f, + 0x64696d61,0x00000000,0x00090005,0x00000102,0x6e695f72,0x5f747570,0x74736964,0x6974726f, + 0x665f6e6f,0x646c6569,0x00000000,0x00060005,0x00000106,0x694c5f73,0x7261656e,0x6d616c43, + 0x00000070,0x00080005,0x00000111,0x645f7772,0x636f7369,0x73756c63,0x5f6e6f69,0x6b73616d, + 0x00000000,0x00050005,0x00000118,0x53785066,0x6c706d61,0x00000065,0x00040005,0x00000121, + 0x61746164,0x00000000,0x00040005,0x00000127,0x46785066,0x00636172,0x00040005,0x00000128, + 0x61726170,0x0000006d,0x00070005,0x00000156,0x69766564,0x6f546563,0x77656956,0x74706544, + 0x00000068,0x00070005,0x0000016e,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00030005,0x00000170,0x0000005a,0x00040005,0x00000171,0x61726170,0x0000006d,0x00040005, + 0x00000174,0x63644e66,0x00736f50,0x00040005,0x00000177,0x61726170,0x0000006d,0x00040005, + 0x00000178,0x61726170,0x0000006d,0x00030005,0x0000017b,0x00000058,0x00030005,0x00000184, + 0x00000059,0x00040005,0x000001ce,0x61726170,0x0000006d,0x00040005,0x000001ea,0x61726170, + 0x0000006d,0x00040005,0x000001f0,0x61726170,0x0000006d,0x00060005,0x000001f9,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000001fa,0x61726170,0x0000006d,0x00040005, + 0x000001fc,0x61726170,0x0000006d,0x00040005,0x000001fe,0x6d755366,0x00000000,0x00040005, + 0x000001ff,0x6c6f4366,0x0000726f,0x00060005,0x00000202,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x0000020a,0x66664f69,0x00746573,0x00050005,0x0000020e,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x00000213,0x61726170,0x0000006d,0x00040005,0x00000215, + 0x61726170,0x0000006d,0x00040005,0x00000219,0x6d615366,0x00656c70,0x00040005,0x0000021c, + 0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d,0x00060005,0x0000021f, + 0x69725066,0x7469726f,0x63614679,0x00726f74,0x00060005,0x00000222,0x6c615666,0x764d6469, + 0x74636146,0x0000726f,0x00060005,0x00000227,0x6d615366,0x57656c70,0x68676965,0x00000074, + 0x00050005,0x00000243,0x53785069,0x6c706d61,0x00000065,0x00070005,0x00000249,0x6b636170, + 0x61476465,0x6946656d,0x4d646c65,0x00000076,0x00040005,0x0000024a,0x61726170,0x0000006d, + 0x00040005,0x0000024d,0x61726170,0x0000006d,0x00040005,0x0000024f,0x61726170,0x0000006d, + 0x00050005,0x00000257,0x78655469,0x657a6953,0x00000000,0x00070005,0x00000259,0x506e4966, + 0x746e6961,0x65566465,0x726f7463,0x00000000,0x00050005,0x0000025a,0x70694d69,0x6576654c, + 0x0000006c,0x00040005,0x0000026e,0x61726170,0x0000006d,0x00040005,0x00000282,0x61726170, + 0x0000006d,0x00040005,0x0000028b,0x61726170,0x0000006d,0x00030005,0x00000294,0x00765566, + 0x00070005,0x0000029c,0x73694466,0x74726f74,0x466e6f69,0x646c6569,0x00007655,0x00040005, + 0x0000029d,0x61726170,0x0000006d,0x00080005,0x000002a0,0x73694469,0x74726f74,0x506e6f69, + 0x6c657869,0x7366664f,0x00007465,0x00040005,0x000002ad,0x61726170,0x0000006d,0x00040005, + 0x000002b8,0x61726170,0x0000006d,0x00080005,0x000002bd,0x72754366,0x746e6572,0x74706544, + 0x65695668,0x61705377,0x00006563,0x00040005,0x000002be,0x61726170,0x0000006d,0x00060005, + 0x000002c1,0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000002c3,0x61726170, + 0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00050005,0x000002c7,0x6c694466, + 0x64657461,0x006d7553,0x00040005,0x000002c8,0x70654466,0x00006874,0x00050005,0x000002c9, + 0x69655766,0x53746867,0x00006d75,0x00060005,0x000002ca,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x000002d2,0x66664f69,0x00746573,0x00050005,0x000002d6,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x000002dc,0x61726170,0x0000006d,0x00040005,0x000002de, + 0x61726170,0x0000006d,0x00040005,0x000002e2,0x69655766,0x00746867,0x00070005,0x000002eb, + 0x65725066,0x70654476,0x61536874,0x656c706d,0x00000000,0x00040005,0x000002ec,0x61726170, + 0x0000006d,0x00040005,0x000002ee,0x61726170,0x0000006d,0x00090005,0x000002f1,0x65725066, + 0x61654e76,0x74736572,0x74706544,0x65695668,0x61705377,0x00006563,0x00040005,0x000002f2, + 0x61726170,0x0000006d,0x00050005,0x000002f5,0x70654466,0x69446874,0x00006666,0x00050005, + 0x000002fd,0x616c5066,0x6544656e,0x00687470,0x00040005,0x000002fe,0x61726170,0x0000006d, + 0x00040005,0x00000300,0x61726170,0x0000006d,0x00040005,0x00000304,0x6e654366,0x00726574, + 0x00040005,0x0000030a,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170,0x0000006d, + 0x00040005,0x0000030c,0x61726170,0x0000006d,0x00040005,0x0000030f,0x726f4366,0x0072656e, + 0x00040005,0x00000311,0x61726170,0x0000006d,0x00040005,0x00000312,0x61726170,0x0000006d, + 0x00040005,0x00000313,0x61726170,0x0000006d,0x00070005,0x00000316,0x6c614866,0x65695666, + 0x726f7077,0x64695774,0x00006874,0x00060005,0x0000031a,0x70654466,0x68546874,0x68736572, + 0x00646c6f,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00040005,0x0000031d,0x61726170, + 0x0000006d,0x00040005,0x00000320,0x766f664b,0x00000000,0x00090005,0x00000326,0x71655266, + 0x65726975,0x70654464,0x65536874,0x61726170,0x6e6f6974,0x00000000,0x00070005,0x0000032e, + 0x73655266,0x74756c6f,0x466e6f69,0x6f746361,0x00000072,0x00040005,0x00000334,0x61726170, + 0x0000006d,0x00040005,0x00000336,0x776f5066,0x00007265,0x00040005,0x00000338,0x61726170, + 0x0000006d,0x00040005,0x00000339,0x61726170,0x0000006d,0x00040005,0x0000033a,0x61726170, + 0x0000006d,0x00040005,0x00000354,0x61726170,0x0000006d,0x00060005,0x0000035a,0x6c694466, + 0x64657461,0x74706544,0x00000068,0x00040005,0x0000035b,0x61726170,0x0000006d,0x00050005, + 0x0000035e,0x70654466,0x76556874,0x00000000,0x00080005,0x00000366,0x72754366,0x746e6572, + 0x74706544,0x65695668,0x61705377,0x00006563,0x00040005,0x00000367,0x61726170,0x0000006d, + 0x00040005,0x0000036a,0x656d6167,0x0000764d,0x00040005,0x0000036b,0x61726170,0x0000006d, + 0x00040005,0x0000036d,0x61726170,0x0000006d,0x000b0005,0x00000370,0x70654466,0x6c436874, + 0x6e497069,0x70726574,0x74616c6f,0x6f546465,0x76657250,0x73756f69,0x00000000,0x00040005, + 0x00000375,0x61726170,0x0000006d,0x00040005,0x00000376,0x61726170,0x0000006d,0x00040005, + 0x00000377,0x61726170,0x0000006d,0x000a0005,0x0000037b,0x70654466,0x6c436874,0x6e497069, + 0x70726574,0x74616c6f,0x6f546465,0x72727543,0x00746e65,0x00040005,0x00000380,0x61726170, + 0x0000006d,0x00040005,0x00000381,0x61726170,0x0000006d,0x00040005,0x00000382,0x61726170, + 0x0000006d,0x00070005,0x00000386,0x73694466,0x6c63636f,0x6f697375,0x73614d6e,0x0000006b, + 0x00040005,0x0000038b,0x61726170,0x0000006d,0x00070005,0x00000391,0x63725366,0x69746f4d, + 0x65566e6f,0x726f7463,0x00000000,0x00070005,0x00000395,0x6d615369,0x50656c70,0x7250736f, + 0x6f697665,0x00007375,0x00040005,0x000003a0,0x61726170,0x0000006d,0x00040005,0x000003a2, + 0x61726170,0x0000006d,0x00040005,0x000003a7,0x61726170,0x0000006d,0x00070005,0x000003aa, + 0x6d615369,0x50656c70,0x7543736f,0x6e657272,0x00000074,0x00040005,0x000003b5,0x61726170, + 0x0000006d,0x00040005,0x000003b7,0x61726170,0x0000006d,0x00040005,0x000003bc,0x61726170, + 0x0000006d,0x00040005,0x000003bf,0x61726170,0x0000006d,0x00040005,0x000003c1,0x61726170, + 0x0000006d,0x00080005,0x000003c6,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x00000044,0x00040005,0x000003ca,0x61726170,0x0000006d,0x00030047,0x000000bb,0x00000002, + 0x00050048,0x000000bb,0x00000000,0x00000023,0x00000000,0x00050048,0x000000bb,0x00000001, + 0x00000023,0x00000008,0x00050048,0x000000bb,0x00000002,0x00000023,0x00000010,0x00050048, + 0x000000bb,0x00000003,0x00000023,0x00000018,0x00050048,0x000000bb,0x00000004,0x00000023, + 0x0000001c,0x00050048,0x000000bb,0x00000005,0x00000023,0x00000020,0x00050048,0x000000bb, + 0x00000006,0x00000023,0x00000028,0x00050048,0x000000bb,0x00000007,0x00000023,0x0000002c, + 0x00050048,0x000000bb,0x00000008,0x00000023,0x00000030,0x00050048,0x000000bb,0x00000009, + 0x00000023,0x00000040,0x00050048,0x000000bb,0x0000000a,0x00000023,0x00000044,0x00050048, + 0x000000bb,0x0000000b,0x00000023,0x00000048,0x00050048,0x000000bb,0x0000000c,0x00000023, + 0x00000050,0x00050048,0x000000bb,0x0000000d,0x00000023,0x00000058,0x00050048,0x000000bb, + 0x0000000e,0x00000023,0x0000005c,0x00050048,0x000000bb,0x0000000f,0x00000023,0x00000060, + 0x00050048,0x000000bb,0x00000010,0x00000023,0x00000068,0x00050048,0x000000bb,0x00000011, + 0x00000023,0x0000006c,0x00050048,0x000000bb,0x00000012,0x00000023,0x00000070,0x00050048, + 0x000000bb,0x00000013,0x00000023,0x00000078,0x00050048,0x000000bb,0x00000014,0x00000023, + 0x00000080,0x00050048,0x000000bb,0x00000015,0x00000023,0x0000008c,0x00050048,0x000000bb, + 0x00000016,0x00000023,0x00000090,0x00050048,0x000000bb,0x00000017,0x00000023,0x00000098, + 0x00050048,0x000000bb,0x00000018,0x00000023,0x0000009c,0x00050048,0x000000bb,0x00000019, + 0x00000023,0x000000a0,0x00050048,0x000000bb,0x0000001a,0x00000023,0x000000a8,0x00040047, + 0x000000bd,0x00000021,0x00000008,0x00040047,0x000000bd,0x00000022,0x00000000,0x00040047, + 0x000000cc,0x00000021,0x00000003,0x00040047,0x000000cc,0x00000022,0x00000000,0x00040047, + 0x000000d6,0x00000021,0x00000002,0x00040047,0x000000d6,0x00000022,0x00000000,0x00040047, + 0x000000e0,0x00000021,0x00000004,0x00040047,0x000000e0,0x00000022,0x00000000,0x00040047, + 0x000000ea,0x00000021,0x00000000,0x00040047,0x000000ea,0x00000022,0x00000000,0x00040047, + 0x000000f0,0x00000021,0x00000001,0x00040047,0x000000f0,0x00000022,0x00000000,0x00040047, + 0x000000fa,0x00000021,0x00000005,0x00040047,0x000000fa,0x00000022,0x00000000,0x00040047, + 0x00000102,0x00000021,0x00000006,0x00040047,0x00000102,0x00000022,0x00000000,0x00040047, + 0x00000106,0x00000021,0x000003e8,0x00040047,0x00000106,0x00000022,0x00000000,0x00040047, + 0x00000111,0x00000021,0x00000007,0x00040047,0x00000111,0x00000022,0x00000000,0x00040047, + 0x000003c6,0x0000000b,0x0000001c,0x00040047,0x000003d5,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040020,0x0000000d,0x00000007,0x00000008,0x00040017, + 0x0000000e,0x00000008,0x00000002,0x00040021,0x0000000f,0x0000000e,0x0000000d,0x00060021, + 0x00000013,0x00000008,0x0000000d,0x0000000d,0x0000000d,0x00040021,0x00000019,0x00000008, + 0x0000000d,0x00040020,0x0000001d,0x00000007,0x0000000e,0x00040021,0x0000001e,0x0000000e, + 0x0000001d,0x00040021,0x00000022,0x0000000e,0x00000007,0x00050021,0x00000026,0x00000008, + 0x0000000d,0x0000000d,0x00040015,0x0000002b,0x00000020,0x00000001,0x00040017,0x0000002c, + 0x0000002b,0x00000002,0x00030021,0x0000002d,0x0000002c,0x00040017,0x00000030,0x00000008, + 0x00000004,0x00030021,0x00000031,0x00000030,0x00040020,0x00000034,0x00000007,0x0000002c, + 0x00040021,0x00000035,0x00000008,0x00000034,0x00040017,0x0000003f,0x00000006,0x00000002, + 0x00040021,0x00000040,0x0000003f,0x00000034,0x00040020,0x00000044,0x00000007,0x0000002b, + 0x00040020,0x00000045,0x00000007,0x0000003f,0x00050021,0x00000046,0x00000030,0x00000044, + 0x00000045,0x00050021,0x0000004e,0x00000002,0x00000034,0x0000001d,0x0004002b,0x00000006, + 0x00000053,0x00000004,0x0004001c,0x00000054,0x0000002c,0x00000053,0x0004001c,0x00000055, + 0x00000008,0x00000053,0x0005001e,0x00000056,0x00000054,0x00000055,0x0000002c,0x00050021, + 0x00000057,0x00000056,0x0000001d,0x00000034,0x00050021,0x0000005f,0x0000000e,0x0000001d, + 0x00000034,0x00040017,0x00000064,0x00000008,0x00000003,0x00060021,0x00000065,0x00000064, + 0x00000034,0x00000034,0x0000000d,0x00020014,0x0000006b,0x00050021,0x0000006c,0x0000006b, + 0x00000034,0x00000034,0x00040021,0x00000071,0x0000006b,0x0000001d,0x00040021,0x00000075, + 0x0000006b,0x00000007,0x000c001e,0x00000079,0x0000000e,0x00000008,0x00000008,0x0000006b, + 0x0000006b,0x0000006b,0x0000006b,0x00000008,0x0000006b,0x0000006b,0x00040020,0x0000007a, + 0x00000007,0x00000079,0x00050021,0x0000007b,0x00000002,0x00000045,0x0000007a,0x00060021, + 0x00000080,0x00000030,0x0000001d,0x0000002b,0x0000002c,0x00050021,0x00000086,0x00000002, + 0x0000001d,0x0000007a,0x00050021,0x0000008b,0x00000008,0x00000007,0x00000034,0x00060021, + 0x00000090,0x00000008,0x00000007,0x0000001d,0x0000000d,0x00040021,0x00000096,0x00000002, + 0x00000034,0x0004002b,0x00000008,0x000000a9,0x00000000,0x0004002b,0x00000008,0x000000aa, + 0x3f800000,0x001d001e,0x000000bb,0x0000002c,0x0000002c,0x0000000e,0x00000008,0x00000008, + 0x0000002c,0x0000002b,0x0000002b,0x00000030,0x00000008,0x0000002b,0x0000002c,0x0000000e, + 0x0000002b,0x00000006,0x0000002c,0x0000002b,0x0000002b,0x0000002c,0x0000002c,0x00000064, + 0x00000006,0x0000000e,0x00000008,0x0000002b,0x0000000e,0x0000000e,0x00040020,0x000000bc, + 0x00000002,0x000000bb,0x0004003b,0x000000bc,0x000000bd,0x00000002,0x0004002b,0x0000002b, + 0x000000be,0x00000000,0x00040020,0x000000bf,0x00000002,0x0000002c,0x0004002b,0x0000002b, + 0x000000c4,0x00000008,0x00040020,0x000000c5,0x00000002,0x00000030,0x00090019,0x000000ca, + 0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x000000cb,0x00000000,0x000000ca,0x0004003b,0x000000cb,0x000000cc,0x00000000,0x0004002b, + 0x00000006,0x000000d0,0x00000000,0x00090019,0x000000d4,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000d5,0x00000000,0x000000d4, + 0x0004003b,0x000000d5,0x000000d6,0x00000000,0x00040017,0x000000d9,0x00000006,0x00000004, + 0x0004003b,0x000000d5,0x000000e0,0x00000000,0x0004003b,0x000000d5,0x000000ea,0x00000000, + 0x0004003b,0x000000d5,0x000000f0,0x00000000,0x0004003b,0x000000cb,0x000000fa,0x00000000, + 0x0004003b,0x000000cb,0x00000102,0x00000000,0x0002001a,0x00000104,0x00040020,0x00000105, + 0x00000000,0x00000104,0x0004003b,0x00000105,0x00000106,0x00000000,0x0003001b,0x00000108, + 0x000000ca,0x00090019,0x0000010f,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000000d,0x00040020,0x00000110,0x00000000,0x0000010f,0x0004003b,0x00000110, + 0x00000111,0x00000000,0x0004002b,0x00000008,0x0000011d,0x3f000000,0x0005002c,0x0000000e, + 0x0000011e,0x0000011d,0x0000011d,0x00040020,0x00000120,0x00000007,0x00000056,0x0004002b, + 0x0000002b,0x00000122,0x00000002,0x0005002c,0x0000002c,0x0000012b,0x000000be,0x000000be, + 0x0004002b,0x0000002b,0x0000012d,0x00000001,0x0005002c,0x0000002c,0x0000012e,0x0000012d, + 0x000000be,0x0005002c,0x0000002c,0x00000130,0x000000be,0x0000012d,0x0004002b,0x0000002b, + 0x00000132,0x00000003,0x0005002c,0x0000002c,0x00000133,0x0000012d,0x0000012d,0x0004002b, + 0x00000006,0x00000138,0x00000001,0x00040020,0x00000155,0x00000007,0x00000030,0x0004002b, + 0x00000008,0x00000165,0x40000000,0x0004002b,0x00000008,0x00000166,0xc0000000,0x0005002c, + 0x0000000e,0x00000167,0x00000165,0x00000166,0x0004002b,0x00000008,0x00000169,0xbf800000, + 0x0005002c,0x0000000e,0x0000016a,0x00000169,0x000000aa,0x0004002b,0x00000006,0x0000017c, + 0x00000002,0x0004002b,0x00000006,0x00000185,0x00000003,0x00040017,0x00000197,0x0000006b, + 0x00000002,0x0004002b,0x00000006,0x000001b4,0x80000000,0x0004002b,0x00000006,0x000001bb, + 0x00000015,0x0004002b,0x00000006,0x000001bd,0x000003ff,0x0004002b,0x00000008,0x000001c0, + 0x447fc000,0x0004002b,0x00000006,0x000001c5,0x00000010,0x0004002b,0x00000006,0x000001c7, + 0x0000001f,0x0004002b,0x00000008,0x000001ca,0x41f80000,0x0004002b,0x0000002b,0x000001cd, + 0x00000004,0x00040020,0x000001d2,0x00000007,0x0000006b,0x0004002b,0x0000002b,0x000001d8, + 0x00000005,0x0004002b,0x0000002b,0x000001f6,0x00000006,0x0003002a,0x0000006b,0x000001f7, + 0x0007002c,0x00000030,0x00000200,0x000000a9,0x000000a9,0x000000a9,0x000000a9,0x0004002b, + 0x0000002b,0x00000261,0x0000000b,0x00030029,0x0000006b,0x0000027c,0x0004002b,0x0000002b, + 0x00000286,0x00000009,0x0004002b,0x0000002b,0x0000028f,0x00000007,0x0004002b,0x00000008, + 0x000002e7,0x3a83126f,0x00040020,0x00000303,0x00000007,0x00000064,0x0004002b,0x00000008, + 0x00000327,0x3765d90d,0x0004002b,0x00000008,0x00000332,0x4509ae84,0x0004002b,0x00000008, + 0x00000337,0x40400000,0x0005002c,0x0000000e,0x0000038e,0x000000a9,0x000000a9,0x0005002c, + 0x0000000e,0x0000038f,0x000000aa,0x000000aa,0x00040017,0x000003c4,0x00000006,0x00000003, + 0x00040020,0x000003c5,0x00000001,0x000003c4,0x0004003b,0x000003c5,0x000003c6,0x00000001, + 0x0004002b,0x00000008,0x000003cc,0x387fda40,0x0004002b,0x00000008,0x000003cd,0x477fe000, + 0x0004002b,0x00000008,0x000003ce,0x37801002,0x0004002b,0x00000008,0x000003cf,0x7f7fffff, + 0x0004002b,0x00000008,0x000003d0,0x00800000,0x0004002b,0x00000006,0x000003d1,0x00000020, + 0x0004002b,0x00000006,0x000003d2,0x00000005,0x0004002b,0x00000006,0x000003d3,0x0000000a, + 0x0004002b,0x00000006,0x000003d4,0x00000008,0x0006002c,0x000003c4,0x000003d5,0x000003d4, + 0x000003d4,0x00000138,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000034,0x000003ca,0x00000007,0x0004003d,0x000003c4,0x000003c7, + 0x000003c6,0x0007004f,0x0000003f,0x000003c8,0x000003c7,0x000003c7,0x00000000,0x00000001, + 0x0004007c,0x0000002c,0x000003c9,0x000003c8,0x0003003e,0x000003ca,0x000003c9,0x00050039, + 0x00000002,0x000003cb,0x00000098,0x000003ca,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003d,0x00000006,0x0000009a,0x0000000a,0x0004007c,0x00000008,0x0000009b,0x0000009a, + 0x000200fe,0x0000009b,0x00010038,0x00050036,0x0000000e,0x00000011,0x00000000,0x0000000f, + 0x00030037,0x0000000d,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000008,0x0000009e, + 0x00000010,0x00050050,0x0000000e,0x0000009f,0x0000009e,0x0000009e,0x000200fe,0x0000009f, + 0x00010038,0x00050036,0x00000008,0x00000017,0x00000000,0x00000013,0x00030037,0x0000000d, + 0x00000014,0x00030037,0x0000000d,0x00000015,0x00030037,0x0000000d,0x00000016,0x000200f8, + 0x00000018,0x0004003d,0x00000008,0x000000a2,0x00000014,0x0004003d,0x00000008,0x000000a3, + 0x00000015,0x0004003d,0x00000008,0x000000a4,0x00000016,0x0008000c,0x00000008,0x000000a5, + 0x00000001,0x0000002e,0x000000a2,0x000000a3,0x000000a4,0x000200fe,0x000000a5,0x00010038, + 0x00050036,0x00000008,0x0000001b,0x00000000,0x00000019,0x00030037,0x0000000d,0x0000001a, + 0x000200f8,0x0000001c,0x0004003d,0x00000008,0x000000a8,0x0000001a,0x0008000c,0x00000008, + 0x000000ab,0x00000001,0x0000002b,0x000000a8,0x000000a9,0x000000aa,0x000200fe,0x000000ab, + 0x00010038,0x00050036,0x0000000e,0x00000020,0x00000000,0x0000001e,0x00030037,0x0000001d, + 0x0000001f,0x000200f8,0x00000021,0x0004003d,0x0000000e,0x000000ae,0x0000001f,0x0006000c, + 0x0000000e,0x000000af,0x00000001,0x0000000a,0x000000ae,0x000200fe,0x000000af,0x00010038, + 0x00050036,0x0000000e,0x00000024,0x00000000,0x00000022,0x00030037,0x00000007,0x00000023, + 0x000200f8,0x00000025,0x0004003d,0x00000006,0x000000b2,0x00000023,0x0006000c,0x0000000e, + 0x000000b3,0x00000001,0x0000003e,0x000000b2,0x000200fe,0x000000b3,0x00010038,0x00050036, + 0x00000008,0x00000029,0x00000000,0x00000026,0x00030037,0x0000000d,0x00000027,0x00030037, + 0x0000000d,0x00000028,0x000200f8,0x0000002a,0x0004003d,0x00000008,0x000000b6,0x00000027, + 0x0004003d,0x00000008,0x000000b7,0x00000028,0x0007000c,0x00000008,0x000000b8,0x00000001, + 0x00000025,0x000000b6,0x000000b7,0x000200fe,0x000000b8,0x00010038,0x00050036,0x0000002c, + 0x0000002e,0x00000000,0x0000002d,0x000200f8,0x0000002f,0x00050041,0x000000bf,0x000000c0, + 0x000000bd,0x000000be,0x0004003d,0x0000002c,0x000000c1,0x000000c0,0x000200fe,0x000000c1, + 0x00010038,0x00050036,0x00000030,0x00000032,0x00000000,0x00000031,0x000200f8,0x00000033, + 0x00050041,0x000000c5,0x000000c6,0x000000bd,0x000000c4,0x0004003d,0x00000030,0x000000c7, + 0x000000c6,0x000200fe,0x000000c7,0x00010038,0x00050036,0x00000008,0x00000037,0x00000000, + 0x00000035,0x00030037,0x00000034,0x00000036,0x000200f8,0x00000038,0x0004003d,0x000000ca, + 0x000000cd,0x000000cc,0x0004003d,0x0000002c,0x000000ce,0x00000036,0x0007005f,0x00000030, + 0x000000cf,0x000000cd,0x000000ce,0x00000002,0x000000be,0x00050051,0x00000008,0x000000d1, + 0x000000cf,0x00000000,0x000200fe,0x000000d1,0x00010038,0x00050036,0x00000008,0x0000003a, + 0x00000000,0x00000035,0x00030037,0x00000034,0x00000039,0x000200f8,0x0000003b,0x0004003b, + 0x00000007,0x000000db,0x00000007,0x0004003d,0x000000d4,0x000000d7,0x000000d6,0x0004003d, + 0x0000002c,0x000000d8,0x00000039,0x0007005f,0x000000d9,0x000000da,0x000000d7,0x000000d8, + 0x00000002,0x000000be,0x00050051,0x00000006,0x000000dc,0x000000da,0x00000000,0x0003003e, + 0x000000db,0x000000dc,0x00050039,0x00000008,0x000000dd,0x0000000b,0x000000db,0x000200fe, + 0x000000dd,0x00010038,0x00050036,0x00000008,0x0000003d,0x00000000,0x00000035,0x00030037, + 0x00000034,0x0000003c,0x000200f8,0x0000003e,0x0004003b,0x00000007,0x000000e4,0x00000007, + 0x0004003d,0x000000d4,0x000000e1,0x000000e0,0x0004003d,0x0000002c,0x000000e2,0x0000003c, + 0x0007005f,0x000000d9,0x000000e3,0x000000e1,0x000000e2,0x00000002,0x000000be,0x00050051, + 0x00000006,0x000000e5,0x000000e3,0x00000000,0x0003003e,0x000000e4,0x000000e5,0x00050039, + 0x00000008,0x000000e6,0x0000000b,0x000000e4,0x000200fe,0x000000e6,0x00010038,0x00050036, + 0x0000003f,0x00000042,0x00000000,0x00000040,0x00030037,0x00000034,0x00000041,0x000200f8, + 0x00000043,0x0004003b,0x00000007,0x000000e9,0x00000007,0x0004003b,0x00000007,0x000000ef, + 0x00000007,0x0004003d,0x000000d4,0x000000eb,0x000000ea,0x0004003d,0x0000002c,0x000000ec, + 0x00000041,0x0007005f,0x000000d9,0x000000ed,0x000000eb,0x000000ec,0x00000002,0x000000be, + 0x00050051,0x00000006,0x000000ee,0x000000ed,0x00000000,0x0003003e,0x000000e9,0x000000ee, + 0x0004003d,0x000000d4,0x000000f1,0x000000f0,0x0004003d,0x0000002c,0x000000f2,0x00000041, + 0x0007005f,0x000000d9,0x000000f3,0x000000f1,0x000000f2,0x00000002,0x000000be,0x00050051, + 0x00000006,0x000000f4,0x000000f3,0x00000000,0x0003003e,0x000000ef,0x000000f4,0x0004003d, + 0x00000006,0x000000f5,0x000000e9,0x0004003d,0x00000006,0x000000f6,0x000000ef,0x00050050, + 0x0000003f,0x000000f7,0x000000f5,0x000000f6,0x000200fe,0x000000f7,0x00010038,0x00050036, + 0x00000030,0x00000049,0x00000000,0x00000046,0x00030037,0x00000044,0x00000047,0x00030037, + 0x00000045,0x00000048,0x000200f8,0x0000004a,0x0004003d,0x000000ca,0x000000fb,0x000000fa, + 0x0004003d,0x0000003f,0x000000fc,0x00000048,0x0004007c,0x0000002c,0x000000fd,0x000000fc, + 0x0004003d,0x0000002b,0x000000fe,0x00000047,0x0007005f,0x00000030,0x000000ff,0x000000fb, + 0x000000fd,0x00000002,0x000000fe,0x000200fe,0x000000ff,0x00010038,0x00050036,0x0000000e, + 0x0000004c,0x00000000,0x0000001e,0x00030037,0x0000001d,0x0000004b,0x000200f8,0x0000004d, + 0x0004003d,0x000000ca,0x00000103,0x00000102,0x0004003d,0x00000104,0x00000107,0x00000106, + 0x00050056,0x00000108,0x00000109,0x00000103,0x00000107,0x0004003d,0x0000000e,0x0000010a, + 0x0000004b,0x00070058,0x00000030,0x0000010b,0x00000109,0x0000010a,0x00000002,0x000000a9, + 0x0007004f,0x0000000e,0x0000010c,0x0000010b,0x0000010b,0x00000000,0x00000001,0x000200fe, + 0x0000010c,0x00010038,0x00050036,0x00000002,0x00000051,0x00000000,0x0000004e,0x00030037, + 0x00000034,0x0000004f,0x00030037,0x0000001d,0x00000050,0x000200f8,0x00000052,0x0004003d, + 0x0000010f,0x00000112,0x00000111,0x0004003d,0x0000002c,0x00000113,0x0000004f,0x0004003d, + 0x0000000e,0x00000114,0x00000050,0x00050051,0x00000008,0x00000115,0x00000114,0x00000000, + 0x00050051,0x00000008,0x00000116,0x00000114,0x00000001,0x00070050,0x00000030,0x00000117, + 0x00000115,0x00000116,0x000000a9,0x000000a9,0x00040063,0x00000112,0x00000113,0x00000117, + 0x000100fd,0x00010038,0x00050036,0x00000056,0x0000005a,0x00000000,0x00000057,0x00030037, + 0x0000001d,0x00000058,0x00030037,0x00000034,0x00000059,0x000200f8,0x0000005b,0x0004003b, + 0x0000001d,0x00000118,0x00000007,0x0004003b,0x00000120,0x00000121,0x00000007,0x0004003b, + 0x0000001d,0x00000127,0x00000007,0x0004003b,0x0000001d,0x00000128,0x00000007,0x0004003d, + 0x0000000e,0x00000119,0x00000058,0x0004003d,0x0000002c,0x0000011a,0x00000059,0x0004006f, + 0x0000000e,0x0000011b,0x0000011a,0x00050085,0x0000000e,0x0000011c,0x00000119,0x0000011b, + 0x00050083,0x0000000e,0x0000011f,0x0000011c,0x0000011e,0x0003003e,0x00000118,0x0000011f, + 0x0004003d,0x0000000e,0x00000123,0x00000118,0x0006000c,0x0000000e,0x00000124,0x00000001, + 0x00000008,0x00000123,0x0004006e,0x0000002c,0x00000125,0x00000124,0x00050041,0x00000034, + 0x00000126,0x00000121,0x00000122,0x0003003e,0x00000126,0x00000125,0x0004003d,0x0000000e, + 0x00000129,0x00000118,0x0003003e,0x00000128,0x00000129,0x00050039,0x0000000e,0x0000012a, + 0x00000020,0x00000128,0x0003003e,0x00000127,0x0000012a,0x00060041,0x00000034,0x0000012c, + 0x00000121,0x000000be,0x000000be,0x0003003e,0x0000012c,0x0000012b,0x00060041,0x00000034, + 0x0000012f,0x00000121,0x000000be,0x0000012d,0x0003003e,0x0000012f,0x0000012e,0x00060041, + 0x00000034,0x00000131,0x00000121,0x000000be,0x00000122,0x0003003e,0x00000131,0x00000130, + 0x00060041,0x00000034,0x00000134,0x00000121,0x000000be,0x00000132,0x0003003e,0x00000134, + 0x00000133,0x00050041,0x0000000d,0x00000135,0x00000127,0x000000d0,0x0004003d,0x00000008, + 0x00000136,0x00000135,0x00050083,0x00000008,0x00000137,0x000000aa,0x00000136,0x00050041, + 0x0000000d,0x00000139,0x00000127,0x00000138,0x0004003d,0x00000008,0x0000013a,0x00000139, + 0x00050083,0x00000008,0x0000013b,0x000000aa,0x0000013a,0x00050085,0x00000008,0x0000013c, + 0x00000137,0x0000013b,0x00060041,0x0000000d,0x0000013d,0x00000121,0x0000012d,0x000000be, + 0x0003003e,0x0000013d,0x0000013c,0x00050041,0x0000000d,0x0000013e,0x00000127,0x000000d0, + 0x0004003d,0x00000008,0x0000013f,0x0000013e,0x00050041,0x0000000d,0x00000140,0x00000127, + 0x00000138,0x0004003d,0x00000008,0x00000141,0x00000140,0x00050083,0x00000008,0x00000142, + 0x000000aa,0x00000141,0x00050085,0x00000008,0x00000143,0x0000013f,0x00000142,0x00060041, + 0x0000000d,0x00000144,0x00000121,0x0000012d,0x0000012d,0x0003003e,0x00000144,0x00000143, + 0x00050041,0x0000000d,0x00000145,0x00000127,0x000000d0,0x0004003d,0x00000008,0x00000146, + 0x00000145,0x00050083,0x00000008,0x00000147,0x000000aa,0x00000146,0x00050041,0x0000000d, + 0x00000148,0x00000127,0x00000138,0x0004003d,0x00000008,0x00000149,0x00000148,0x00050085, + 0x00000008,0x0000014a,0x00000147,0x00000149,0x00060041,0x0000000d,0x0000014b,0x00000121, + 0x0000012d,0x00000122,0x0003003e,0x0000014b,0x0000014a,0x00050041,0x0000000d,0x0000014c, + 0x00000127,0x000000d0,0x0004003d,0x00000008,0x0000014d,0x0000014c,0x00050041,0x0000000d, + 0x0000014e,0x00000127,0x00000138,0x0004003d,0x00000008,0x0000014f,0x0000014e,0x00050085, + 0x00000008,0x00000150,0x0000014d,0x0000014f,0x00060041,0x0000000d,0x00000151,0x00000121, + 0x0000012d,0x00000132,0x0003003e,0x00000151,0x00000150,0x0004003d,0x00000056,0x00000152, + 0x00000121,0x000200fe,0x00000152,0x00010038,0x00050036,0x00000008,0x0000005d,0x00000000, + 0x00000019,0x00030037,0x0000000d,0x0000005c,0x000200f8,0x0000005e,0x0004003b,0x00000155, + 0x00000156,0x00000007,0x00040039,0x00000030,0x00000157,0x00000032,0x0003003e,0x00000156, + 0x00000157,0x00050041,0x0000000d,0x00000158,0x00000156,0x00000138,0x0004003d,0x00000008, + 0x00000159,0x00000158,0x0004003d,0x00000008,0x0000015a,0x0000005c,0x00050041,0x0000000d, + 0x0000015b,0x00000156,0x000000d0,0x0004003d,0x00000008,0x0000015c,0x0000015b,0x00050083, + 0x00000008,0x0000015d,0x0000015a,0x0000015c,0x00050088,0x00000008,0x0000015e,0x00000159, + 0x0000015d,0x000200fe,0x0000015e,0x00010038,0x00050036,0x0000000e,0x00000062,0x00000000, + 0x0000005f,0x00030037,0x0000001d,0x00000060,0x00030037,0x00000034,0x00000061,0x000200f8, + 0x00000063,0x0004003d,0x0000000e,0x00000161,0x00000060,0x0004003d,0x0000002c,0x00000162, + 0x00000061,0x0004006f,0x0000000e,0x00000163,0x00000162,0x00050088,0x0000000e,0x00000164, + 0x00000161,0x00000163,0x00050085,0x0000000e,0x00000168,0x00000164,0x00000167,0x00050081, + 0x0000000e,0x0000016b,0x00000168,0x0000016a,0x000200fe,0x0000016b,0x00010038,0x00050036, + 0x00000064,0x00000069,0x00000000,0x00000065,0x00030037,0x00000034,0x00000066,0x00030037, + 0x00000034,0x00000067,0x00030037,0x0000000d,0x00000068,0x000200f8,0x0000006a,0x0004003b, + 0x00000155,0x0000016e,0x00000007,0x0004003b,0x0000000d,0x00000170,0x00000007,0x0004003b, + 0x0000000d,0x00000171,0x00000007,0x0004003b,0x0000001d,0x00000174,0x00000007,0x0004003b, + 0x0000001d,0x00000177,0x00000007,0x0004003b,0x00000034,0x00000178,0x00000007,0x0004003b, + 0x0000000d,0x0000017b,0x00000007,0x0004003b,0x0000000d,0x00000184,0x00000007,0x00040039, + 0x00000030,0x0000016f,0x00000032,0x0003003e,0x0000016e,0x0000016f,0x0004003d,0x00000008, + 0x00000172,0x00000068,0x0003003e,0x00000171,0x00000172,0x00050039,0x00000008,0x00000173, + 0x0000005d,0x00000171,0x0003003e,0x00000170,0x00000173,0x0004003d,0x0000002c,0x00000175, + 0x00000066,0x0004006f,0x0000000e,0x00000176,0x00000175,0x0003003e,0x00000177,0x00000176, + 0x0004003d,0x0000002c,0x00000179,0x00000067,0x0003003e,0x00000178,0x00000179,0x00060039, + 0x0000000e,0x0000017a,0x00000062,0x00000177,0x00000178,0x0003003e,0x00000174,0x0000017a, + 0x00050041,0x0000000d,0x0000017d,0x0000016e,0x0000017c,0x0004003d,0x00000008,0x0000017e, + 0x0000017d,0x00050041,0x0000000d,0x0000017f,0x00000174,0x000000d0,0x0004003d,0x00000008, + 0x00000180,0x0000017f,0x00050085,0x00000008,0x00000181,0x0000017e,0x00000180,0x0004003d, + 0x00000008,0x00000182,0x00000170,0x00050085,0x00000008,0x00000183,0x00000181,0x00000182, + 0x0003003e,0x0000017b,0x00000183,0x00050041,0x0000000d,0x00000186,0x0000016e,0x00000185, + 0x0004003d,0x00000008,0x00000187,0x00000186,0x00050041,0x0000000d,0x00000188,0x00000174, + 0x00000138,0x0004003d,0x00000008,0x00000189,0x00000188,0x00050085,0x00000008,0x0000018a, + 0x00000187,0x00000189,0x0004003d,0x00000008,0x0000018b,0x00000170,0x00050085,0x00000008, + 0x0000018c,0x0000018a,0x0000018b,0x0003003e,0x00000184,0x0000018c,0x0004003d,0x00000008, + 0x0000018d,0x0000017b,0x0004003d,0x00000008,0x0000018e,0x00000184,0x0004003d,0x00000008, + 0x0000018f,0x00000170,0x00060050,0x00000064,0x00000190,0x0000018d,0x0000018e,0x0000018f, + 0x000200fe,0x00000190,0x00010038,0x00050036,0x0000006b,0x0000006f,0x00000000,0x0000006c, + 0x00030037,0x00000034,0x0000006d,0x00030037,0x00000034,0x0000006e,0x000200f8,0x00000070, + 0x0004003d,0x0000002c,0x00000193,0x0000006d,0x0004007c,0x0000003f,0x00000194,0x00000193, + 0x0004003d,0x0000002c,0x00000195,0x0000006e,0x0004007c,0x0000003f,0x00000196,0x00000195, + 0x000500b0,0x00000197,0x00000198,0x00000194,0x00000196,0x0004009b,0x0000006b,0x00000199, + 0x00000198,0x000200fe,0x00000199,0x00010038,0x00050036,0x0000006b,0x00000073,0x00000000, + 0x00000071,0x00030037,0x0000001d,0x00000072,0x000200f8,0x00000074,0x00050041,0x0000000d, + 0x0000019c,0x00000072,0x000000d0,0x0004003d,0x00000008,0x0000019d,0x0000019c,0x000500ba, + 0x0000006b,0x0000019e,0x0000019d,0x000000a9,0x000300f7,0x000001a0,0x00000000,0x000400fa, + 0x0000019e,0x0000019f,0x000001a0,0x000200f8,0x0000019f,0x00050041,0x0000000d,0x000001a1, + 0x00000072,0x000000d0,0x0004003d,0x00000008,0x000001a2,0x000001a1,0x000500b8,0x0000006b, + 0x000001a3,0x000001a2,0x000000aa,0x000200f9,0x000001a0,0x000200f8,0x000001a0,0x000700f5, + 0x0000006b,0x000001a4,0x0000019e,0x00000074,0x000001a3,0x0000019f,0x000300f7,0x000001a6, + 0x00000000,0x000400fa,0x000001a4,0x000001a5,0x000001a6,0x000200f8,0x000001a5,0x00050041, + 0x0000000d,0x000001a7,0x00000072,0x00000138,0x0004003d,0x00000008,0x000001a8,0x000001a7, + 0x000500ba,0x0000006b,0x000001a9,0x000001a8,0x000000a9,0x000300f7,0x000001ab,0x00000000, + 0x000400fa,0x000001a9,0x000001aa,0x000001ab,0x000200f8,0x000001aa,0x00050041,0x0000000d, + 0x000001ac,0x00000072,0x00000138,0x0004003d,0x00000008,0x000001ad,0x000001ac,0x000500b8, + 0x0000006b,0x000001ae,0x000001ad,0x000000aa,0x000200f9,0x000001ab,0x000200f8,0x000001ab, + 0x000700f5,0x0000006b,0x000001af,0x000001a9,0x000001a5,0x000001ae,0x000001aa,0x000200f9, + 0x000001a6,0x000200f8,0x000001a6,0x000700f5,0x0000006b,0x000001b0,0x000001a4,0x000001a0, + 0x000001af,0x000001ab,0x000200fe,0x000001b0,0x00010038,0x00050036,0x0000006b,0x00000077, + 0x00000000,0x00000075,0x00030037,0x00000007,0x00000076,0x000200f8,0x00000078,0x0004003d, + 0x00000006,0x000001b3,0x00000076,0x000500c7,0x00000006,0x000001b5,0x000001b3,0x000001b4, + 0x000500ab,0x0000006b,0x000001b6,0x000001b5,0x000000d0,0x000200fe,0x000001b6,0x00010038, + 0x00050036,0x00000002,0x0000007e,0x00000000,0x0000007b,0x00030037,0x00000045,0x0000007c, + 0x00030037,0x0000007a,0x0000007d,0x000200f8,0x0000007f,0x0004003b,0x00000007,0x000001ce, + 0x00000007,0x0004003b,0x00000007,0x000001ea,0x00000007,0x0004003b,0x00000007,0x000001f0, + 0x00000007,0x00050041,0x00000007,0x000001b9,0x0000007c,0x000000d0,0x0004003d,0x00000006, + 0x000001ba,0x000001b9,0x000500c2,0x00000006,0x000001bc,0x000001ba,0x000001bb,0x000500c7, + 0x00000006,0x000001be,0x000001bc,0x000001bd,0x00040070,0x00000008,0x000001bf,0x000001be, + 0x00050088,0x00000008,0x000001c1,0x000001bf,0x000001c0,0x00050041,0x0000000d,0x000001c2, + 0x0000007d,0x0000012d,0x0003003e,0x000001c2,0x000001c1,0x00050041,0x00000007,0x000001c3, + 0x0000007c,0x000000d0,0x0004003d,0x00000006,0x000001c4,0x000001c3,0x000500c2,0x00000006, + 0x000001c6,0x000001c4,0x000001c5,0x000500c7,0x00000006,0x000001c8,0x000001c6,0x000001c7, + 0x00040070,0x00000008,0x000001c9,0x000001c8,0x00050088,0x00000008,0x000001cb,0x000001c9, + 0x000001ca,0x00050041,0x0000000d,0x000001cc,0x0000007d,0x00000122,0x0003003e,0x000001cc, + 0x000001cb,0x00050041,0x00000007,0x000001cf,0x0000007c,0x000000d0,0x0004003d,0x00000006, + 0x000001d0,0x000001cf,0x0003003e,0x000001ce,0x000001d0,0x00050039,0x0000006b,0x000001d1, + 0x00000077,0x000001ce,0x00050041,0x000001d2,0x000001d3,0x0000007d,0x000001cd,0x0003003e, + 0x000001d3,0x000001d1,0x00050041,0x0000000d,0x000001d4,0x0000007d,0x0000012d,0x0004003d, + 0x00000008,0x000001d5,0x000001d4,0x000500ba,0x0000006b,0x000001d6,0x000001d5,0x000000a9, + 0x00050041,0x000001d2,0x000001d7,0x0000007d,0x00000132,0x0003003e,0x000001d7,0x000001d6, + 0x00050041,0x000001d2,0x000001d9,0x0000007d,0x00000132,0x0004003d,0x0000006b,0x000001da, + 0x000001d9,0x000300f7,0x000001dc,0x00000000,0x000400fa,0x000001da,0x000001db,0x000001dc, + 0x000200f8,0x000001db,0x00050041,0x000001d2,0x000001dd,0x0000007d,0x000001cd,0x0004003d, + 0x0000006b,0x000001de,0x000001dd,0x000400a8,0x0000006b,0x000001df,0x000001de,0x000200f9, + 0x000001dc,0x000200f8,0x000001dc,0x000700f5,0x0000006b,0x000001e0,0x000001da,0x0000007f, + 0x000001df,0x000001db,0x00050041,0x000001d2,0x000001e1,0x0000007d,0x000001d8,0x0003003e, + 0x000001e1,0x000001e0,0x00050041,0x000001d2,0x000001e2,0x0000007d,0x000001d8,0x0004003d, + 0x0000006b,0x000001e3,0x000001e2,0x000300f7,0x000001e5,0x00000000,0x000400fa,0x000001e3, + 0x000001e4,0x000001e5,0x000200f8,0x000001e4,0x00050041,0x0000000d,0x000001e6,0x0000007d, + 0x0000012d,0x0004003d,0x00000008,0x000001e7,0x000001e6,0x00050083,0x00000008,0x000001e8, + 0x000000aa,0x000001e7,0x00050041,0x0000000d,0x000001e9,0x0000007d,0x0000012d,0x0003003e, + 0x000001e9,0x000001e8,0x000200f9,0x000001e5,0x000200f8,0x000001e5,0x00050041,0x00000007, + 0x000001eb,0x0000007c,0x000000d0,0x0004003d,0x00000006,0x000001ec,0x000001eb,0x0003003e, + 0x000001ea,0x000001ec,0x00050039,0x0000000e,0x000001ed,0x00000024,0x000001ea,0x00050051, + 0x00000008,0x000001ee,0x000001ed,0x00000000,0x00060041,0x0000000d,0x000001ef,0x0000007d, + 0x000000be,0x000000d0,0x0003003e,0x000001ef,0x000001ee,0x00050041,0x00000007,0x000001f1, + 0x0000007c,0x00000138,0x0004003d,0x00000006,0x000001f2,0x000001f1,0x0003003e,0x000001f0, + 0x000001f2,0x00050039,0x0000000e,0x000001f3,0x00000024,0x000001f0,0x00050051,0x00000008, + 0x000001f4,0x000001f3,0x00000000,0x00060041,0x0000000d,0x000001f5,0x0000007d,0x000000be, + 0x00000138,0x0003003e,0x000001f5,0x000001f4,0x00050041,0x000001d2,0x000001f8,0x0000007d, + 0x000001f6,0x0003003e,0x000001f8,0x000001f7,0x000100fd,0x00010038,0x00050036,0x00000030, + 0x00000084,0x00000000,0x00000080,0x00030037,0x0000001d,0x00000081,0x00030037,0x0000002b, + 0x00000082,0x00030037,0x0000002c,0x00000083,0x000200f8,0x00000085,0x0004003b,0x00000120, + 0x000001f9,0x00000007,0x0004003b,0x0000001d,0x000001fa,0x00000007,0x0004003b,0x00000034, + 0x000001fc,0x00000007,0x0004003b,0x0000000d,0x000001fe,0x00000007,0x0004003b,0x00000155, + 0x000001ff,0x00000007,0x0004003b,0x00000044,0x00000202,0x00000007,0x0004003b,0x00000034, + 0x0000020a,0x00000007,0x0004003b,0x00000034,0x0000020e,0x00000007,0x0004003b,0x00000034, + 0x00000213,0x00000007,0x0004003b,0x00000034,0x00000215,0x00000007,0x0004003b,0x00000155, + 0x00000219,0x00000007,0x0004003b,0x00000044,0x0000021c,0x00000007,0x0004003b,0x00000045, + 0x0000021d,0x00000007,0x0004003b,0x0000000d,0x0000021f,0x00000007,0x0004003b,0x0000000d, + 0x00000222,0x00000007,0x0004003b,0x0000000d,0x00000227,0x00000007,0x0004003d,0x0000000e, + 0x000001fb,0x00000081,0x0003003e,0x000001fa,0x000001fb,0x0003003e,0x000001fc,0x00000083, + 0x00060039,0x00000056,0x000001fd,0x0000005a,0x000001fa,0x000001fc,0x0003003e,0x000001f9, + 0x000001fd,0x0003003e,0x000001fe,0x000000a9,0x0003003e,0x000001ff,0x00000200,0x00050041, + 0x0000000d,0x00000201,0x000001ff,0x0000017c,0x0003003e,0x00000201,0x000000a9,0x0003003e, + 0x00000202,0x000000be,0x000200f9,0x00000203,0x000200f8,0x00000203,0x000400f6,0x00000205, + 0x00000206,0x00000000,0x000200f9,0x00000207,0x000200f8,0x00000207,0x0004003d,0x0000002b, + 0x00000208,0x00000202,0x000500b1,0x0000006b,0x00000209,0x00000208,0x000001cd,0x000400fa, + 0x00000209,0x00000204,0x00000205,0x000200f8,0x00000204,0x0004003d,0x0000002b,0x0000020b, + 0x00000202,0x00060041,0x00000034,0x0000020c,0x000001f9,0x000000be,0x0000020b,0x0004003d, + 0x0000002c,0x0000020d,0x0000020c,0x0003003e,0x0000020a,0x0000020d,0x00050041,0x00000034, + 0x0000020f,0x000001f9,0x00000122,0x0004003d,0x0000002c,0x00000210,0x0000020f,0x0004003d, + 0x0000002c,0x00000211,0x0000020a,0x00050080,0x0000002c,0x00000212,0x00000210,0x00000211, + 0x0003003e,0x0000020e,0x00000212,0x0004003d,0x0000002c,0x00000214,0x0000020e,0x0003003e, + 0x00000213,0x00000214,0x0003003e,0x00000215,0x00000083,0x00060039,0x0000006b,0x00000216, + 0x0000006f,0x00000213,0x00000215,0x000300f7,0x00000218,0x00000000,0x000400fa,0x00000216, + 0x00000217,0x00000218,0x000200f8,0x00000217,0x0004003d,0x0000002c,0x0000021a,0x0000020e, + 0x0004007c,0x0000003f,0x0000021b,0x0000021a,0x0003003e,0x0000021c,0x00000082,0x0003003e, + 0x0000021d,0x0000021b,0x00060039,0x00000030,0x0000021e,0x00000049,0x0000021c,0x0000021d, + 0x0003003e,0x00000219,0x0000021e,0x00050041,0x0000000d,0x00000220,0x00000219,0x0000017c, + 0x0004003d,0x00000008,0x00000221,0x00000220,0x0003003e,0x0000021f,0x00000221,0x00050041, + 0x0000000d,0x00000223,0x00000219,0x0000017c,0x0004003d,0x00000008,0x00000224,0x00000223, + 0x000500ba,0x0000006b,0x00000225,0x00000224,0x000000a9,0x000600a9,0x00000008,0x00000226, + 0x00000225,0x000000aa,0x000000a9,0x0003003e,0x00000222,0x00000226,0x0004003d,0x0000002b, + 0x00000228,0x00000202,0x00060041,0x0000000d,0x00000229,0x000001f9,0x0000012d,0x00000228, + 0x0004003d,0x00000008,0x0000022a,0x00000229,0x0004003d,0x00000008,0x0000022b,0x00000222, + 0x00050085,0x00000008,0x0000022c,0x0000022a,0x0000022b,0x0004003d,0x00000008,0x0000022d, + 0x0000021f,0x00050085,0x00000008,0x0000022e,0x0000022c,0x0000022d,0x0003003e,0x00000227, + 0x0000022e,0x0004003d,0x00000008,0x0000022f,0x00000227,0x0004003d,0x00000008,0x00000230, + 0x000001fe,0x00050081,0x00000008,0x00000231,0x00000230,0x0000022f,0x0003003e,0x000001fe, + 0x00000231,0x0004003d,0x00000030,0x00000232,0x00000219,0x0004003d,0x00000008,0x00000233, + 0x00000227,0x0005008e,0x00000030,0x00000234,0x00000232,0x00000233,0x0004003d,0x00000030, + 0x00000235,0x000001ff,0x00050081,0x00000030,0x00000236,0x00000235,0x00000234,0x0003003e, + 0x000001ff,0x00000236,0x000200f9,0x00000218,0x000200f8,0x00000218,0x000200f9,0x00000206, + 0x000200f8,0x00000206,0x0004003d,0x0000002b,0x00000237,0x00000202,0x00050080,0x0000002b, + 0x00000238,0x00000237,0x0000012d,0x0003003e,0x00000202,0x00000238,0x000200f9,0x00000203, + 0x000200f8,0x00000205,0x0004003d,0x00000008,0x00000239,0x000001fe,0x000500ba,0x0000006b, + 0x0000023a,0x00000239,0x000000a9,0x0004003d,0x00000008,0x0000023b,0x000001fe,0x000600a9, + 0x00000008,0x0000023c,0x0000023a,0x0000023b,0x000000aa,0x0004003d,0x00000030,0x0000023d, + 0x000001ff,0x00070050,0x00000030,0x0000023e,0x0000023c,0x0000023c,0x0000023c,0x0000023c, + 0x00050088,0x00000030,0x0000023f,0x0000023d,0x0000023e,0x0003003e,0x000001ff,0x0000023f, + 0x0004003d,0x00000030,0x00000240,0x000001ff,0x000200fe,0x00000240,0x00010038,0x00050036, + 0x00000002,0x00000089,0x00000000,0x00000086,0x00030037,0x0000001d,0x00000087,0x00030037, + 0x0000007a,0x00000088,0x000200f8,0x0000008a,0x0004003b,0x00000034,0x00000243,0x00000007, + 0x0004003b,0x00000045,0x00000249,0x00000007,0x0004003b,0x00000034,0x0000024a,0x00000007, + 0x0004003b,0x00000045,0x0000024d,0x00000007,0x0004003b,0x0000007a,0x0000024f,0x00000007, + 0x0004003b,0x00000034,0x00000257,0x00000007,0x0004003b,0x00000155,0x00000259,0x00000007, + 0x0004003b,0x00000044,0x0000025a,0x00000007,0x0004003b,0x0000001d,0x0000026e,0x00000007, + 0x0004003b,0x0000001d,0x00000282,0x00000007,0x0004003b,0x0000001d,0x0000028b,0x00000007, + 0x0004003d,0x0000000e,0x00000244,0x00000087,0x00040039,0x0000002c,0x00000245,0x0000002e, + 0x0004006f,0x0000000e,0x00000246,0x00000245,0x00050085,0x0000000e,0x00000247,0x00000244, + 0x00000246,0x0004006e,0x0000002c,0x00000248,0x00000247,0x0003003e,0x00000243,0x00000248, + 0x0004003d,0x0000002c,0x0000024b,0x00000243,0x0003003e,0x0000024a,0x0000024b,0x00050039, + 0x0000003f,0x0000024c,0x00000042,0x0000024a,0x0003003e,0x00000249,0x0000024c,0x0004003d, + 0x0000003f,0x0000024e,0x00000249,0x0003003e,0x0000024d,0x0000024e,0x00060039,0x00000002, + 0x00000250,0x0000007e,0x0000024d,0x0000024f,0x0004003d,0x00000079,0x00000251,0x0000024f, + 0x0003003e,0x00000088,0x00000251,0x00050041,0x000001d2,0x00000252,0x00000088,0x00000132, + 0x0004003d,0x0000006b,0x00000253,0x00000252,0x000400a8,0x0000006b,0x00000254,0x00000253, + 0x000300f7,0x00000256,0x00000000,0x000400fa,0x00000254,0x00000255,0x00000256,0x000200f8, + 0x00000255,0x00040039,0x0000002c,0x00000258,0x0000002e,0x0003003e,0x00000257,0x00000258, + 0x0003003e,0x00000259,0x00000200,0x0003003e,0x0000025a,0x000000be,0x000200f9,0x0000025b, + 0x000200f8,0x0000025b,0x000400f6,0x0000025d,0x0000025e,0x00000000,0x000200f9,0x0000025f, + 0x000200f8,0x0000025f,0x0004003d,0x0000002b,0x00000260,0x0000025a,0x000500b1,0x0000006b, + 0x00000262,0x00000260,0x00000261,0x000300f7,0x00000264,0x00000000,0x000400fa,0x00000262, + 0x00000263,0x00000264,0x000200f8,0x00000263,0x00050041,0x0000000d,0x00000265,0x00000259, + 0x00000185,0x0004003d,0x00000008,0x00000266,0x00000265,0x000500b4,0x0000006b,0x00000267, + 0x00000266,0x000000a9,0x000200f9,0x00000264,0x000200f8,0x00000264,0x000700f5,0x0000006b, + 0x00000268,0x00000262,0x0000025f,0x00000267,0x00000263,0x000400fa,0x00000268,0x0000025c, + 0x0000025d,0x000200f8,0x0000025c,0x0004003d,0x0000002c,0x00000269,0x00000257,0x00050050, + 0x0000002c,0x0000026a,0x00000122,0x00000122,0x00050087,0x0000002c,0x0000026b,0x00000269, + 0x0000026a,0x0003003e,0x00000257,0x0000026b,0x0004003d,0x0000002b,0x0000026c,0x0000025a, + 0x0004003d,0x0000002c,0x0000026d,0x00000257,0x0004003d,0x0000000e,0x0000026f,0x00000087, + 0x0003003e,0x0000026e,0x0000026f,0x00070039,0x00000030,0x00000270,0x00000084,0x0000026e, + 0x0000026c,0x0000026d,0x0003003e,0x00000259,0x00000270,0x000200f9,0x0000025e,0x000200f8, + 0x0000025e,0x0004003d,0x0000002b,0x00000271,0x0000025a,0x00050080,0x0000002b,0x00000272, + 0x00000271,0x0000012d,0x0003003e,0x0000025a,0x00000272,0x000200f9,0x0000025b,0x000200f8, + 0x0000025d,0x0004003d,0x00000030,0x00000273,0x00000259,0x0007004f,0x0000000e,0x00000274, + 0x00000273,0x00000273,0x00000000,0x00000001,0x00050041,0x0000001d,0x00000275,0x00000088, + 0x000000be,0x0003003e,0x00000275,0x00000274,0x00050041,0x0000000d,0x00000276,0x00000259, + 0x0000017c,0x0004003d,0x00000008,0x00000277,0x00000276,0x00050041,0x0000000d,0x00000278, + 0x00000088,0x0000012d,0x0003003e,0x00000278,0x00000277,0x00050041,0x0000000d,0x00000279, + 0x00000259,0x00000185,0x0004003d,0x00000008,0x0000027a,0x00000279,0x00050041,0x0000000d, + 0x0000027b,0x00000088,0x00000122,0x0003003e,0x0000027b,0x0000027a,0x00050041,0x000001d2, + 0x0000027d,0x00000088,0x000001f6,0x0003003e,0x0000027d,0x0000027c,0x000200f9,0x00000256, + 0x000200f8,0x00000256,0x0004003d,0x0000000e,0x0000027e,0x00000087,0x00050041,0x0000001d, + 0x0000027f,0x00000088,0x000000be,0x0004003d,0x0000000e,0x00000280,0x0000027f,0x00050083, + 0x0000000e,0x00000281,0x0000027e,0x00000280,0x0003003e,0x00000282,0x00000281,0x00050039, + 0x0000006b,0x00000283,0x00000073,0x00000282,0x000400a8,0x0000006b,0x00000284,0x00000283, + 0x00050041,0x000001d2,0x00000285,0x00000088,0x000000c4,0x0003003e,0x00000285,0x00000284, + 0x0004003d,0x0000000e,0x00000287,0x00000087,0x00050041,0x0000001d,0x00000288,0x00000088, + 0x000000be,0x0004003d,0x0000000e,0x00000289,0x00000288,0x00050081,0x0000000e,0x0000028a, + 0x00000287,0x00000289,0x0003003e,0x0000028b,0x0000028a,0x00050039,0x0000006b,0x0000028c, + 0x00000073,0x0000028b,0x000400a8,0x0000006b,0x0000028d,0x0000028c,0x00050041,0x000001d2, + 0x0000028e,0x00000088,0x00000286,0x0003003e,0x0000028e,0x0000028d,0x00050041,0x0000001d, + 0x00000290,0x00000088,0x000000be,0x0004003d,0x0000000e,0x00000291,0x00000290,0x0006000c, + 0x00000008,0x00000292,0x00000001,0x00000042,0x00000291,0x00050041,0x0000000d,0x00000293, + 0x00000088,0x0000028f,0x0003003e,0x00000293,0x00000292,0x000100fd,0x00010038,0x00050036, + 0x00000008,0x0000008e,0x00000000,0x0000008b,0x00030037,0x00000007,0x0000008c,0x00030037, + 0x00000034,0x0000008d,0x000200f8,0x0000008f,0x0004003b,0x0000001d,0x00000294,0x00000007, + 0x0004003b,0x0000001d,0x0000029c,0x00000007,0x0004003b,0x0000001d,0x0000029d,0x00000007, + 0x0004003b,0x00000034,0x000002a0,0x00000007,0x0004003b,0x00000034,0x000002ad,0x00000007, + 0x0004003b,0x00000034,0x000002b8,0x00000007,0x0004003d,0x0000002c,0x00000295,0x0000008d, + 0x0004006f,0x0000000e,0x00000296,0x00000295,0x00050050,0x0000000e,0x00000297,0x0000011d, + 0x0000011d,0x00050081,0x0000000e,0x00000298,0x00000296,0x00000297,0x00040039,0x0000002c, + 0x00000299,0x0000002e,0x0004006f,0x0000000e,0x0000029a,0x00000299,0x00050088,0x0000000e, + 0x0000029b,0x00000298,0x0000029a,0x0003003e,0x00000294,0x0000029b,0x0004003d,0x0000000e, + 0x0000029e,0x00000294,0x0003003e,0x0000029d,0x0000029e,0x00050039,0x0000000e,0x0000029f, + 0x0000004c,0x0000029d,0x0003003e,0x0000029c,0x0000029f,0x0004003d,0x0000000e,0x000002a1, + 0x0000029c,0x00040039,0x0000002c,0x000002a2,0x0000002e,0x0004006f,0x0000000e,0x000002a3, + 0x000002a2,0x00050085,0x0000000e,0x000002a4,0x000002a1,0x000002a3,0x0004006e,0x0000002c, + 0x000002a5,0x000002a4,0x0003003e,0x000002a0,0x000002a5,0x0004003d,0x00000006,0x000002a6, + 0x0000008c,0x000500aa,0x0000006b,0x000002a7,0x000002a6,0x000000d0,0x000300f7,0x000002a9, + 0x00000000,0x000400fa,0x000002a7,0x000002a8,0x000002b0,0x000200f8,0x000002a8,0x0004003d, + 0x0000002c,0x000002aa,0x0000008d,0x0004003d,0x0000002c,0x000002ab,0x000002a0,0x00050080, + 0x0000002c,0x000002ac,0x000002aa,0x000002ab,0x0003003e,0x000002ad,0x000002ac,0x00050039, + 0x00000008,0x000002ae,0x0000003a,0x000002ad,0x000200fe,0x000002ae,0x000200f8,0x000002b0, + 0x0004003d,0x00000006,0x000002b1,0x0000008c,0x000500aa,0x0000006b,0x000002b2,0x000002b1, + 0x00000138,0x000300f7,0x000002b4,0x00000000,0x000400fa,0x000002b2,0x000002b3,0x000002b4, + 0x000200f8,0x000002b3,0x0004003d,0x0000002c,0x000002b5,0x0000008d,0x0004003d,0x0000002c, + 0x000002b6,0x000002a0,0x00050080,0x0000002c,0x000002b7,0x000002b5,0x000002b6,0x0003003e, + 0x000002b8,0x000002b7,0x00050039,0x00000008,0x000002b9,0x00000037,0x000002b8,0x000200fe, + 0x000002b9,0x000200f8,0x000002b4,0x000200f9,0x000002a9,0x000200f8,0x000002a9,0x000200fe, + 0x000000a9,0x00010038,0x00050036,0x00000008,0x00000094,0x00000000,0x00000090,0x00030037, + 0x00000007,0x00000091,0x00030037,0x0000001d,0x00000092,0x00030037,0x0000000d,0x00000093, + 0x000200f8,0x00000095,0x0004003b,0x0000000d,0x000002bd,0x00000007,0x0004003b,0x0000000d, + 0x000002be,0x00000007,0x0004003b,0x00000120,0x000002c1,0x00000007,0x0004003b,0x0000001d, + 0x000002c3,0x00000007,0x0004003b,0x00000034,0x000002c5,0x00000007,0x0004003b,0x0000000d, + 0x000002c7,0x00000007,0x0004003b,0x0000000d,0x000002c8,0x00000007,0x0004003b,0x0000000d, + 0x000002c9,0x00000007,0x0004003b,0x00000044,0x000002ca,0x00000007,0x0004003b,0x00000034, + 0x000002d2,0x00000007,0x0004003b,0x00000034,0x000002d6,0x00000007,0x0004003b,0x00000034, + 0x000002dc,0x00000007,0x0004003b,0x00000034,0x000002de,0x00000007,0x0004003b,0x0000000d, + 0x000002e2,0x00000007,0x0004003b,0x0000000d,0x000002eb,0x00000007,0x0004003b,0x00000007, + 0x000002ec,0x00000007,0x0004003b,0x00000034,0x000002ee,0x00000007,0x0004003b,0x0000000d, + 0x000002f1,0x00000007,0x0004003b,0x0000000d,0x000002f2,0x00000007,0x0004003b,0x0000000d, + 0x000002f5,0x00000007,0x0004003b,0x0000000d,0x000002fd,0x00000007,0x0004003b,0x0000000d, + 0x000002fe,0x00000007,0x0004003b,0x0000000d,0x00000300,0x00000007,0x0004003b,0x00000303, + 0x00000304,0x00000007,0x0004003b,0x00000034,0x0000030a,0x00000007,0x0004003b,0x00000034, + 0x0000030b,0x00000007,0x0004003b,0x0000000d,0x0000030c,0x00000007,0x0004003b,0x00000303, + 0x0000030f,0x00000007,0x0004003b,0x00000034,0x00000311,0x00000007,0x0004003b,0x00000034, + 0x00000312,0x00000007,0x0004003b,0x0000000d,0x00000313,0x00000007,0x0004003b,0x0000000d, + 0x00000316,0x00000007,0x0004003b,0x0000000d,0x0000031a,0x00000007,0x0004003b,0x0000000d, + 0x0000031b,0x00000007,0x0004003b,0x0000000d,0x0000031d,0x00000007,0x0004003b,0x0000000d, + 0x00000320,0x00000007,0x0004003b,0x0000000d,0x00000326,0x00000007,0x0004003b,0x0000000d, + 0x0000032e,0x00000007,0x0004003b,0x0000000d,0x00000334,0x00000007,0x0004003b,0x0000000d, + 0x00000336,0x00000007,0x0004003b,0x0000000d,0x00000338,0x00000007,0x0004003b,0x0000000d, + 0x00000339,0x00000007,0x0004003b,0x0000000d,0x0000033a,0x00000007,0x0004003b,0x0000000d, + 0x0000034d,0x00000007,0x0004003b,0x0000000d,0x00000354,0x00000007,0x0004003d,0x00000008, + 0x000002bf,0x00000093,0x0003003e,0x000002be,0x000002bf,0x00050039,0x00000008,0x000002c0, + 0x0000005d,0x000002be,0x0003003e,0x000002bd,0x000002c0,0x00040039,0x0000002c,0x000002c2, + 0x0000002e,0x0004003d,0x0000000e,0x000002c4,0x00000092,0x0003003e,0x000002c3,0x000002c4, + 0x0003003e,0x000002c5,0x000002c2,0x00060039,0x00000056,0x000002c6,0x0000005a,0x000002c3, + 0x000002c5,0x0003003e,0x000002c1,0x000002c6,0x0003003e,0x000002c7,0x000000a9,0x0003003e, + 0x000002c8,0x000000a9,0x0003003e,0x000002c9,0x000000a9,0x0003003e,0x000002ca,0x000000be, + 0x000200f9,0x000002cb,0x000200f8,0x000002cb,0x000400f6,0x000002cd,0x000002ce,0x00000000, + 0x000200f9,0x000002cf,0x000200f8,0x000002cf,0x0004003d,0x0000002b,0x000002d0,0x000002ca, + 0x000500b1,0x0000006b,0x000002d1,0x000002d0,0x000001cd,0x000400fa,0x000002d1,0x000002cc, + 0x000002cd,0x000200f8,0x000002cc,0x0004003d,0x0000002b,0x000002d3,0x000002ca,0x00060041, + 0x00000034,0x000002d4,0x000002c1,0x000000be,0x000002d3,0x0004003d,0x0000002c,0x000002d5, + 0x000002d4,0x0003003e,0x000002d2,0x000002d5,0x00050041,0x00000034,0x000002d7,0x000002c1, + 0x00000122,0x0004003d,0x0000002c,0x000002d8,0x000002d7,0x0004003d,0x0000002c,0x000002d9, + 0x000002d2,0x00050080,0x0000002c,0x000002da,0x000002d8,0x000002d9,0x0003003e,0x000002d6, + 0x000002da,0x00040039,0x0000002c,0x000002db,0x0000002e,0x0004003d,0x0000002c,0x000002dd, + 0x000002d6,0x0003003e,0x000002dc,0x000002dd,0x0003003e,0x000002de,0x000002db,0x00060039, + 0x0000006b,0x000002df,0x0000006f,0x000002dc,0x000002de,0x000300f7,0x000002e1,0x00000000, + 0x000400fa,0x000002df,0x000002e0,0x000002e1,0x000200f8,0x000002e0,0x0004003d,0x0000002b, + 0x000002e3,0x000002ca,0x00060041,0x0000000d,0x000002e4,0x000002c1,0x0000012d,0x000002e3, + 0x0004003d,0x00000008,0x000002e5,0x000002e4,0x0003003e,0x000002e2,0x000002e5,0x0004003d, + 0x00000008,0x000002e6,0x000002e2,0x000500ba,0x0000006b,0x000002e8,0x000002e6,0x000002e7, + 0x000300f7,0x000002ea,0x00000000,0x000400fa,0x000002e8,0x000002e9,0x000002ea,0x000200f8, + 0x000002e9,0x0004003d,0x00000006,0x000002ed,0x00000091,0x0003003e,0x000002ec,0x000002ed, + 0x0004003d,0x0000002c,0x000002ef,0x000002d6,0x0003003e,0x000002ee,0x000002ef,0x00060039, + 0x00000008,0x000002f0,0x0000008e,0x000002ec,0x000002ee,0x0003003e,0x000002eb,0x000002f0, + 0x0004003d,0x00000008,0x000002f3,0x000002eb,0x0003003e,0x000002f2,0x000002f3,0x00050039, + 0x00000008,0x000002f4,0x0000005d,0x000002f2,0x0003003e,0x000002f1,0x000002f4,0x0004003d, + 0x00000008,0x000002f6,0x000002bd,0x0004003d,0x00000008,0x000002f7,0x000002f1,0x00050083, + 0x00000008,0x000002f8,0x000002f6,0x000002f7,0x0003003e,0x000002f5,0x000002f8,0x0004003d, + 0x00000008,0x000002f9,0x000002f5,0x000500ba,0x0000006b,0x000002fa,0x000002f9,0x000000a9, + 0x000300f7,0x000002fc,0x00000000,0x000400fa,0x000002fa,0x000002fb,0x000002fc,0x000200f8, + 0x000002fb,0x0004003d,0x00000008,0x000002ff,0x000002eb,0x0003003e,0x000002fe,0x000002ff, + 0x0004003d,0x00000008,0x00000301,0x00000093,0x0003003e,0x00000300,0x00000301,0x00060039, + 0x00000008,0x00000302,0x00000029,0x000002fe,0x00000300,0x0003003e,0x000002fd,0x00000302, + 0x00040039,0x0000002c,0x00000305,0x0000002e,0x0004006f,0x0000000e,0x00000306,0x00000305, + 0x0005008e,0x0000000e,0x00000307,0x00000306,0x0000011d,0x0004006e,0x0000002c,0x00000308, + 0x00000307,0x00040039,0x0000002c,0x00000309,0x0000002e,0x0003003e,0x0000030a,0x00000308, + 0x0003003e,0x0000030b,0x00000309,0x0004003d,0x00000008,0x0000030d,0x000002fd,0x0003003e, + 0x0000030c,0x0000030d,0x00070039,0x00000064,0x0000030e,0x00000069,0x0000030a,0x0000030b, + 0x0000030c,0x0003003e,0x00000304,0x0000030e,0x00040039,0x0000002c,0x00000310,0x0000002e, + 0x0003003e,0x00000311,0x0000012b,0x0003003e,0x00000312,0x00000310,0x0004003d,0x00000008, + 0x00000314,0x000002fd,0x0003003e,0x00000313,0x00000314,0x00070039,0x00000064,0x00000315, + 0x00000069,0x00000311,0x00000312,0x00000313,0x0003003e,0x0000030f,0x00000315,0x00040039, + 0x0000002c,0x00000317,0x0000002e,0x0004006f,0x0000000e,0x00000318,0x00000317,0x0006000c, + 0x00000008,0x00000319,0x00000001,0x00000042,0x00000318,0x0003003e,0x00000316,0x00000319, + 0x0004003d,0x00000008,0x0000031c,0x000002bd,0x0003003e,0x0000031b,0x0000031c,0x0004003d, + 0x00000008,0x0000031e,0x000002f1,0x0003003e,0x0000031d,0x0000031e,0x00060039,0x00000008, + 0x0000031f,0x00000029,0x0000031b,0x0000031d,0x0003003e,0x0000031a,0x0000031f,0x0004003d, + 0x00000064,0x00000321,0x0000030f,0x0006000c,0x00000008,0x00000322,0x00000001,0x00000042, + 0x00000321,0x0004003d,0x00000064,0x00000323,0x00000304,0x0006000c,0x00000008,0x00000324, + 0x00000001,0x00000042,0x00000323,0x00050088,0x00000008,0x00000325,0x00000322,0x00000324, + 0x0003003e,0x00000320,0x00000325,0x0004003d,0x00000008,0x00000328,0x00000320,0x00050085, + 0x00000008,0x00000329,0x00000327,0x00000328,0x0004003d,0x00000008,0x0000032a,0x00000316, + 0x00050085,0x00000008,0x0000032b,0x00000329,0x0000032a,0x0004003d,0x00000008,0x0000032c, + 0x0000031a,0x00050085,0x00000008,0x0000032d,0x0000032b,0x0000032c,0x0003003e,0x00000326, + 0x0000032d,0x00040039,0x0000002c,0x0000032f,0x0000002e,0x0004006f,0x0000000e,0x00000330, + 0x0000032f,0x0006000c,0x00000008,0x00000331,0x00000001,0x00000042,0x00000330,0x00050088, + 0x00000008,0x00000333,0x00000331,0x00000332,0x0003003e,0x00000334,0x00000333,0x00050039, + 0x00000008,0x00000335,0x0000001b,0x00000334,0x0003003e,0x0000032e,0x00000335,0x0003003e, + 0x00000338,0x000000aa,0x0003003e,0x00000339,0x00000337,0x0004003d,0x00000008,0x0000033b, + 0x0000032e,0x0003003e,0x0000033a,0x0000033b,0x00070039,0x00000008,0x0000033c,0x00000017, + 0x00000338,0x00000339,0x0000033a,0x0003003e,0x00000336,0x0000033c,0x0004003d,0x00000008, + 0x0000033d,0x00000326,0x0004003d,0x00000008,0x0000033e,0x000002f5,0x00050088,0x00000008, + 0x0000033f,0x0000033d,0x0000033e,0x000500be,0x0000006b,0x00000340,0x0000033f,0x000000aa, + 0x000600a9,0x00000008,0x00000341,0x00000340,0x000000aa,0x000000a9,0x0004003d,0x00000008, + 0x00000342,0x000002e2,0x00050085,0x00000008,0x00000343,0x00000341,0x00000342,0x0004003d, + 0x00000008,0x00000344,0x000002c8,0x00050081,0x00000008,0x00000345,0x00000344,0x00000343, + 0x0003003e,0x000002c8,0x00000345,0x0004003d,0x00000008,0x00000346,0x000002e2,0x0004003d, + 0x00000008,0x00000347,0x000002c9,0x00050081,0x00000008,0x00000348,0x00000347,0x00000346, + 0x0003003e,0x000002c9,0x00000348,0x000200f9,0x000002fc,0x000200f8,0x000002fc,0x000200f9, + 0x000002ea,0x000200f8,0x000002ea,0x000200f9,0x000002e1,0x000200f8,0x000002e1,0x000200f9, + 0x000002ce,0x000200f8,0x000002ce,0x0004003d,0x0000002b,0x00000349,0x000002ca,0x00050080, + 0x0000002b,0x0000034a,0x00000349,0x0000012d,0x0003003e,0x000002ca,0x0000034a,0x000200f9, + 0x000002cb,0x000200f8,0x000002cd,0x0004003d,0x00000008,0x0000034b,0x000002c9,0x000500ba, + 0x0000006b,0x0000034c,0x0000034b,0x000000a9,0x000300f7,0x0000034f,0x00000000,0x000400fa, + 0x0000034c,0x0000034e,0x00000356,0x000200f8,0x0000034e,0x0004003d,0x00000008,0x00000350, + 0x000002c8,0x0004003d,0x00000008,0x00000351,0x000002c9,0x00050088,0x00000008,0x00000352, + 0x00000350,0x00000351,0x00050083,0x00000008,0x00000353,0x000000aa,0x00000352,0x0003003e, + 0x00000354,0x00000353,0x00050039,0x00000008,0x00000355,0x0000001b,0x00000354,0x0003003e, + 0x0000034d,0x00000355,0x000200f9,0x0000034f,0x000200f8,0x00000356,0x0003003e,0x0000034d, + 0x000000a9,0x000200f9,0x0000034f,0x000200f8,0x0000034f,0x0004003d,0x00000008,0x00000357, + 0x0000034d,0x000200fe,0x00000357,0x00010038,0x00050036,0x00000002,0x00000098,0x00000000, + 0x00000096,0x00030037,0x00000034,0x00000097,0x000200f8,0x00000099,0x0004003b,0x0000000d, + 0x0000035a,0x00000007,0x0004003b,0x00000034,0x0000035b,0x00000007,0x0004003b,0x0000001d, + 0x0000035e,0x00000007,0x0004003b,0x0000000d,0x00000366,0x00000007,0x0004003b,0x0000000d, + 0x00000367,0x00000007,0x0004003b,0x0000007a,0x0000036a,0x00000007,0x0004003b,0x0000001d, + 0x0000036b,0x00000007,0x0004003b,0x0000007a,0x0000036d,0x00000007,0x0004003b,0x0000000d, + 0x00000370,0x00000007,0x0004003b,0x00000007,0x00000375,0x00000007,0x0004003b,0x0000001d, + 0x00000376,0x00000007,0x0004003b,0x0000000d,0x00000377,0x00000007,0x0004003b,0x0000000d, + 0x0000037b,0x00000007,0x0004003b,0x00000007,0x00000380,0x00000007,0x0004003b,0x0000001d, + 0x00000381,0x00000007,0x0004003b,0x0000000d,0x00000382,0x00000007,0x0004003b,0x0000001d, + 0x00000386,0x00000007,0x0004003b,0x0000000d,0x0000038b,0x00000007,0x0004003b,0x0000001d, + 0x00000391,0x00000007,0x0004003b,0x00000034,0x00000395,0x00000007,0x0004003b,0x00000034, + 0x000003a0,0x00000007,0x0004003b,0x00000034,0x000003a2,0x00000007,0x0004003b,0x0000000d, + 0x000003a7,0x00000007,0x0004003b,0x00000034,0x000003aa,0x00000007,0x0004003b,0x00000034, + 0x000003b5,0x00000007,0x0004003b,0x00000034,0x000003b7,0x00000007,0x0004003b,0x0000000d, + 0x000003bc,0x00000007,0x0004003b,0x00000034,0x000003bf,0x00000007,0x0004003b,0x0000001d, + 0x000003c1,0x00000007,0x0004003d,0x0000002c,0x0000035c,0x00000097,0x0003003e,0x0000035b, + 0x0000035c,0x00050039,0x00000008,0x0000035d,0x0000003d,0x0000035b,0x0003003e,0x0000035a, + 0x0000035d,0x0004003d,0x0000002c,0x0000035f,0x00000097,0x0004006f,0x0000000e,0x00000360, + 0x0000035f,0x00050050,0x0000000e,0x00000361,0x0000011d,0x0000011d,0x00050081,0x0000000e, + 0x00000362,0x00000360,0x00000361,0x00040039,0x0000002c,0x00000363,0x0000002e,0x0004006f, + 0x0000000e,0x00000364,0x00000363,0x00050088,0x0000000e,0x00000365,0x00000362,0x00000364, + 0x0003003e,0x0000035e,0x00000365,0x0004003d,0x00000008,0x00000368,0x0000035a,0x0003003e, + 0x00000367,0x00000368,0x00050039,0x00000008,0x00000369,0x0000005d,0x00000367,0x0003003e, + 0x00000366,0x00000369,0x0004003d,0x0000000e,0x0000036c,0x0000035e,0x0003003e,0x0000036b, + 0x0000036c,0x00060039,0x00000002,0x0000036e,0x00000089,0x0000036b,0x0000036d,0x0004003d, + 0x00000079,0x0000036f,0x0000036d,0x0003003e,0x0000036a,0x0000036f,0x0004003d,0x0000000e, + 0x00000371,0x0000035e,0x00050041,0x0000001d,0x00000372,0x0000036a,0x000000be,0x0004003d, + 0x0000000e,0x00000373,0x00000372,0x00050081,0x0000000e,0x00000374,0x00000371,0x00000373, + 0x0003003e,0x00000375,0x000000d0,0x0003003e,0x00000376,0x00000374,0x0004003d,0x00000008, + 0x00000378,0x0000035a,0x0003003e,0x00000377,0x00000378,0x00070039,0x00000008,0x00000379, + 0x00000094,0x00000375,0x00000376,0x00000377,0x00050083,0x00000008,0x0000037a,0x000000aa, + 0x00000379,0x0003003e,0x00000370,0x0000037a,0x0004003d,0x0000000e,0x0000037c,0x0000035e, + 0x00050041,0x0000001d,0x0000037d,0x0000036a,0x000000be,0x0004003d,0x0000000e,0x0000037e, + 0x0000037d,0x00050083,0x0000000e,0x0000037f,0x0000037c,0x0000037e,0x0003003e,0x00000380, + 0x00000138,0x0003003e,0x00000381,0x0000037f,0x0004003d,0x00000008,0x00000383,0x0000035a, + 0x0003003e,0x00000382,0x00000383,0x00070039,0x00000008,0x00000384,0x00000094,0x00000380, + 0x00000381,0x00000382,0x00050083,0x00000008,0x00000385,0x000000aa,0x00000384,0x0003003e, + 0x0000037b,0x00000385,0x0004003d,0x00000008,0x00000387,0x00000370,0x0004003d,0x00000008, + 0x00000388,0x0000037b,0x00050050,0x0000000e,0x00000389,0x00000387,0x00000388,0x0003003e, + 0x00000386,0x00000389,0x0004003d,0x0000000e,0x0000038a,0x00000386,0x0003003e,0x0000038b, + 0x000002e7,0x00050039,0x0000000e,0x0000038c,0x00000011,0x0000038b,0x000500be,0x00000197, + 0x0000038d,0x0000038a,0x0000038c,0x000600a9,0x0000000e,0x00000390,0x0000038d,0x0000038f, + 0x0000038e,0x0003003e,0x00000386,0x00000390,0x00050041,0x0000001d,0x00000392,0x0000036a, + 0x000000be,0x0004003d,0x0000000e,0x00000393,0x00000392,0x0005008e,0x0000000e,0x00000394, + 0x00000393,0x00000165,0x0003003e,0x00000391,0x00000394,0x0004003d,0x0000000e,0x00000396, + 0x0000035e,0x0004003d,0x0000000e,0x00000397,0x00000391,0x00050081,0x0000000e,0x00000398, + 0x00000396,0x00000397,0x00040039,0x0000002c,0x00000399,0x0000002e,0x0004006f,0x0000000e, + 0x0000039a,0x00000399,0x00050085,0x0000000e,0x0000039b,0x00000398,0x0000039a,0x0004006e, + 0x0000002c,0x0000039c,0x0000039b,0x0003003e,0x00000395,0x0000039c,0x00050041,0x0000000d, + 0x0000039d,0x00000386,0x000000d0,0x0004003d,0x00000008,0x0000039e,0x0000039d,0x00040039, + 0x0000002c,0x0000039f,0x0000002e,0x0004003d,0x0000002c,0x000003a1,0x00000395,0x0003003e, + 0x000003a0,0x000003a1,0x0003003e,0x000003a2,0x0000039f,0x00060039,0x0000006b,0x000003a3, + 0x0000006f,0x000003a0,0x000003a2,0x000400a8,0x0000006b,0x000003a4,0x000003a3,0x000600a9, + 0x00000008,0x000003a5,0x000003a4,0x000000aa,0x000000a9,0x00050081,0x00000008,0x000003a6, + 0x0000039e,0x000003a5,0x0003003e,0x000003a7,0x000003a6,0x00050039,0x00000008,0x000003a8, + 0x0000001b,0x000003a7,0x00050041,0x0000000d,0x000003a9,0x00000386,0x000000d0,0x0003003e, + 0x000003a9,0x000003a8,0x0004003d,0x0000000e,0x000003ab,0x0000035e,0x0004003d,0x0000000e, + 0x000003ac,0x00000391,0x00050083,0x0000000e,0x000003ad,0x000003ab,0x000003ac,0x00040039, + 0x0000002c,0x000003ae,0x0000002e,0x0004006f,0x0000000e,0x000003af,0x000003ae,0x00050085, + 0x0000000e,0x000003b0,0x000003ad,0x000003af,0x0004006e,0x0000002c,0x000003b1,0x000003b0, + 0x0003003e,0x000003aa,0x000003b1,0x00050041,0x0000000d,0x000003b2,0x00000386,0x00000138, + 0x0004003d,0x00000008,0x000003b3,0x000003b2,0x00040039,0x0000002c,0x000003b4,0x0000002e, + 0x0004003d,0x0000002c,0x000003b6,0x000003aa,0x0003003e,0x000003b5,0x000003b6,0x0003003e, + 0x000003b7,0x000003b4,0x00060039,0x0000006b,0x000003b8,0x0000006f,0x000003b5,0x000003b7, + 0x000400a8,0x0000006b,0x000003b9,0x000003b8,0x000600a9,0x00000008,0x000003ba,0x000003b9, + 0x000000aa,0x000000a9,0x00050081,0x00000008,0x000003bb,0x000003b3,0x000003ba,0x0003003e, + 0x000003bc,0x000003bb,0x00050039,0x00000008,0x000003bd,0x0000001b,0x000003bc,0x00050041, + 0x0000000d,0x000003be,0x00000386,0x00000138,0x0003003e,0x000003be,0x000003bd,0x0004003d, + 0x0000002c,0x000003c0,0x00000097,0x0003003e,0x000003bf,0x000003c0,0x0004003d,0x0000000e, + 0x000003c2,0x00000386,0x0003003e,0x000003c1,0x000003c2,0x00060039,0x00000002,0x000003c3, + 0x00000051,0x000003bf,0x000003c1,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h b/gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h new file mode 100644 index 000000000..a7165b391 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h @@ -0,0 +1,842 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_GAME_MOTION_VECTOR_FIELD_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000041c,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000040c,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70, + 0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461, + 0x00003b31,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000010,0x46786666,0x6f543233, + 0x28363146,0x003b3166,0x00040005,0x0000000f,0x756c6176,0x00000065,0x00070005,0x00000015, + 0x42786666,0x64616f72,0x74736163,0x31662833,0x0000003b,0x00040005,0x00000014,0x756c6176, + 0x00000065,0x00070005,0x0000001a,0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000, + 0x00030005,0x00000019,0x00000078,0x00060005,0x00000020,0x46786666,0x74636172,0x32667628, + 0x0000003b,0x00030005,0x0000001f,0x00000078,0x00060005,0x00000024,0x52786666,0x646e756f, + 0x3b316628,0x00000000,0x00030005,0x00000023,0x00000078,0x00060005,0x00000029,0x4d786666, + 0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000027,0x00000078,0x00030005,0x00000028, + 0x00000079,0x00060005,0x0000002d,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005, + 0x0000002b,0x00000078,0x00030005,0x0000002c,0x00000079,0x00060005,0x00000032,0x4d786666, + 0x75287861,0x31753b31,0x0000003b,0x00030005,0x00000030,0x00000078,0x00030005,0x00000031, + 0x00000079,0x00060005,0x00000036,0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005, + 0x00000034,0x00000078,0x00030005,0x00000035,0x00000079,0x000a0005,0x0000003c,0x5a786666, + 0x4f6f7265,0x6553656e,0x7463656c,0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005, + 0x00000039,0x00000078,0x00030005,0x0000003a,0x00000079,0x00030005,0x0000003b,0x0000007a, + 0x00080005,0x0000003f,0x5a786666,0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366, + 0x00030005,0x0000003e,0x00000078,0x00080005,0x00000042,0x4c786666,0x61656e69,0x6f724672, + 0x2851506d,0x3b336676,0x00000000,0x00040005,0x00000041,0x756c6176,0x00000065,0x00080005, + 0x00000045,0x4c786666,0x61656e69,0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005, + 0x00000044,0x756c6176,0x00000065,0x00080005,0x0000004a,0x65746e49,0x6c6f7072,0x6f697461, + 0x6365526e,0x73614274,0x00002865,0x00080005,0x0000004c,0x65746e49,0x6c6f7072,0x6f697461, + 0x6365526e,0x7a695374,0x00002865,0x00050005,0x0000004e,0x646e6552,0x69537265,0x0028657a, + 0x00060005,0x00000050,0x70736944,0x5379616c,0x28657a69,0x00000000,0x000b0005,0x00000054, + 0x69766544,0x6f546563,0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72,0x726f7463, + 0x00002873,0x00090005,0x00000057,0x6b636142,0x66667542,0x72547265,0x66736e61,0x75467265, + 0x6974636e,0x00286e6f,0x00060005,0x0000005a,0x4c6e694d,0x6e696d75,0x65636e61,0x00000028, + 0x00060005,0x0000005c,0x4c78614d,0x6e696d75,0x65636e61,0x00000028,0x000a0005,0x00000060, + 0x706d6153,0x7250656c,0x6f697665,0x61427375,0x75626b63,0x72656666,0x32667628,0x0000003b, + 0x00030005,0x0000005f,0x00765566,0x000a0005,0x00000063,0x706d6153,0x7543656c,0x6e657272, + 0x63614274,0x6675626b,0x28726566,0x3b326676,0x00000000,0x00030005,0x00000062,0x00765566, + 0x000a0005,0x00000068,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74, + 0x3b326976,0x00000000,0x00040005,0x00000067,0x50785069,0x0000736f,0x00080005,0x0000006c, + 0x64616f4c,0x616c6944,0x44646574,0x68747065,0x32697628,0x0000003b,0x00040005,0x0000006b, + 0x50785069,0x0000736f,0x00090005,0x0000006f,0x706d6153,0x6944656c,0x726f7473,0x6e6f6974, + 0x6c656946,0x66762864,0x00003b32,0x00030005,0x0000006e,0x00765566,0x000c0005,0x00000076, + 0x61647055,0x61476574,0x6f4d656d,0x6e6f6974,0x74636556,0x6946726f,0x28646c65,0x3b326976, + 0x3b327576,0x00000000,0x00040005,0x00000074,0x50785069,0x0000736f,0x00060005,0x00000075, + 0x6b636170,0x65566465,0x726f7463,0x00000000,0x000c0005,0x0000007b,0x61647055,0x61476574, + 0x6f4d656d,0x6e6f6974,0x74636556,0x6946726f,0x45646c65,0x69762878,0x75763b32,0x00003b32, + 0x00040005,0x00000079,0x50785069,0x0000736f,0x00060005,0x0000007a,0x6b636170,0x65566465, + 0x726f7463,0x00000000,0x00060005,0x0000007f,0x54424752,0x6d754c6f,0x66762861,0x00003b33, + 0x00050005,0x0000007e,0x6e694c66,0x52726165,0x00006267,0x000a0005,0x00000082,0x656e694c, + 0x65527261,0x32303263,0x4c6f5430,0x6e696d75,0x65636e61,0x33667628,0x0000003b,0x00070005, + 0x00000081,0x656e696c,0x65527261,0x32303263,0x42475230,0x00000000,0x00090005,0x00000088, + 0x73786666,0x42475263,0x694c6f54,0x7261656e,0x33667628,0x3b31663b,0x003b3166,0x00040005, + 0x00000085,0x756c6176,0x00000065,0x00060005,0x00000086,0x4c6e696d,0x6e696d75,0x65636e61, + 0x00000000,0x00060005,0x00000087,0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x00070005, + 0x0000008b,0x52776152,0x6f544247,0x656e694c,0x76287261,0x003b3366,0x00040005,0x0000008a, + 0x77615266,0x00626752,0x00080005,0x0000008e,0x52776152,0x6f544247,0x696d754c,0x636e616e, + 0x66762865,0x00003b33,0x00040005,0x0000008d,0x77615266,0x00626752,0x00080005,0x00000093, + 0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006,0x00000093, + 0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x00000093,0x00000001,0x69655766, + 0x73746867,0x00000000,0x00060006,0x00000093,0x00000002,0x73614269,0x736f5065,0x00000000, + 0x000b0005,0x00000097,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461, + 0x3b326676,0x3b326976,0x00000000,0x00030005,0x00000095,0x00765566,0x00040005,0x00000096, + 0x7a695369,0x00000065,0x000c0005,0x0000009a,0x766e6f43,0x46747265,0x446d6f72,0x63697665, + 0x70654465,0x6f546874,0x77656956,0x63617053,0x31662865,0x0000003b,0x00060005,0x00000099, + 0x76654466,0x44656369,0x68747065,0x00000000,0x00070005,0x000000a0,0x6e4f7349,0x65726353, + 0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000009e,0x00736f70,0x00040005,0x0000009f, + 0x657a6973,0x00000000,0x00060005,0x000000a4,0x76557349,0x69736e49,0x76286564,0x003b3266, + 0x00030005,0x000000a3,0x00765566,0x00080005,0x000000a9,0x446e694d,0x64697669,0x79426465, + 0x2878614d,0x663b3166,0x00003b31,0x00030005,0x000000a7,0x00003076,0x00030005,0x000000a8, + 0x00003176,0x000b0005,0x000000ad,0x6b636150,0x65566465,0x726f7463,0x6c656946,0x746e4564, + 0x73497972,0x6d697250,0x28797261,0x003b3175,0x00050005,0x000000ac,0x6b636170,0x6e456465, + 0x00797274,0x000c0005,0x000000b5,0x6b636150,0x74636556,0x6946726f,0x45646c65,0x6972746e, + 0x62287365,0x31753b31,0x3b31753b,0x3b326676,0x00000000,0x00050005,0x000000b1,0x50734962, + 0x616d6972,0x00007972,0x00070005,0x000000b2,0x67694875,0x69725068,0x7469726f,0x63614679, + 0x00726f74,0x00070005,0x000000b3,0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f, + 0x00060005,0x000000b4,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x000c0005,0x000000b8, + 0x50746567,0x726f6972,0x46797469,0x6f746361,0x6f724672,0x6569566d,0x61705377,0x65446563, + 0x28687470,0x003b3166,0x00080005,0x000000b7,0x65695666,0x61705377,0x65446563,0x49687470, + 0x74654d6e,0x00737265,0x00090005,0x000000bc,0x706d6f63,0x47657475,0x46656d61,0x646c6569, + 0x2873764d,0x3b326976,0x00000000,0x00040005,0x000000bb,0x50785069,0x0000736f,0x00040005, + 0x000000cd,0x61726170,0x0000006d,0x00040005,0x000000d0,0x61726170,0x0000006d,0x00030005, + 0x000000f1,0x00000072,0x00040005,0x00000101,0x61726170,0x0000006d,0x00040005,0x00000103, + 0x61726170,0x0000006d,0x00040005,0x00000106,0x61726170,0x0000006d,0x00030005,0x0000010a, + 0x00000070,0x00040005,0x0000010d,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170, + 0x0000006d,0x00040005,0x00000115,0x61726170,0x0000006d,0x00040005,0x00000118,0x61726170, + 0x0000006d,0x00040005,0x0000011b,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170, + 0x0000006d,0x00030005,0x00000127,0x0000006a,0x00030005,0x0000012c,0x0000006b,0x00040005, + 0x00000134,0x61726170,0x0000006d,0x00040005,0x00000144,0x61726170,0x0000006d,0x00040005, + 0x00000145,0x61726170,0x0000006d,0x00040005,0x00000146,0x61726170,0x0000006d,0x00040005, + 0x0000014a,0x49466263,0x0000745f,0x00060006,0x0000014a,0x00000000,0x646e6572,0x69537265, + 0x0000657a,0x00060006,0x0000014a,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006, + 0x0000014a,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000014a, + 0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x0000014a,0x00000004,0x656d6163, + 0x61466172,0x00000072,0x00080006,0x0000014a,0x00000005,0x63737075,0x72656c61,0x67726154, + 0x69537465,0x0000657a,0x00050006,0x0000014a,0x00000006,0x65646f4d,0x00000000,0x00050006, + 0x0000014a,0x00000007,0x65736572,0x00000074,0x00080006,0x0000014a,0x00000008,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x0000014a,0x00000009,0x746c6564, + 0x6d695461,0x00000065,0x00090006,0x0000014a,0x0000000a,0x4c445548,0x41737365,0x63617474, + 0x46646568,0x6f746361,0x00000072,0x00080006,0x0000014a,0x0000000b,0x74736964,0x6974726f, + 0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x0000014a,0x0000000c,0x6974706f,0x466c6163, + 0x53776f6c,0x656c6163,0x00000000,0x00090006,0x0000014a,0x0000000d,0x6974706f,0x466c6163, + 0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x0000014a,0x0000000e,0x70736964, + 0x68637461,0x67616c46,0x00000073,0x00070006,0x0000014a,0x0000000f,0x5278616d,0x65646e65, + 0x7a695372,0x00000065,0x00090006,0x0000014a,0x00000010,0x6974706f,0x466c6163,0x48776f6c, + 0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x0000014a,0x00000011,0x496d754e,0x6174736e, + 0x7365636e,0x00000000,0x00090006,0x0000014a,0x00000012,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x73614274,0x00000065,0x00090006,0x0000014a,0x00000013,0x65746e69,0x6c6f7072, + 0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x0000014a,0x00000014,0x75626564, + 0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x0000014a,0x00000015,0x6b636162,0x66667542, + 0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000014a,0x00000016, + 0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x0000014a,0x00000017,0x6e615466, + 0x666c6148,0x00564f46,0x00050006,0x0000014a,0x00000018,0x6461705f,0x00000031,0x00050006, + 0x0000014a,0x00000019,0x74694a66,0x00726574,0x00080006,0x0000014a,0x0000001a,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000014c,0x49466263,0x00000000, + 0x000a0005,0x0000017c,0x72705f72,0x6f697665,0x695f7375,0x7265746e,0x616c6f70,0x6e6f6974, + 0x756f735f,0x00656372,0x00060005,0x00000180,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x000a0005,0x00000189,0x75635f72,0x6e657272,0x6e695f74,0x70726574,0x74616c6f,0x5f6e6f69, + 0x72756f73,0x00006563,0x00090005,0x00000192,0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974, + 0x6365765f,0x73726f74,0x00000000,0x00060005,0x00000199,0x69645f72,0x6574616c,0x65645f64, + 0x00687470,0x00090005,0x000001a0,0x6e695f72,0x5f747570,0x74736964,0x6974726f,0x665f6e6f, + 0x646c6569,0x00000000,0x000a0005,0x000001ab,0x675f7772,0x5f656d61,0x69746f6d,0x765f6e6f, + 0x6f746365,0x69665f72,0x5f646c65,0x00000078,0x000a0005,0x000001b2,0x675f7772,0x5f656d61, + 0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65,0x00000079,0x00060005,0x000001b8, + 0x65725075,0x756f6976,0x6c615673,0x00586575,0x00060005,0x000001be,0x65725075,0x756f6976, + 0x6c615673,0x00596575,0x00090005,0x000001c4,0x69784575,0x6e697473,0x63655667,0x46726f74, + 0x646c6569,0x72746e45,0x00000079,0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005, + 0x000001c7,0x61726170,0x0000006d,0x00030005,0x000001d5,0x00005966,0x00030005,0x000001e8, + 0x00000070,0x00040005,0x000001ed,0x61726170,0x0000006d,0x00040005,0x000001f5,0x61726170, + 0x0000006d,0x00050005,0x000001ff,0x6e694c66,0x52726165,0x00006267,0x00040005,0x00000200, + 0x61726170,0x0000006d,0x00040005,0x00000204,0x61726170,0x0000006d,0x00040005,0x0000020e, + 0x61726170,0x0000006d,0x00040005,0x00000210,0x61726170,0x0000006d,0x00040005,0x00000211, + 0x61726170,0x0000006d,0x00050005,0x00000218,0x6d754c66,0x6e616e69,0x00006563,0x00040005, + 0x0000021e,0x61726170,0x0000006d,0x00040005,0x00000221,0x61726170,0x0000006d,0x00040005, + 0x00000224,0x61726170,0x0000006d,0x00040005,0x00000227,0x61726170,0x0000006d,0x00040005, + 0x0000022a,0x61726170,0x0000006d,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00050005, + 0x00000234,0x53785066,0x6c706d61,0x00000065,0x00040005,0x0000023d,0x61746164,0x00000000, + 0x00040005,0x00000243,0x46785066,0x00636172,0x00040005,0x00000244,0x61726170,0x0000006d, + 0x00070005,0x00000270,0x69766564,0x6f546563,0x77656956,0x74706544,0x00000068,0x00030005, + 0x0000029b,0x0000006d,0x00040005,0x0000029c,0x61726170,0x0000006d,0x00040005,0x0000029d, + 0x61726170,0x0000006d,0x00040005,0x000002a4,0x61726170,0x0000006d,0x00040005,0x000002a5, + 0x61726170,0x0000006d,0x00050005,0x000002b3,0x69725075,0x7469726f,0x00000079,0x00040005, + 0x000002c3,0x6b636170,0x00586465,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00040005, + 0x000002ca,0x6b636170,0x00596465,0x00040005,0x000002cc,0x61726170,0x0000006d,0x00040005, + 0x000002d7,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00060005, + 0x000002db,0x69725075,0x7469726f,0x63614679,0x00726f74,0x00040005,0x000002e5,0x61726170, + 0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d,0x00070005,0x000002eb,0x49765566, + 0x7263536e,0x536e6565,0x65636170,0x00000000,0x00070005,0x000002f3,0x73694466,0x74726f74, + 0x466e6f69,0x646c6569,0x00007655,0x00040005,0x000002f4,0x61726170,0x0000006d,0x00080005, + 0x000002f7,0x73694469,0x74726f74,0x506e6f69,0x6c657869,0x7366664f,0x00007465,0x00090005, + 0x000002fd,0x49765566,0x746e496e,0x6f707265,0x6974616c,0x65526e6f,0x74537463,0x00747261, + 0x00070005,0x00000303,0x4c765566,0x65747465,0x786f4272,0x6c616353,0x00000065,0x00080005, + 0x00000309,0x49765566,0x746e496e,0x6f707265,0x6974616c,0x65526e6f,0x00007463,0x00060005, + 0x0000030f,0x70654466,0x61536874,0x656c706d,0x00000000,0x00040005,0x00000313,0x61726170, + 0x0000006d,0x00070005,0x00000315,0x6d614766,0x746f4d65,0x566e6f69,0x6f746365,0x00000072, + 0x00040005,0x00000319,0x61726170,0x0000006d,0x00070005,0x0000031b,0x746f4d66,0x566e6f69, + 0x6f746365,0x6c614872,0x00000066,0x00080005,0x0000031e,0x746e4966,0x6f707265,0x6574616c, + 0x636f4c64,0x6f697461,0x0076556e,0x00060005,0x00000322,0x65695666,0x61705377,0x65446563, + 0x00687470,0x00040005,0x00000323,0x61726170,0x0000006d,0x00090005,0x00000326,0x67694875, + 0x69725068,0x7469726f,0x63614679,0x50726f74,0x616d6972,0x00007972,0x00040005,0x00000327, + 0x61726170,0x0000006d,0x00070005,0x0000032a,0x76657270,0x6b636142,0x66667562,0x6f437265, + 0x0000006c,0x00040005,0x00000330,0x61726170,0x0000006d,0x00070005,0x00000332,0x42727563, + 0x626b6361,0x65666675,0x6c6f4372,0x00000000,0x00040005,0x00000333,0x61726170,0x0000006d, + 0x00050005,0x00000336,0x76657270,0x616d754c,0x00000000,0x00040005,0x00000338,0x61726170, + 0x0000006d,0x00050005,0x0000033c,0x72727563,0x616d754c,0x00000000,0x00040005,0x0000033d, + 0x61726170,0x0000006d,0x00070005,0x00000341,0x776f4c75,0x6f697250,0x79746972,0x74636146, + 0x0000726f,0x00040005,0x00000345,0x61726170,0x0000006d,0x00040005,0x00000346,0x61726170, + 0x0000006d,0x00040005,0x0000034a,0x61726170,0x0000006d,0x00040005,0x00000352,0x61726170, + 0x0000006d,0x00070005,0x00000356,0x6b636170,0x65566465,0x726f7463,0x6d697250,0x00797261, + 0x00040005,0x00000358,0x61726170,0x0000006d,0x00040005,0x00000359,0x61726170,0x0000006d, + 0x00040005,0x0000035b,0x61726170,0x0000006d,0x00040005,0x0000035d,0x61726170,0x0000006d, + 0x00060005,0x00000360,0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x00000362, + 0x61726170,0x0000006d,0x00040005,0x00000364,0x61726170,0x0000006d,0x00060005,0x00000367, + 0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x00000370,0x66664f69,0x00746573, + 0x00050005,0x00000374,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x0000037a,0x61726170, + 0x0000006d,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005,0x00000380,0x61726170, + 0x0000006d,0x00040005,0x00000382,0x61726170,0x0000006d,0x00080005,0x00000387,0x69725762, + 0x65536574,0x646e6f63,0x56797261,0x6f746365,0x00007372,0x00060005,0x00000391,0x69725762, + 0x65536574,0x646e6f63,0x00797261,0x00060005,0x00000392,0x6d754e75,0x6d697250,0x48797261, + 0x00737469,0x00070005,0x00000393,0x63655366,0x61646e6f,0x74537972,0x63537065,0x00656c61, + 0x00040005,0x00000399,0x65745366,0x00764d70,0x00050005,0x0000039c,0x65724266,0x69446b61, + 0x00007473,0x00040005,0x000003a0,0x61726170,0x0000006d,0x00040005,0x000003a1,0x61726170, + 0x0000006d,0x00050005,0x000003a3,0x53764d66,0x656c6163,0x00000000,0x00080005,0x000003af, + 0x63655366,0x61646e6f,0x6f4c7972,0x69746163,0x76556e6f,0x00000000,0x00060005,0x000003b5, + 0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000003b7,0x61726170,0x0000006d, + 0x00040005,0x000003b9,0x61726170,0x0000006d,0x000a0005,0x000003bb,0x67694875,0x69725068, + 0x7469726f,0x63614679,0x53726f74,0x6e6f6365,0x79726164,0x00000000,0x00040005,0x000003be, + 0x61726170,0x0000006d,0x00040005,0x000003bf,0x61726170,0x0000006d,0x00050005,0x000003c1, + 0x436f5466,0x65746e65,0x00000072,0x00040005,0x000003c8,0x61726170,0x0000006d,0x00040005, + 0x000003c9,0x61726170,0x0000006d,0x00080005,0x000003cd,0x6b636170,0x65566465,0x726f7463, + 0x6f636553,0x7261646e,0x00000079,0x00040005,0x000003cf,0x61726170,0x0000006d,0x00040005, + 0x000003d0,0x61726170,0x0000006d,0x00040005,0x000003d2,0x61726170,0x0000006d,0x00040005, + 0x000003d4,0x61726170,0x0000006d,0x00060005,0x000003d7,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x000003df,0x66664f69,0x00746573,0x00050005,0x000003e3,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x000003ec,0x61726170,0x0000006d,0x00040005,0x000003ee, + 0x61726170,0x0000006d,0x00090005,0x000003f4,0x69784575,0x6e697473,0x63655667,0x46726f74, + 0x646c6569,0x72746e45,0x00000079,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005, + 0x000003f7,0x61726170,0x0000006d,0x00040005,0x000003fa,0x61726170,0x0000006d,0x00080005, + 0x0000040c,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x00000410,0x61726170,0x0000006d,0x00030047,0x0000014a,0x00000002,0x00050048,0x0000014a, + 0x00000000,0x00000023,0x00000000,0x00050048,0x0000014a,0x00000001,0x00000023,0x00000008, + 0x00050048,0x0000014a,0x00000002,0x00000023,0x00000010,0x00050048,0x0000014a,0x00000003, + 0x00000023,0x00000018,0x00050048,0x0000014a,0x00000004,0x00000023,0x0000001c,0x00050048, + 0x0000014a,0x00000005,0x00000023,0x00000020,0x00050048,0x0000014a,0x00000006,0x00000023, + 0x00000028,0x00050048,0x0000014a,0x00000007,0x00000023,0x0000002c,0x00050048,0x0000014a, + 0x00000008,0x00000023,0x00000030,0x00050048,0x0000014a,0x00000009,0x00000023,0x00000040, + 0x00050048,0x0000014a,0x0000000a,0x00000023,0x00000044,0x00050048,0x0000014a,0x0000000b, + 0x00000023,0x00000048,0x00050048,0x0000014a,0x0000000c,0x00000023,0x00000050,0x00050048, + 0x0000014a,0x0000000d,0x00000023,0x00000058,0x00050048,0x0000014a,0x0000000e,0x00000023, + 0x0000005c,0x00050048,0x0000014a,0x0000000f,0x00000023,0x00000060,0x00050048,0x0000014a, + 0x00000010,0x00000023,0x00000068,0x00050048,0x0000014a,0x00000011,0x00000023,0x0000006c, + 0x00050048,0x0000014a,0x00000012,0x00000023,0x00000070,0x00050048,0x0000014a,0x00000013, + 0x00000023,0x00000078,0x00050048,0x0000014a,0x00000014,0x00000023,0x00000080,0x00050048, + 0x0000014a,0x00000015,0x00000023,0x0000008c,0x00050048,0x0000014a,0x00000016,0x00000023, + 0x00000090,0x00050048,0x0000014a,0x00000017,0x00000023,0x00000098,0x00050048,0x0000014a, + 0x00000018,0x00000023,0x0000009c,0x00050048,0x0000014a,0x00000019,0x00000023,0x000000a0, + 0x00050048,0x0000014a,0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000014c,0x00000021, + 0x00000007,0x00040047,0x0000014c,0x00000022,0x00000000,0x00040047,0x0000017c,0x00000021, + 0x00000002,0x00040047,0x0000017c,0x00000022,0x00000000,0x00040047,0x00000180,0x00000021, + 0x000003e8,0x00040047,0x00000180,0x00000022,0x00000000,0x00040047,0x00000189,0x00000021, + 0x00000003,0x00040047,0x00000189,0x00000022,0x00000000,0x00040047,0x00000192,0x00000021, + 0x00000000,0x00040047,0x00000192,0x00000022,0x00000000,0x00040047,0x00000199,0x00000021, + 0x00000001,0x00040047,0x00000199,0x00000022,0x00000000,0x00040047,0x000001a0,0x00000021, + 0x00000004,0x00040047,0x000001a0,0x00000022,0x00000000,0x00040047,0x000001ab,0x00000021, + 0x00000005,0x00040047,0x000001ab,0x00000022,0x00000000,0x00040047,0x000001b2,0x00000021, + 0x00000006,0x00040047,0x000001b2,0x00000022,0x00000000,0x00040047,0x0000040c,0x0000000b, + 0x0000001c,0x00040047,0x0000041b,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008, + 0x00000007,0x00040020,0x0000000d,0x00000007,0x00000008,0x00040021,0x0000000e,0x00000006, + 0x0000000d,0x00040017,0x00000012,0x00000008,0x00000003,0x00040021,0x00000013,0x00000012, + 0x0000000d,0x00040020,0x00000017,0x00000007,0x00000012,0x00040021,0x00000018,0x00000012, + 0x00000017,0x00040017,0x0000001c,0x00000008,0x00000002,0x00040020,0x0000001d,0x00000007, + 0x0000001c,0x00040021,0x0000001e,0x0000001c,0x0000001d,0x00040021,0x00000022,0x00000008, + 0x0000000d,0x00050021,0x00000026,0x00000008,0x0000000d,0x0000000d,0x00050021,0x0000002f, + 0x00000006,0x00000007,0x00000007,0x00060021,0x00000038,0x00000012,0x00000017,0x00000017, + 0x00000017,0x00040015,0x00000047,0x00000020,0x00000001,0x00040017,0x00000048,0x00000047, + 0x00000002,0x00030021,0x00000049,0x00000048,0x00040017,0x00000052,0x00000008,0x00000004, + 0x00030021,0x00000053,0x00000052,0x00030021,0x00000056,0x00000006,0x00030021,0x00000059, + 0x00000008,0x00040021,0x0000005e,0x00000012,0x0000001d,0x00040020,0x00000065,0x00000007, + 0x00000048,0x00040021,0x00000066,0x0000001c,0x00000065,0x00040021,0x0000006a,0x00000008, + 0x00000065,0x00040017,0x00000071,0x00000006,0x00000002,0x00040020,0x00000072,0x00000007, + 0x00000071,0x00050021,0x00000073,0x00000002,0x00000065,0x00000072,0x00050021,0x00000078, + 0x00000006,0x00000065,0x00000072,0x00040021,0x0000007d,0x00000008,0x00000017,0x00060021, + 0x00000084,0x00000012,0x00000017,0x0000000d,0x0000000d,0x0004002b,0x00000006,0x00000090, + 0x00000004,0x0004001c,0x00000091,0x00000048,0x00000090,0x0004001c,0x00000092,0x00000008, + 0x00000090,0x0005001e,0x00000093,0x00000091,0x00000092,0x00000048,0x00050021,0x00000094, + 0x00000093,0x0000001d,0x00000065,0x00020014,0x0000009c,0x00050021,0x0000009d,0x0000009c, + 0x00000065,0x00000065,0x00040021,0x000000a2,0x0000009c,0x0000001d,0x00050021,0x000000a6, + 0x00000008,0x00000008,0x00000008,0x00040021,0x000000ab,0x0000009c,0x00000007,0x00040020, + 0x000000af,0x00000007,0x0000009c,0x00070021,0x000000b0,0x00000071,0x000000af,0x00000007, + 0x00000007,0x0000001d,0x00040021,0x000000ba,0x00000002,0x00000065,0x0004002b,0x00000008, + 0x000000c3,0x00000000,0x0004002b,0x00000008,0x000000cf,0x3f800000,0x0004002b,0x00000006, + 0x00000100,0xff800000,0x0004002b,0x00000008,0x0000010c,0x3c4fcd9e,0x0004002b,0x00000008, + 0x00000111,0x3f560008,0x0004002b,0x00000008,0x00000117,0x4196d014,0x0004002b,0x00000008, + 0x0000011a,0x41958000,0x0004002b,0x00000008,0x00000121,0x40c8e061,0x0004002b,0x00000008, + 0x00000128,0x3d25aee6,0x0004002b,0x00000008,0x00000129,0x3d9e8391,0x0004002b,0x00000008, + 0x0000012a,0x4019999a,0x0006002c,0x00000012,0x0000012b,0x00000128,0x00000129,0x0000012a, + 0x0004002b,0x00000008,0x0000012d,0x3f72a76e,0x0004002b,0x00000008,0x0000012e,0x3d558919, + 0x0005002c,0x0000001c,0x0000012f,0x0000012d,0x0000012e,0x001d001e,0x0000014a,0x00000048, + 0x00000048,0x0000001c,0x00000008,0x00000008,0x00000048,0x00000047,0x00000047,0x00000052, + 0x00000008,0x00000047,0x00000048,0x0000001c,0x00000047,0x00000006,0x00000048,0x00000047, + 0x00000047,0x00000048,0x00000048,0x00000012,0x00000006,0x0000001c,0x00000008,0x00000047, + 0x0000001c,0x0000001c,0x00040020,0x0000014b,0x00000002,0x0000014a,0x0004003b,0x0000014b, + 0x0000014c,0x00000002,0x0004002b,0x00000047,0x0000014d,0x00000012,0x00040020,0x0000014e, + 0x00000002,0x00000048,0x0004002b,0x00000047,0x00000153,0x00000013,0x0004002b,0x00000047, + 0x00000158,0x00000000,0x0004002b,0x00000047,0x0000015d,0x00000001,0x0004002b,0x00000047, + 0x00000162,0x00000008,0x00040020,0x00000163,0x00000002,0x00000052,0x0004002b,0x00000047, + 0x00000168,0x00000015,0x00040020,0x00000169,0x00000002,0x00000006,0x0004002b,0x00000047, + 0x0000016e,0x00000016,0x0004002b,0x00000006,0x0000016f,0x00000000,0x00040020,0x00000170, + 0x00000002,0x00000008,0x0004002b,0x00000006,0x00000175,0x00000001,0x00090019,0x0000017a, + 0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000017b,0x00000000,0x0000017a,0x0004003b,0x0000017b,0x0000017c,0x00000000,0x0002001a, + 0x0000017e,0x00040020,0x0000017f,0x00000000,0x0000017e,0x0004003b,0x0000017f,0x00000180, + 0x00000000,0x0003001b,0x00000182,0x0000017a,0x0004003b,0x0000017b,0x00000189,0x00000000, + 0x0004003b,0x0000017b,0x00000192,0x00000000,0x0004003b,0x0000017b,0x00000199,0x00000000, + 0x0004003b,0x0000017b,0x000001a0,0x00000000,0x00090019,0x000001a9,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x000001aa,0x00000000, + 0x000001a9,0x0004003b,0x000001aa,0x000001ab,0x00000000,0x00040020,0x000001af,0x0000000b, + 0x00000006,0x0004003b,0x000001aa,0x000001b2,0x00000000,0x0004002b,0x00000008,0x000001ce, + 0x3e59b3d0,0x0004002b,0x00000008,0x000001cf,0x3f371759,0x0004002b,0x00000008,0x000001d0, + 0x3d93dd98,0x0006002c,0x00000012,0x000001d1,0x000001ce,0x000001cf,0x000001d0,0x0004002b, + 0x00000008,0x000001d6,0x3e86809d,0x0004002b,0x00000008,0x000001da,0x3f2d9168,0x0004002b, + 0x00000008,0x000001df,0x3d72e48f,0x0004002b,0x00000006,0x000001e0,0x00000002,0x0004002b, + 0x00000008,0x000001eb,0x42a00000,0x0004002b,0x00000008,0x00000207,0x461c4000,0x0004002b, + 0x00000008,0x00000239,0x3f000000,0x0005002c,0x0000001c,0x0000023a,0x00000239,0x00000239, + 0x00040020,0x0000023c,0x00000007,0x00000093,0x0004002b,0x00000047,0x0000023e,0x00000002, + 0x0005002c,0x00000048,0x00000247,0x00000158,0x00000158,0x0005002c,0x00000048,0x00000249, + 0x0000015d,0x00000158,0x0005002c,0x00000048,0x0000024b,0x00000158,0x0000015d,0x0004002b, + 0x00000047,0x0000024d,0x00000003,0x0005002c,0x00000048,0x0000024e,0x0000015d,0x0000015d, + 0x00040020,0x0000026f,0x00000007,0x00000052,0x00040017,0x0000027f,0x0000009c,0x00000002, + 0x0004002b,0x00000006,0x000002ae,0x80000000,0x0004002b,0x00000006,0x000002b8,0x000003ff, + 0x0004002b,0x00000006,0x000002ba,0x00000015,0x0004002b,0x00000006,0x000002be,0x0000001f, + 0x0004002b,0x00000006,0x000002c0,0x00000010,0x0004002b,0x00000008,0x000002d6,0x3ea8f5c3, + 0x0004002b,0x00000008,0x000002e2,0x447fc000,0x0004002b,0x00000008,0x00000337,0x3a83126f, + 0x0004002b,0x00000008,0x00000348,0x41f80000,0x00030029,0x0000009c,0x00000357,0x00040020, + 0x00000366,0x00000007,0x00000047,0x0004002b,0x00000047,0x0000036e,0x00000004,0x0004002b, + 0x00000008,0x0000039f,0x3f3504f3,0x0003002a,0x0000009c,0x000003ce,0x0004002b,0x00000006, + 0x00000402,0x00000003,0x00040017,0x0000040a,0x00000006,0x00000003,0x00040020,0x0000040b, + 0x00000001,0x0000040a,0x0004003b,0x0000040b,0x0000040c,0x00000001,0x0004002b,0x00000008, + 0x00000412,0x387fda40,0x0004002b,0x00000008,0x00000413,0x477fe000,0x0004002b,0x00000008, + 0x00000414,0x37801002,0x0004002b,0x00000008,0x00000415,0x7f7fffff,0x0004002b,0x00000008, + 0x00000416,0x00800000,0x0004002b,0x00000006,0x00000417,0x00000020,0x0004002b,0x00000006, + 0x00000418,0x00000005,0x0004002b,0x00000006,0x00000419,0x0000000a,0x0004002b,0x00000006, + 0x0000041a,0x00000008,0x0006002c,0x0000040a,0x0000041b,0x0000041a,0x0000041a,0x00000175, + 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b, + 0x00000065,0x00000410,0x00000007,0x0004003d,0x0000040a,0x0000040d,0x0000040c,0x0007004f, + 0x00000071,0x0000040e,0x0000040d,0x0000040d,0x00000000,0x00000001,0x0004007c,0x00000048, + 0x0000040f,0x0000040e,0x0003003e,0x00000410,0x0000040f,0x00050039,0x00000002,0x00000411, + 0x000000bc,0x00000410,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006, + 0x000000be,0x0000000a,0x0004007c,0x00000008,0x000000bf,0x000000be,0x000200fe,0x000000bf, + 0x00010038,0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d, + 0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000008,0x000000c2,0x0000000f,0x00050050, + 0x0000001c,0x000000c4,0x000000c2,0x000000c3,0x0006000c,0x00000006,0x000000c5,0x00000001, + 0x0000003a,0x000000c4,0x000200fe,0x000000c5,0x00010038,0x00050036,0x00000012,0x00000015, + 0x00000000,0x00000013,0x00030037,0x0000000d,0x00000014,0x000200f8,0x00000016,0x0004003d, + 0x00000008,0x000000c8,0x00000014,0x00060050,0x00000012,0x000000c9,0x000000c8,0x000000c8, + 0x000000c8,0x000200fe,0x000000c9,0x00010038,0x00050036,0x00000012,0x0000001a,0x00000000, + 0x00000018,0x00030037,0x00000017,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x0000000d, + 0x000000cd,0x00000007,0x0004003b,0x0000000d,0x000000d0,0x00000007,0x0004003d,0x00000012, + 0x000000cc,0x00000019,0x0003003e,0x000000cd,0x000000c3,0x00050039,0x00000012,0x000000ce, + 0x00000015,0x000000cd,0x0003003e,0x000000d0,0x000000cf,0x00050039,0x00000012,0x000000d1, + 0x00000015,0x000000d0,0x0008000c,0x00000012,0x000000d2,0x00000001,0x0000002b,0x000000cc, + 0x000000ce,0x000000d1,0x000200fe,0x000000d2,0x00010038,0x00050036,0x0000001c,0x00000020, + 0x00000000,0x0000001e,0x00030037,0x0000001d,0x0000001f,0x000200f8,0x00000021,0x0004003d, + 0x0000001c,0x000000d5,0x0000001f,0x0006000c,0x0000001c,0x000000d6,0x00000001,0x0000000a, + 0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000008,0x00000024,0x00000000, + 0x00000022,0x00030037,0x0000000d,0x00000023,0x000200f8,0x00000025,0x0004003d,0x00000008, + 0x000000d9,0x00000023,0x0006000c,0x00000008,0x000000da,0x00000001,0x00000002,0x000000d9, + 0x000200fe,0x000000da,0x00010038,0x00050036,0x00000008,0x00000029,0x00000000,0x00000026, + 0x00030037,0x0000000d,0x00000027,0x00030037,0x0000000d,0x00000028,0x000200f8,0x0000002a, + 0x0004003d,0x00000008,0x000000dd,0x00000027,0x0004003d,0x00000008,0x000000de,0x00000028, + 0x0007000c,0x00000008,0x000000df,0x00000001,0x00000025,0x000000dd,0x000000de,0x000200fe, + 0x000000df,0x00010038,0x00050036,0x00000008,0x0000002d,0x00000000,0x00000026,0x00030037, + 0x0000000d,0x0000002b,0x00030037,0x0000000d,0x0000002c,0x000200f8,0x0000002e,0x0004003d, + 0x00000008,0x000000e2,0x0000002b,0x0004003d,0x00000008,0x000000e3,0x0000002c,0x0007000c, + 0x00000008,0x000000e4,0x00000001,0x00000028,0x000000e2,0x000000e3,0x000200fe,0x000000e4, + 0x00010038,0x00050036,0x00000006,0x00000032,0x00000000,0x0000002f,0x00030037,0x00000007, + 0x00000030,0x00030037,0x00000007,0x00000031,0x000200f8,0x00000033,0x0004003d,0x00000006, + 0x000000e7,0x00000030,0x0004003d,0x00000006,0x000000e8,0x00000031,0x0007000c,0x00000006, + 0x000000e9,0x00000001,0x00000029,0x000000e7,0x000000e8,0x000200fe,0x000000e9,0x00010038, + 0x00050036,0x00000008,0x00000036,0x00000000,0x00000026,0x00030037,0x0000000d,0x00000034, + 0x00030037,0x0000000d,0x00000035,0x000200f8,0x00000037,0x0004003d,0x00000008,0x000000ec, + 0x00000034,0x0004003d,0x00000008,0x000000ed,0x00000035,0x0007000c,0x00000008,0x000000ee, + 0x00000001,0x0000001a,0x000000ec,0x000000ed,0x000200fe,0x000000ee,0x00010038,0x00050036, + 0x00000012,0x0000003c,0x00000000,0x00000038,0x00030037,0x00000017,0x00000039,0x00030037, + 0x00000017,0x0000003a,0x00030037,0x00000017,0x0000003b,0x000200f8,0x0000003d,0x0004003b, + 0x00000017,0x000000f1,0x00000007,0x0004003d,0x00000012,0x000000f2,0x00000039,0x0004007f, + 0x00000012,0x000000f3,0x000000f2,0x0004003d,0x00000012,0x000000f4,0x0000003b,0x00050085, + 0x00000012,0x000000f5,0x000000f3,0x000000f4,0x0004003d,0x00000012,0x000000f6,0x0000003b, + 0x00050081,0x00000012,0x000000f7,0x000000f5,0x000000f6,0x0003003e,0x000000f1,0x000000f7, + 0x0004003d,0x00000012,0x000000f8,0x00000039,0x0004003d,0x00000012,0x000000f9,0x0000003a, + 0x00050085,0x00000012,0x000000fa,0x000000f8,0x000000f9,0x0004003d,0x00000012,0x000000fb, + 0x000000f1,0x00050081,0x00000012,0x000000fc,0x000000fa,0x000000fb,0x000200fe,0x000000fc, + 0x00010038,0x00050036,0x00000012,0x0000003f,0x00000000,0x00000018,0x00030037,0x00000017, + 0x0000003e,0x000200f8,0x00000040,0x0004003b,0x00000007,0x00000101,0x00000007,0x0004003b, + 0x0000000d,0x00000103,0x00000007,0x0004003b,0x00000017,0x00000106,0x00000007,0x0004003d, + 0x00000012,0x000000ff,0x0000003e,0x0003003e,0x00000101,0x00000100,0x00050039,0x00000008, + 0x00000102,0x0000000b,0x00000101,0x0003003e,0x00000103,0x00000102,0x00050039,0x00000012, + 0x00000104,0x00000015,0x00000103,0x00050085,0x00000012,0x00000105,0x000000ff,0x00000104, + 0x0003003e,0x00000106,0x00000105,0x00050039,0x00000012,0x00000107,0x0000001a,0x00000106, + 0x000200fe,0x00000107,0x00010038,0x00050036,0x00000012,0x00000042,0x00000000,0x00000018, + 0x00030037,0x00000017,0x00000041,0x000200f8,0x00000043,0x0004003b,0x00000017,0x0000010a, + 0x00000007,0x0004003b,0x0000000d,0x0000010d,0x00000007,0x0004003b,0x0000000d,0x00000112, + 0x00000007,0x0004003b,0x00000017,0x00000115,0x00000007,0x0004003b,0x0000000d,0x00000118, + 0x00000007,0x0004003b,0x0000000d,0x0000011b,0x00000007,0x0004003b,0x0000000d,0x00000122, + 0x00000007,0x0004003d,0x00000012,0x0000010b,0x00000041,0x0003003e,0x0000010d,0x0000010c, + 0x00050039,0x00000012,0x0000010e,0x00000015,0x0000010d,0x0007000c,0x00000012,0x0000010f, + 0x00000001,0x0000001a,0x0000010b,0x0000010e,0x0003003e,0x0000010a,0x0000010f,0x0004003d, + 0x00000012,0x00000110,0x0000010a,0x0003003e,0x00000112,0x00000111,0x00050039,0x00000012, + 0x00000113,0x00000015,0x00000112,0x00050083,0x00000012,0x00000114,0x00000110,0x00000113, + 0x0003003e,0x00000115,0x00000114,0x00050039,0x00000012,0x00000116,0x0000001a,0x00000115, + 0x0003003e,0x00000118,0x00000117,0x00050039,0x00000012,0x00000119,0x00000015,0x00000118, + 0x0003003e,0x0000011b,0x0000011a,0x00050039,0x00000012,0x0000011c,0x00000015,0x0000011b, + 0x0004003d,0x00000012,0x0000011d,0x0000010a,0x00050085,0x00000012,0x0000011e,0x0000011c, + 0x0000011d,0x00050083,0x00000012,0x0000011f,0x00000119,0x0000011e,0x00050088,0x00000012, + 0x00000120,0x00000116,0x0000011f,0x0003003e,0x00000122,0x00000121,0x00050039,0x00000012, + 0x00000123,0x00000015,0x00000122,0x0007000c,0x00000012,0x00000124,0x00000001,0x0000001a, + 0x00000120,0x00000123,0x000200fe,0x00000124,0x00010038,0x00050036,0x00000012,0x00000045, + 0x00000000,0x00000018,0x00030037,0x00000017,0x00000044,0x000200f8,0x00000046,0x0004003b, + 0x00000017,0x00000127,0x00000007,0x0004003b,0x0000001d,0x0000012c,0x00000007,0x0004003b, + 0x00000017,0x00000134,0x00000007,0x0004003b,0x00000017,0x00000144,0x00000007,0x0004003b, + 0x00000017,0x00000145,0x00000007,0x0004003b,0x00000017,0x00000146,0x00000007,0x0003003e, + 0x00000127,0x0000012b,0x0003003e,0x0000012c,0x0000012f,0x0004003d,0x00000012,0x00000130, + 0x00000044,0x0004003d,0x00000012,0x00000131,0x00000127,0x0008004f,0x00000012,0x00000132, + 0x00000131,0x00000131,0x00000000,0x00000000,0x00000000,0x00050083,0x00000012,0x00000133, + 0x00000130,0x00000132,0x0003003e,0x00000134,0x00000133,0x00050039,0x00000012,0x00000135, + 0x0000003f,0x00000134,0x0004003d,0x00000012,0x00000136,0x00000044,0x0004003d,0x00000012, + 0x00000137,0x00000127,0x0008004f,0x00000012,0x00000138,0x00000137,0x00000137,0x00000001, + 0x00000001,0x00000001,0x00050085,0x00000012,0x00000139,0x00000136,0x00000138,0x0004003d, + 0x00000012,0x0000013a,0x00000044,0x0004003d,0x0000001c,0x0000013b,0x0000012c,0x0008004f, + 0x00000012,0x0000013c,0x0000013b,0x0000013b,0x00000000,0x00000000,0x00000000,0x00050085, + 0x00000012,0x0000013d,0x0000013a,0x0000013c,0x0004003d,0x0000001c,0x0000013e,0x0000012c, + 0x0008004f,0x00000012,0x0000013f,0x0000013e,0x0000013e,0x00000001,0x00000001,0x00000001, + 0x00050081,0x00000012,0x00000140,0x0000013d,0x0000013f,0x0004003d,0x00000012,0x00000141, + 0x00000127,0x0008004f,0x00000012,0x00000142,0x00000141,0x00000141,0x00000002,0x00000002, + 0x00000002,0x0007000c,0x00000012,0x00000143,0x00000001,0x0000001a,0x00000140,0x00000142, + 0x0003003e,0x00000144,0x00000135,0x0003003e,0x00000145,0x00000139,0x0003003e,0x00000146, + 0x00000143,0x00070039,0x00000012,0x00000147,0x0000003c,0x00000144,0x00000145,0x00000146, + 0x000200fe,0x00000147,0x00010038,0x00050036,0x00000048,0x0000004a,0x00000000,0x00000049, + 0x000200f8,0x0000004b,0x00050041,0x0000014e,0x0000014f,0x0000014c,0x0000014d,0x0004003d, + 0x00000048,0x00000150,0x0000014f,0x000200fe,0x00000150,0x00010038,0x00050036,0x00000048, + 0x0000004c,0x00000000,0x00000049,0x000200f8,0x0000004d,0x00050041,0x0000014e,0x00000154, + 0x0000014c,0x00000153,0x0004003d,0x00000048,0x00000155,0x00000154,0x000200fe,0x00000155, + 0x00010038,0x00050036,0x00000048,0x0000004e,0x00000000,0x00000049,0x000200f8,0x0000004f, + 0x00050041,0x0000014e,0x00000159,0x0000014c,0x00000158,0x0004003d,0x00000048,0x0000015a, + 0x00000159,0x000200fe,0x0000015a,0x00010038,0x00050036,0x00000048,0x00000050,0x00000000, + 0x00000049,0x000200f8,0x00000051,0x00050041,0x0000014e,0x0000015e,0x0000014c,0x0000015d, + 0x0004003d,0x00000048,0x0000015f,0x0000015e,0x000200fe,0x0000015f,0x00010038,0x00050036, + 0x00000052,0x00000054,0x00000000,0x00000053,0x000200f8,0x00000055,0x00050041,0x00000163, + 0x00000164,0x0000014c,0x00000162,0x0004003d,0x00000052,0x00000165,0x00000164,0x000200fe, + 0x00000165,0x00010038,0x00050036,0x00000006,0x00000057,0x00000000,0x00000056,0x000200f8, + 0x00000058,0x00050041,0x00000169,0x0000016a,0x0000014c,0x00000168,0x0004003d,0x00000006, + 0x0000016b,0x0000016a,0x000200fe,0x0000016b,0x00010038,0x00050036,0x00000008,0x0000005a, + 0x00000000,0x00000059,0x000200f8,0x0000005b,0x00060041,0x00000170,0x00000171,0x0000014c, + 0x0000016e,0x0000016f,0x0004003d,0x00000008,0x00000172,0x00000171,0x000200fe,0x00000172, + 0x00010038,0x00050036,0x00000008,0x0000005c,0x00000000,0x00000059,0x000200f8,0x0000005d, + 0x00060041,0x00000170,0x00000176,0x0000014c,0x0000016e,0x00000175,0x0004003d,0x00000008, + 0x00000177,0x00000176,0x000200fe,0x00000177,0x00010038,0x00050036,0x00000012,0x00000060, + 0x00000000,0x0000005e,0x00030037,0x0000001d,0x0000005f,0x000200f8,0x00000061,0x0004003d, + 0x0000017a,0x0000017d,0x0000017c,0x0004003d,0x0000017e,0x00000181,0x00000180,0x00050056, + 0x00000182,0x00000183,0x0000017d,0x00000181,0x0004003d,0x0000001c,0x00000184,0x0000005f, + 0x00070058,0x00000052,0x00000185,0x00000183,0x00000184,0x00000002,0x000000c3,0x0008004f, + 0x00000012,0x00000186,0x00000185,0x00000185,0x00000000,0x00000001,0x00000002,0x000200fe, + 0x00000186,0x00010038,0x00050036,0x00000012,0x00000063,0x00000000,0x0000005e,0x00030037, + 0x0000001d,0x00000062,0x000200f8,0x00000064,0x0004003d,0x0000017a,0x0000018a,0x00000189, + 0x0004003d,0x0000017e,0x0000018b,0x00000180,0x00050056,0x00000182,0x0000018c,0x0000018a, + 0x0000018b,0x0004003d,0x0000001c,0x0000018d,0x00000062,0x00070058,0x00000052,0x0000018e, + 0x0000018c,0x0000018d,0x00000002,0x000000c3,0x0008004f,0x00000012,0x0000018f,0x0000018e, + 0x0000018e,0x00000000,0x00000001,0x00000002,0x000200fe,0x0000018f,0x00010038,0x00050036, + 0x0000001c,0x00000068,0x00000000,0x00000066,0x00030037,0x00000065,0x00000067,0x000200f8, + 0x00000069,0x0004003d,0x0000017a,0x00000193,0x00000192,0x0004003d,0x00000048,0x00000194, + 0x00000067,0x0007005f,0x00000052,0x00000195,0x00000193,0x00000194,0x00000002,0x00000158, + 0x0007004f,0x0000001c,0x00000196,0x00000195,0x00000195,0x00000000,0x00000001,0x000200fe, + 0x00000196,0x00010038,0x00050036,0x00000008,0x0000006c,0x00000000,0x0000006a,0x00030037, + 0x00000065,0x0000006b,0x000200f8,0x0000006d,0x0004003d,0x0000017a,0x0000019a,0x00000199, + 0x0004003d,0x00000048,0x0000019b,0x0000006b,0x0007005f,0x00000052,0x0000019c,0x0000019a, + 0x0000019b,0x00000002,0x00000158,0x00050051,0x00000008,0x0000019d,0x0000019c,0x00000000, + 0x000200fe,0x0000019d,0x00010038,0x00050036,0x0000001c,0x0000006f,0x00000000,0x0000001e, + 0x00030037,0x0000001d,0x0000006e,0x000200f8,0x00000070,0x0004003d,0x0000017a,0x000001a1, + 0x000001a0,0x0004003d,0x0000017e,0x000001a2,0x00000180,0x00050056,0x00000182,0x000001a3, + 0x000001a1,0x000001a2,0x0004003d,0x0000001c,0x000001a4,0x0000006e,0x00070058,0x00000052, + 0x000001a5,0x000001a3,0x000001a4,0x00000002,0x000000c3,0x0007004f,0x0000001c,0x000001a6, + 0x000001a5,0x000001a5,0x00000000,0x00000001,0x000200fe,0x000001a6,0x00010038,0x00050036, + 0x00000002,0x00000076,0x00000000,0x00000073,0x00030037,0x00000065,0x00000074,0x00030037, + 0x00000072,0x00000075,0x000200f8,0x00000077,0x0004003d,0x00000048,0x000001ac,0x00000074, + 0x00050041,0x00000007,0x000001ad,0x00000075,0x0000016f,0x0004003d,0x00000006,0x000001ae, + 0x000001ad,0x0006003c,0x000001af,0x000001b0,0x000001ab,0x000001ac,0x0000016f,0x000700ef, + 0x00000006,0x000001b1,0x000001b0,0x00000175,0x0000016f,0x000001ae,0x0004003d,0x00000048, + 0x000001b3,0x00000074,0x00050041,0x00000007,0x000001b4,0x00000075,0x00000175,0x0004003d, + 0x00000006,0x000001b5,0x000001b4,0x0006003c,0x000001af,0x000001b6,0x000001b2,0x000001b3, + 0x0000016f,0x000700ef,0x00000006,0x000001b7,0x000001b6,0x00000175,0x0000016f,0x000001b5, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000007b,0x00000000,0x00000078,0x00030037, + 0x00000065,0x00000079,0x00030037,0x00000072,0x0000007a,0x000200f8,0x0000007c,0x0004003b, + 0x00000007,0x000001b8,0x00000007,0x0004003b,0x00000007,0x000001be,0x00000007,0x0004003b, + 0x00000007,0x000001c4,0x00000007,0x0004003b,0x00000007,0x000001c5,0x00000007,0x0004003b, + 0x00000007,0x000001c7,0x00000007,0x0004003d,0x00000048,0x000001b9,0x00000079,0x00050041, + 0x00000007,0x000001ba,0x0000007a,0x0000016f,0x0004003d,0x00000006,0x000001bb,0x000001ba, + 0x0006003c,0x000001af,0x000001bc,0x000001ab,0x000001b9,0x0000016f,0x000700ef,0x00000006, + 0x000001bd,0x000001bc,0x00000175,0x0000016f,0x000001bb,0x0003003e,0x000001b8,0x000001bd, + 0x0004003d,0x00000048,0x000001bf,0x00000079,0x00050041,0x00000007,0x000001c0,0x0000007a, + 0x00000175,0x0004003d,0x00000006,0x000001c1,0x000001c0,0x0006003c,0x000001af,0x000001c2, + 0x000001b2,0x000001bf,0x0000016f,0x000700ef,0x00000006,0x000001c3,0x000001c2,0x00000175, + 0x0000016f,0x000001c1,0x0003003e,0x000001be,0x000001c3,0x0004003d,0x00000006,0x000001c6, + 0x000001b8,0x0003003e,0x000001c5,0x000001c6,0x0004003d,0x00000006,0x000001c8,0x000001be, + 0x0003003e,0x000001c7,0x000001c8,0x00060039,0x00000006,0x000001c9,0x00000032,0x000001c5, + 0x000001c7,0x0003003e,0x000001c4,0x000001c9,0x0004003d,0x00000006,0x000001ca,0x000001c4, + 0x000200fe,0x000001ca,0x00010038,0x00050036,0x00000008,0x0000007f,0x00000000,0x0000007d, + 0x00030037,0x00000017,0x0000007e,0x000200f8,0x00000080,0x0004003d,0x00000012,0x000001cd, + 0x0000007e,0x00050094,0x00000008,0x000001d2,0x000001cd,0x000001d1,0x000200fe,0x000001d2, + 0x00010038,0x00050036,0x00000008,0x00000082,0x00000000,0x0000007d,0x00030037,0x00000017, + 0x00000081,0x000200f8,0x00000083,0x0004003b,0x0000000d,0x000001d5,0x00000007,0x00050041, + 0x0000000d,0x000001d7,0x00000081,0x0000016f,0x0004003d,0x00000008,0x000001d8,0x000001d7, + 0x00050085,0x00000008,0x000001d9,0x000001d6,0x000001d8,0x00050041,0x0000000d,0x000001db, + 0x00000081,0x00000175,0x0004003d,0x00000008,0x000001dc,0x000001db,0x00050085,0x00000008, + 0x000001dd,0x000001da,0x000001dc,0x00050081,0x00000008,0x000001de,0x000001d9,0x000001dd, + 0x00050041,0x0000000d,0x000001e1,0x00000081,0x000001e0,0x0004003d,0x00000008,0x000001e2, + 0x000001e1,0x00050085,0x00000008,0x000001e3,0x000001df,0x000001e2,0x00050081,0x00000008, + 0x000001e4,0x000001de,0x000001e3,0x0003003e,0x000001d5,0x000001e4,0x0004003d,0x00000008, + 0x000001e5,0x000001d5,0x000200fe,0x000001e5,0x00010038,0x00050036,0x00000012,0x00000088, + 0x00000000,0x00000084,0x00030037,0x00000017,0x00000085,0x00030037,0x0000000d,0x00000086, + 0x00030037,0x0000000d,0x00000087,0x000200f8,0x00000089,0x0004003b,0x00000017,0x000001e8, + 0x00000007,0x0004003b,0x0000000d,0x000001ed,0x00000007,0x0004003b,0x0000000d,0x000001f5, + 0x00000007,0x0004003d,0x00000012,0x000001e9,0x00000085,0x0004003d,0x00000008,0x000001ea, + 0x00000086,0x00050088,0x00000008,0x000001ec,0x000001ea,0x000001eb,0x0003003e,0x000001ed, + 0x000001ec,0x00050039,0x00000012,0x000001ee,0x00000015,0x000001ed,0x00050083,0x00000012, + 0x000001ef,0x000001e9,0x000001ee,0x0003003e,0x000001e8,0x000001ef,0x0004003d,0x00000012, + 0x000001f0,0x000001e8,0x0004003d,0x00000008,0x000001f1,0x00000087,0x0004003d,0x00000008, + 0x000001f2,0x00000086,0x00050083,0x00000008,0x000001f3,0x000001f1,0x000001f2,0x00050088, + 0x00000008,0x000001f4,0x000001f3,0x000001eb,0x0003003e,0x000001f5,0x000001f4,0x00050039, + 0x00000012,0x000001f6,0x00000015,0x000001f5,0x00050088,0x00000012,0x000001f7,0x000001f0, + 0x000001f6,0x000200fe,0x000001f7,0x00010038,0x00050036,0x00000012,0x0000008b,0x00000000, + 0x00000018,0x00030037,0x00000017,0x0000008a,0x000200f8,0x0000008c,0x0004003b,0x00000017, + 0x000001ff,0x00000007,0x0004003b,0x00000017,0x00000200,0x00000007,0x0004003b,0x00000017, + 0x00000204,0x00000007,0x0004003b,0x00000017,0x0000020e,0x00000007,0x0004003b,0x0000000d, + 0x00000210,0x00000007,0x0004003b,0x0000000d,0x00000211,0x00000007,0x00040039,0x00000006, + 0x000001fa,0x00000057,0x000300f7,0x000001fe,0x00000000,0x000900fb,0x000001fa,0x000001fe, + 0x00000000,0x000001fb,0x00000001,0x000001fc,0x00000002,0x000001fd,0x000200f8,0x000001fb, + 0x0004003d,0x00000012,0x00000201,0x0000008a,0x0003003e,0x00000200,0x00000201,0x00050039, + 0x00000012,0x00000202,0x00000045,0x00000200,0x0003003e,0x000001ff,0x00000202,0x000200f9, + 0x000001fe,0x000200f8,0x000001fc,0x0004003d,0x00000012,0x00000205,0x0000008a,0x0003003e, + 0x00000204,0x00000205,0x00050039,0x00000012,0x00000206,0x00000042,0x00000204,0x00040039, + 0x00000008,0x00000208,0x0000005c,0x00050088,0x00000008,0x00000209,0x00000207,0x00000208, + 0x0005008e,0x00000012,0x0000020a,0x00000206,0x00000209,0x0003003e,0x000001ff,0x0000020a, + 0x000200f9,0x000001fe,0x000200f8,0x000001fd,0x00040039,0x00000008,0x0000020c,0x0000005a, + 0x00040039,0x00000008,0x0000020d,0x0000005c,0x0004003d,0x00000012,0x0000020f,0x0000008a, + 0x0003003e,0x0000020e,0x0000020f,0x0003003e,0x00000210,0x0000020c,0x0003003e,0x00000211, + 0x0000020d,0x00070039,0x00000012,0x00000212,0x00000088,0x0000020e,0x00000210,0x00000211, + 0x0003003e,0x000001ff,0x00000212,0x000200f9,0x000001fe,0x000200f8,0x000001fe,0x0004003d, + 0x00000012,0x00000215,0x000001ff,0x000200fe,0x00000215,0x00010038,0x00050036,0x00000008, + 0x0000008e,0x00000000,0x0000007d,0x00030037,0x00000017,0x0000008d,0x000200f8,0x0000008f, + 0x0004003b,0x0000000d,0x00000218,0x00000007,0x0004003b,0x00000017,0x0000021e,0x00000007, + 0x0004003b,0x00000017,0x00000221,0x00000007,0x0004003b,0x00000017,0x00000224,0x00000007, + 0x0004003b,0x00000017,0x00000227,0x00000007,0x0004003b,0x00000017,0x0000022a,0x00000007, + 0x0004003b,0x00000017,0x0000022d,0x00000007,0x0003003e,0x00000218,0x000000c3,0x00040039, + 0x00000006,0x00000219,0x00000057,0x000300f7,0x0000021d,0x00000000,0x000900fb,0x00000219, + 0x0000021d,0x00000000,0x0000021a,0x00000001,0x0000021b,0x00000002,0x0000021c,0x000200f8, + 0x0000021a,0x0004003d,0x00000012,0x0000021f,0x0000008d,0x0003003e,0x0000021e,0x0000021f, + 0x00050039,0x00000012,0x00000220,0x0000008b,0x0000021e,0x0003003e,0x00000221,0x00000220, + 0x00050039,0x00000008,0x00000222,0x0000007f,0x00000221,0x0003003e,0x00000218,0x00000222, + 0x000200f9,0x0000021d,0x000200f8,0x0000021b,0x0004003d,0x00000012,0x00000225,0x0000008d, + 0x0003003e,0x00000224,0x00000225,0x00050039,0x00000012,0x00000226,0x0000008b,0x00000224, + 0x0003003e,0x00000227,0x00000226,0x00050039,0x00000008,0x00000228,0x00000082,0x00000227, + 0x0003003e,0x00000218,0x00000228,0x000200f9,0x0000021d,0x000200f8,0x0000021c,0x0004003d, + 0x00000012,0x0000022b,0x0000008d,0x0003003e,0x0000022a,0x0000022b,0x00050039,0x00000012, + 0x0000022c,0x0000008b,0x0000022a,0x0003003e,0x0000022d,0x0000022c,0x00050039,0x00000008, + 0x0000022e,0x0000007f,0x0000022d,0x0003003e,0x00000218,0x0000022e,0x000200f9,0x0000021d, + 0x000200f8,0x0000021d,0x0004003d,0x00000008,0x00000231,0x00000218,0x000200fe,0x00000231, + 0x00010038,0x00050036,0x00000093,0x00000097,0x00000000,0x00000094,0x00030037,0x0000001d, + 0x00000095,0x00030037,0x00000065,0x00000096,0x000200f8,0x00000098,0x0004003b,0x0000001d, + 0x00000234,0x00000007,0x0004003b,0x0000023c,0x0000023d,0x00000007,0x0004003b,0x0000001d, + 0x00000243,0x00000007,0x0004003b,0x0000001d,0x00000244,0x00000007,0x0004003d,0x0000001c, + 0x00000235,0x00000095,0x0004003d,0x00000048,0x00000236,0x00000096,0x0004006f,0x0000001c, + 0x00000237,0x00000236,0x00050085,0x0000001c,0x00000238,0x00000235,0x00000237,0x00050083, + 0x0000001c,0x0000023b,0x00000238,0x0000023a,0x0003003e,0x00000234,0x0000023b,0x0004003d, + 0x0000001c,0x0000023f,0x00000234,0x0006000c,0x0000001c,0x00000240,0x00000001,0x00000008, + 0x0000023f,0x0004006e,0x00000048,0x00000241,0x00000240,0x00050041,0x00000065,0x00000242, + 0x0000023d,0x0000023e,0x0003003e,0x00000242,0x00000241,0x0004003d,0x0000001c,0x00000245, + 0x00000234,0x0003003e,0x00000244,0x00000245,0x00050039,0x0000001c,0x00000246,0x00000020, + 0x00000244,0x0003003e,0x00000243,0x00000246,0x00060041,0x00000065,0x00000248,0x0000023d, + 0x00000158,0x00000158,0x0003003e,0x00000248,0x00000247,0x00060041,0x00000065,0x0000024a, + 0x0000023d,0x00000158,0x0000015d,0x0003003e,0x0000024a,0x00000249,0x00060041,0x00000065, + 0x0000024c,0x0000023d,0x00000158,0x0000023e,0x0003003e,0x0000024c,0x0000024b,0x00060041, + 0x00000065,0x0000024f,0x0000023d,0x00000158,0x0000024d,0x0003003e,0x0000024f,0x0000024e, + 0x00050041,0x0000000d,0x00000250,0x00000243,0x0000016f,0x0004003d,0x00000008,0x00000251, + 0x00000250,0x00050083,0x00000008,0x00000252,0x000000cf,0x00000251,0x00050041,0x0000000d, + 0x00000253,0x00000243,0x00000175,0x0004003d,0x00000008,0x00000254,0x00000253,0x00050083, + 0x00000008,0x00000255,0x000000cf,0x00000254,0x00050085,0x00000008,0x00000256,0x00000252, + 0x00000255,0x00060041,0x0000000d,0x00000257,0x0000023d,0x0000015d,0x00000158,0x0003003e, + 0x00000257,0x00000256,0x00050041,0x0000000d,0x00000258,0x00000243,0x0000016f,0x0004003d, + 0x00000008,0x00000259,0x00000258,0x00050041,0x0000000d,0x0000025a,0x00000243,0x00000175, + 0x0004003d,0x00000008,0x0000025b,0x0000025a,0x00050083,0x00000008,0x0000025c,0x000000cf, + 0x0000025b,0x00050085,0x00000008,0x0000025d,0x00000259,0x0000025c,0x00060041,0x0000000d, + 0x0000025e,0x0000023d,0x0000015d,0x0000015d,0x0003003e,0x0000025e,0x0000025d,0x00050041, + 0x0000000d,0x0000025f,0x00000243,0x0000016f,0x0004003d,0x00000008,0x00000260,0x0000025f, + 0x00050083,0x00000008,0x00000261,0x000000cf,0x00000260,0x00050041,0x0000000d,0x00000262, + 0x00000243,0x00000175,0x0004003d,0x00000008,0x00000263,0x00000262,0x00050085,0x00000008, + 0x00000264,0x00000261,0x00000263,0x00060041,0x0000000d,0x00000265,0x0000023d,0x0000015d, + 0x0000023e,0x0003003e,0x00000265,0x00000264,0x00050041,0x0000000d,0x00000266,0x00000243, + 0x0000016f,0x0004003d,0x00000008,0x00000267,0x00000266,0x00050041,0x0000000d,0x00000268, + 0x00000243,0x00000175,0x0004003d,0x00000008,0x00000269,0x00000268,0x00050085,0x00000008, + 0x0000026a,0x00000267,0x00000269,0x00060041,0x0000000d,0x0000026b,0x0000023d,0x0000015d, + 0x0000024d,0x0003003e,0x0000026b,0x0000026a,0x0004003d,0x00000093,0x0000026c,0x0000023d, + 0x000200fe,0x0000026c,0x00010038,0x00050036,0x00000008,0x0000009a,0x00000000,0x00000022, + 0x00030037,0x0000000d,0x00000099,0x000200f8,0x0000009b,0x0004003b,0x0000026f,0x00000270, + 0x00000007,0x00040039,0x00000052,0x00000271,0x00000054,0x0003003e,0x00000270,0x00000271, + 0x00050041,0x0000000d,0x00000272,0x00000270,0x00000175,0x0004003d,0x00000008,0x00000273, + 0x00000272,0x0004003d,0x00000008,0x00000274,0x00000099,0x00050041,0x0000000d,0x00000275, + 0x00000270,0x0000016f,0x0004003d,0x00000008,0x00000276,0x00000275,0x00050083,0x00000008, + 0x00000277,0x00000274,0x00000276,0x00050088,0x00000008,0x00000278,0x00000273,0x00000277, + 0x000200fe,0x00000278,0x00010038,0x00050036,0x0000009c,0x000000a0,0x00000000,0x0000009d, + 0x00030037,0x00000065,0x0000009e,0x00030037,0x00000065,0x0000009f,0x000200f8,0x000000a1, + 0x0004003d,0x00000048,0x0000027b,0x0000009e,0x0004007c,0x00000071,0x0000027c,0x0000027b, + 0x0004003d,0x00000048,0x0000027d,0x0000009f,0x0004007c,0x00000071,0x0000027e,0x0000027d, + 0x000500b0,0x0000027f,0x00000280,0x0000027c,0x0000027e,0x0004009b,0x0000009c,0x00000281, + 0x00000280,0x000200fe,0x00000281,0x00010038,0x00050036,0x0000009c,0x000000a4,0x00000000, + 0x000000a2,0x00030037,0x0000001d,0x000000a3,0x000200f8,0x000000a5,0x00050041,0x0000000d, + 0x00000284,0x000000a3,0x0000016f,0x0004003d,0x00000008,0x00000285,0x00000284,0x000500ba, + 0x0000009c,0x00000286,0x00000285,0x000000c3,0x000300f7,0x00000288,0x00000000,0x000400fa, + 0x00000286,0x00000287,0x00000288,0x000200f8,0x00000287,0x00050041,0x0000000d,0x00000289, + 0x000000a3,0x0000016f,0x0004003d,0x00000008,0x0000028a,0x00000289,0x000500b8,0x0000009c, + 0x0000028b,0x0000028a,0x000000cf,0x000200f9,0x00000288,0x000200f8,0x00000288,0x000700f5, + 0x0000009c,0x0000028c,0x00000286,0x000000a5,0x0000028b,0x00000287,0x000300f7,0x0000028e, + 0x00000000,0x000400fa,0x0000028c,0x0000028d,0x0000028e,0x000200f8,0x0000028d,0x00050041, + 0x0000000d,0x0000028f,0x000000a3,0x00000175,0x0004003d,0x00000008,0x00000290,0x0000028f, + 0x000500ba,0x0000009c,0x00000291,0x00000290,0x000000c3,0x000300f7,0x00000293,0x00000000, + 0x000400fa,0x00000291,0x00000292,0x00000293,0x000200f8,0x00000292,0x00050041,0x0000000d, + 0x00000294,0x000000a3,0x00000175,0x0004003d,0x00000008,0x00000295,0x00000294,0x000500b8, + 0x0000009c,0x00000296,0x00000295,0x000000cf,0x000200f9,0x00000293,0x000200f8,0x00000293, + 0x000700f5,0x0000009c,0x00000297,0x00000291,0x0000028d,0x00000296,0x00000292,0x000200f9, + 0x0000028e,0x000200f8,0x0000028e,0x000700f5,0x0000009c,0x00000298,0x0000028c,0x00000288, + 0x00000297,0x00000293,0x000200fe,0x00000298,0x00010038,0x00050036,0x00000008,0x000000a9, + 0x00000000,0x000000a6,0x00030037,0x00000008,0x000000a7,0x00030037,0x00000008,0x000000a8, + 0x000200f8,0x000000aa,0x0004003b,0x0000000d,0x0000029b,0x00000007,0x0004003b,0x0000000d, + 0x0000029c,0x00000007,0x0004003b,0x0000000d,0x0000029d,0x00000007,0x0004003b,0x0000000d, + 0x000002a1,0x00000007,0x0004003b,0x0000000d,0x000002a4,0x00000007,0x0004003b,0x0000000d, + 0x000002a5,0x00000007,0x0003003e,0x0000029c,0x000000a7,0x0003003e,0x0000029d,0x000000a8, + 0x00060039,0x00000008,0x0000029e,0x0000002d,0x0000029c,0x0000029d,0x0003003e,0x0000029b, + 0x0000029e,0x0004003d,0x00000008,0x0000029f,0x0000029b,0x000500b7,0x0000009c,0x000002a0, + 0x0000029f,0x000000c3,0x000300f7,0x000002a3,0x00000000,0x000400fa,0x000002a0,0x000002a2, + 0x000002a9,0x000200f8,0x000002a2,0x0003003e,0x000002a4,0x000000a7,0x0003003e,0x000002a5, + 0x000000a8,0x00060039,0x00000008,0x000002a6,0x00000029,0x000002a4,0x000002a5,0x0004003d, + 0x00000008,0x000002a7,0x0000029b,0x00050088,0x00000008,0x000002a8,0x000002a6,0x000002a7, + 0x0003003e,0x000002a1,0x000002a8,0x000200f9,0x000002a3,0x000200f8,0x000002a9,0x0003003e, + 0x000002a1,0x000000c3,0x000200f9,0x000002a3,0x000200f8,0x000002a3,0x0004003d,0x00000008, + 0x000002aa,0x000002a1,0x000200fe,0x000002aa,0x00010038,0x00050036,0x0000009c,0x000000ad, + 0x00000000,0x000000ab,0x00030037,0x00000007,0x000000ac,0x000200f8,0x000000ae,0x0004003d, + 0x00000006,0x000002ad,0x000000ac,0x000500c7,0x00000006,0x000002af,0x000002ad,0x000002ae, + 0x000500ab,0x0000009c,0x000002b0,0x000002af,0x0000016f,0x000200fe,0x000002b0,0x00010038, + 0x00050036,0x00000071,0x000000b5,0x00000000,0x000000b0,0x00030037,0x000000af,0x000000b1, + 0x00030037,0x00000007,0x000000b2,0x00030037,0x00000007,0x000000b3,0x00030037,0x0000001d, + 0x000000b4,0x000200f8,0x000000b6,0x0004003b,0x00000007,0x000002b3,0x00000007,0x0004003b, + 0x00000007,0x000002c3,0x00000007,0x0004003b,0x0000000d,0x000002c5,0x00000007,0x0004003b, + 0x00000007,0x000002ca,0x00000007,0x0004003b,0x0000000d,0x000002cc,0x00000007,0x0004003d, + 0x0000009c,0x000002b4,0x000000b1,0x000600a9,0x00000006,0x000002b5,0x000002b4,0x00000175, + 0x0000016f,0x00050084,0x00000006,0x000002b6,0x000002b5,0x000002ae,0x0004003d,0x00000006, + 0x000002b7,0x000000b2,0x000500c7,0x00000006,0x000002b9,0x000002b7,0x000002b8,0x000500c4, + 0x00000006,0x000002bb,0x000002b9,0x000002ba,0x000500c5,0x00000006,0x000002bc,0x000002b6, + 0x000002bb,0x0004003d,0x00000006,0x000002bd,0x000000b3,0x000500c7,0x00000006,0x000002bf, + 0x000002bd,0x000002be,0x000500c4,0x00000006,0x000002c1,0x000002bf,0x000002c0,0x000500c5, + 0x00000006,0x000002c2,0x000002bc,0x000002c1,0x0003003e,0x000002b3,0x000002c2,0x0004003d, + 0x00000006,0x000002c4,0x000002b3,0x00050041,0x0000000d,0x000002c6,0x000000b4,0x0000016f, + 0x0004003d,0x00000008,0x000002c7,0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00050039, + 0x00000006,0x000002c8,0x00000010,0x000002c5,0x000500c5,0x00000006,0x000002c9,0x000002c4, + 0x000002c8,0x0003003e,0x000002c3,0x000002c9,0x0004003d,0x00000006,0x000002cb,0x000002b3, + 0x00050041,0x0000000d,0x000002cd,0x000000b4,0x00000175,0x0004003d,0x00000008,0x000002ce, + 0x000002cd,0x0003003e,0x000002cc,0x000002ce,0x00050039,0x00000006,0x000002cf,0x00000010, + 0x000002cc,0x000500c5,0x00000006,0x000002d0,0x000002cb,0x000002cf,0x0003003e,0x000002ca, + 0x000002d0,0x0004003d,0x00000006,0x000002d1,0x000002c3,0x0004003d,0x00000006,0x000002d2, + 0x000002ca,0x00050050,0x00000071,0x000002d3,0x000002d1,0x000002d2,0x000200fe,0x000002d3, + 0x00010038,0x00050036,0x00000006,0x000000b8,0x00000000,0x0000000e,0x00030037,0x0000000d, + 0x000000b7,0x000200f8,0x000000b9,0x0004003b,0x0000000d,0x000002d7,0x00000007,0x0004003b, + 0x0000000d,0x000002d9,0x00000007,0x0004003b,0x00000007,0x000002db,0x00000007,0x0004003b, + 0x00000007,0x000002e5,0x00000007,0x0004003b,0x00000007,0x000002e6,0x00000007,0x0004003d, + 0x00000008,0x000002d8,0x000000b7,0x0003003e,0x000002d7,0x000002d8,0x0003003e,0x000002d9, + 0x000002d6,0x00060039,0x00000008,0x000002da,0x00000036,0x000002d7,0x000002d9,0x0003003e, + 0x000000b7,0x000002da,0x0004003d,0x00000008,0x000002dc,0x000000b7,0x0004003d,0x00000008, + 0x000002dd,0x000000b7,0x00050081,0x00000008,0x000002de,0x000000cf,0x000002dd,0x00050088, + 0x00000008,0x000002df,0x000000cf,0x000002de,0x00050085,0x00000008,0x000002e0,0x000002dc, + 0x000002df,0x00050083,0x00000008,0x000002e1,0x000000cf,0x000002e0,0x00050085,0x00000008, + 0x000002e3,0x000002e1,0x000002e2,0x0004006d,0x00000006,0x000002e4,0x000002e3,0x0003003e, + 0x000002db,0x000002e4,0x0003003e,0x000002e5,0x00000175,0x0004003d,0x00000006,0x000002e7, + 0x000002db,0x0003003e,0x000002e6,0x000002e7,0x00060039,0x00000006,0x000002e8,0x00000032, + 0x000002e5,0x000002e6,0x000200fe,0x000002e8,0x00010038,0x00050036,0x00000002,0x000000bc, + 0x00000000,0x000000ba,0x00030037,0x00000065,0x000000bb,0x000200f8,0x000000bd,0x0004003b, + 0x0000001d,0x000002eb,0x00000007,0x0004003b,0x0000001d,0x000002f3,0x00000007,0x0004003b, + 0x0000001d,0x000002f4,0x00000007,0x0004003b,0x00000065,0x000002f7,0x00000007,0x0004003b, + 0x0000001d,0x000002fd,0x00000007,0x0004003b,0x0000001d,0x00000303,0x00000007,0x0004003b, + 0x0000001d,0x00000309,0x00000007,0x0004003b,0x0000000d,0x0000030f,0x00000007,0x0004003b, + 0x00000065,0x00000313,0x00000007,0x0004003b,0x0000001d,0x00000315,0x00000007,0x0004003b, + 0x00000065,0x00000319,0x00000007,0x0004003b,0x0000001d,0x0000031b,0x00000007,0x0004003b, + 0x0000001d,0x0000031e,0x00000007,0x0004003b,0x0000000d,0x00000322,0x00000007,0x0004003b, + 0x0000000d,0x00000323,0x00000007,0x0004003b,0x00000007,0x00000326,0x00000007,0x0004003b, + 0x0000000d,0x00000327,0x00000007,0x0004003b,0x00000017,0x0000032a,0x00000007,0x0004003b, + 0x0000001d,0x00000330,0x00000007,0x0004003b,0x00000017,0x00000332,0x00000007,0x0004003b, + 0x0000001d,0x00000333,0x00000007,0x0004003b,0x0000000d,0x00000336,0x00000007,0x0004003b, + 0x00000017,0x00000338,0x00000007,0x0004003b,0x0000000d,0x0000033c,0x00000007,0x0004003b, + 0x00000017,0x0000033d,0x00000007,0x0004003b,0x00000007,0x00000341,0x00000007,0x0004003b, + 0x0000000d,0x00000345,0x00000007,0x0004003b,0x0000000d,0x00000346,0x00000007,0x0004003b, + 0x0000000d,0x0000034a,0x00000007,0x0004003b,0x0000001d,0x00000352,0x00000007,0x0004003b, + 0x00000072,0x00000356,0x00000007,0x0004003b,0x000000af,0x00000358,0x00000007,0x0004003b, + 0x00000007,0x00000359,0x00000007,0x0004003b,0x00000007,0x0000035b,0x00000007,0x0004003b, + 0x0000001d,0x0000035d,0x00000007,0x0004003b,0x0000023c,0x00000360,0x00000007,0x0004003b, + 0x0000001d,0x00000362,0x00000007,0x0004003b,0x00000065,0x00000364,0x00000007,0x0004003b, + 0x00000366,0x00000367,0x00000007,0x0004003b,0x00000065,0x00000370,0x00000007,0x0004003b, + 0x00000065,0x00000374,0x00000007,0x0004003b,0x00000065,0x0000037a,0x00000007,0x0004003b, + 0x00000065,0x0000037c,0x00000007,0x0004003b,0x00000065,0x00000380,0x00000007,0x0004003b, + 0x00000072,0x00000382,0x00000007,0x0004003b,0x000000af,0x00000387,0x00000007,0x0004003b, + 0x000000af,0x00000391,0x00000007,0x0004003b,0x00000007,0x00000392,0x00000007,0x0004003b, + 0x0000000d,0x00000393,0x00000007,0x0004003b,0x0000001d,0x00000399,0x00000007,0x0004003b, + 0x0000000d,0x0000039c,0x00000007,0x0004003b,0x0000000d,0x000003a0,0x00000007,0x0004003b, + 0x0000000d,0x000003a1,0x00000007,0x0004003b,0x0000000d,0x000003a3,0x00000007,0x0004003b, + 0x0000001d,0x000003af,0x00000007,0x0004003b,0x0000023c,0x000003b5,0x00000007,0x0004003b, + 0x0000001d,0x000003b7,0x00000007,0x0004003b,0x00000065,0x000003b9,0x00000007,0x0004003b, + 0x00000007,0x000003bb,0x00000007,0x0004003b,0x00000007,0x000003be,0x00000007,0x0004003b, + 0x00000007,0x000003bf,0x00000007,0x0004003b,0x0000001d,0x000003c1,0x00000007,0x0004003b, + 0x0000000d,0x000003c8,0x00000007,0x0004003b,0x0000000d,0x000003c9,0x00000007,0x0004003b, + 0x00000072,0x000003cd,0x00000007,0x0004003b,0x000000af,0x000003cf,0x00000007,0x0004003b, + 0x00000007,0x000003d0,0x00000007,0x0004003b,0x00000007,0x000003d2,0x00000007,0x0004003b, + 0x0000001d,0x000003d4,0x00000007,0x0004003b,0x00000366,0x000003d7,0x00000007,0x0004003b, + 0x00000065,0x000003df,0x00000007,0x0004003b,0x00000065,0x000003e3,0x00000007,0x0004003b, + 0x00000065,0x000003ec,0x00000007,0x0004003b,0x00000065,0x000003ee,0x00000007,0x0004003b, + 0x00000007,0x000003f4,0x00000007,0x0004003b,0x00000065,0x000003f5,0x00000007,0x0004003b, + 0x00000072,0x000003f7,0x00000007,0x0004003b,0x00000007,0x000003fa,0x00000007,0x0004003d, + 0x00000048,0x000002ec,0x000000bb,0x0004006f,0x0000001c,0x000002ed,0x000002ec,0x00050050, + 0x0000001c,0x000002ee,0x00000239,0x00000239,0x00050081,0x0000001c,0x000002ef,0x000002ed, + 0x000002ee,0x00040039,0x00000048,0x000002f0,0x0000004e,0x0004006f,0x0000001c,0x000002f1, + 0x000002f0,0x00050088,0x0000001c,0x000002f2,0x000002ef,0x000002f1,0x0003003e,0x000002eb, + 0x000002f2,0x0004003d,0x0000001c,0x000002f5,0x000002eb,0x0003003e,0x000002f4,0x000002f5, + 0x00050039,0x0000001c,0x000002f6,0x0000006f,0x000002f4,0x0003003e,0x000002f3,0x000002f6, + 0x0004003d,0x0000001c,0x000002f8,0x000002f3,0x00040039,0x00000048,0x000002f9,0x0000004e, + 0x0004006f,0x0000001c,0x000002fa,0x000002f9,0x00050085,0x0000001c,0x000002fb,0x000002f8, + 0x000002fa,0x0004006e,0x00000048,0x000002fc,0x000002fb,0x0003003e,0x000002f7,0x000002fc, + 0x00040039,0x00000048,0x000002fe,0x0000004a,0x0004006f,0x0000001c,0x000002ff,0x000002fe, + 0x00040039,0x00000048,0x00000300,0x00000050,0x0004006f,0x0000001c,0x00000301,0x00000300, + 0x00050088,0x0000001c,0x00000302,0x000002ff,0x00000301,0x0003003e,0x000002fd,0x00000302, + 0x00040039,0x00000048,0x00000304,0x0000004c,0x0004006f,0x0000001c,0x00000305,0x00000304, + 0x00040039,0x00000048,0x00000306,0x00000050,0x0004006f,0x0000001c,0x00000307,0x00000306, + 0x00050088,0x0000001c,0x00000308,0x00000305,0x00000307,0x0003003e,0x00000303,0x00000308, + 0x0004003d,0x0000001c,0x0000030a,0x000002fd,0x0004003d,0x0000001c,0x0000030b,0x000002eb, + 0x0004003d,0x0000001c,0x0000030c,0x00000303,0x00050085,0x0000001c,0x0000030d,0x0000030b, + 0x0000030c,0x00050081,0x0000001c,0x0000030e,0x0000030a,0x0000030d,0x0003003e,0x00000309, + 0x0000030e,0x0004003d,0x00000048,0x00000310,0x000000bb,0x0004003d,0x00000048,0x00000311, + 0x000002f7,0x00050080,0x00000048,0x00000312,0x00000310,0x00000311,0x0003003e,0x00000313, + 0x00000312,0x00050039,0x00000008,0x00000314,0x0000006c,0x00000313,0x0003003e,0x0000030f, + 0x00000314,0x0004003d,0x00000048,0x00000316,0x000000bb,0x0004003d,0x00000048,0x00000317, + 0x000002f7,0x00050080,0x00000048,0x00000318,0x00000316,0x00000317,0x0003003e,0x00000319, + 0x00000318,0x00050039,0x0000001c,0x0000031a,0x00000068,0x00000319,0x0003003e,0x00000315, + 0x0000031a,0x0004003d,0x0000001c,0x0000031c,0x00000315,0x0005008e,0x0000001c,0x0000031d, + 0x0000031c,0x00000239,0x0003003e,0x0000031b,0x0000031d,0x0004003d,0x0000001c,0x0000031f, + 0x000002eb,0x0004003d,0x0000001c,0x00000320,0x0000031b,0x00050081,0x0000001c,0x00000321, + 0x0000031f,0x00000320,0x0003003e,0x0000031e,0x00000321,0x0004003d,0x00000008,0x00000324, + 0x0000030f,0x0003003e,0x00000323,0x00000324,0x00050039,0x00000008,0x00000325,0x0000009a, + 0x00000323,0x0003003e,0x00000322,0x00000325,0x0004003d,0x00000008,0x00000328,0x00000322, + 0x0003003e,0x00000327,0x00000328,0x00050039,0x00000006,0x00000329,0x000000b8,0x00000327, + 0x0003003e,0x00000326,0x00000329,0x0004003d,0x0000001c,0x0000032b,0x00000309,0x0004003d, + 0x0000001c,0x0000032c,0x00000315,0x0004003d,0x0000001c,0x0000032d,0x00000303,0x00050085, + 0x0000001c,0x0000032e,0x0000032c,0x0000032d,0x00050081,0x0000001c,0x0000032f,0x0000032b, + 0x0000032e,0x0003003e,0x00000330,0x0000032f,0x00050039,0x00000012,0x00000331,0x00000060, + 0x00000330,0x0003003e,0x0000032a,0x00000331,0x0004003d,0x0000001c,0x00000334,0x00000309, + 0x0003003e,0x00000333,0x00000334,0x00050039,0x00000012,0x00000335,0x00000063,0x00000333, + 0x0003003e,0x00000332,0x00000335,0x0004003d,0x00000012,0x00000339,0x0000032a,0x0003003e, + 0x00000338,0x00000339,0x00050039,0x00000008,0x0000033a,0x0000008e,0x00000338,0x00050081, + 0x00000008,0x0000033b,0x00000337,0x0000033a,0x0003003e,0x00000336,0x0000033b,0x0004003d, + 0x00000012,0x0000033e,0x00000332,0x0003003e,0x0000033d,0x0000033e,0x00050039,0x00000008, + 0x0000033f,0x0000008e,0x0000033d,0x00050081,0x00000008,0x00000340,0x00000337,0x0000033f, + 0x0003003e,0x0000033c,0x00000340,0x0004003d,0x00000008,0x00000342,0x00000336,0x0004003d, + 0x00000008,0x00000343,0x0000033c,0x00060039,0x00000008,0x00000344,0x000000a9,0x00000342, + 0x00000343,0x0003003e,0x00000345,0x00000344,0x0003003e,0x00000346,0x000000cf,0x00060039, + 0x00000008,0x00000347,0x00000036,0x00000345,0x00000346,0x00050085,0x00000008,0x00000349, + 0x00000347,0x00000348,0x0003003e,0x0000034a,0x00000349,0x00050039,0x00000008,0x0000034b, + 0x00000024,0x0000034a,0x0004006d,0x00000006,0x0000034c,0x0000034b,0x0004003d,0x0000001c, + 0x0000034d,0x00000309,0x0004003d,0x0000001c,0x0000034e,0x00000315,0x0004003d,0x0000001c, + 0x0000034f,0x00000303,0x00050085,0x0000001c,0x00000350,0x0000034e,0x0000034f,0x00050081, + 0x0000001c,0x00000351,0x0000034d,0x00000350,0x0003003e,0x00000352,0x00000351,0x00050039, + 0x0000009c,0x00000353,0x000000a4,0x00000352,0x000600a9,0x00000006,0x00000354,0x00000353, + 0x00000175,0x0000016f,0x00050084,0x00000006,0x00000355,0x0000034c,0x00000354,0x0003003e, + 0x00000341,0x00000355,0x0003003e,0x00000358,0x00000357,0x0004003d,0x00000006,0x0000035a, + 0x00000326,0x0003003e,0x00000359,0x0000035a,0x0004003d,0x00000006,0x0000035c,0x00000341, + 0x0003003e,0x0000035b,0x0000035c,0x0004003d,0x0000001c,0x0000035e,0x0000031b,0x0003003e, + 0x0000035d,0x0000035e,0x00080039,0x00000071,0x0000035f,0x000000b5,0x00000358,0x00000359, + 0x0000035b,0x0000035d,0x0003003e,0x00000356,0x0000035f,0x00040039,0x00000048,0x00000361, + 0x0000004e,0x0004003d,0x0000001c,0x00000363,0x0000031e,0x0003003e,0x00000362,0x00000363, + 0x0003003e,0x00000364,0x00000361,0x00060039,0x00000093,0x00000365,0x00000097,0x00000362, + 0x00000364,0x0003003e,0x00000360,0x00000365,0x0003003e,0x00000367,0x00000158,0x000200f9, + 0x00000368,0x000200f8,0x00000368,0x000400f6,0x0000036a,0x0000036b,0x00000000,0x000200f9, + 0x0000036c,0x000200f8,0x0000036c,0x0004003d,0x00000047,0x0000036d,0x00000367,0x000500b1, + 0x0000009c,0x0000036f,0x0000036d,0x0000036e,0x000400fa,0x0000036f,0x00000369,0x0000036a, + 0x000200f8,0x00000369,0x0004003d,0x00000047,0x00000371,0x00000367,0x00060041,0x00000065, + 0x00000372,0x00000360,0x00000158,0x00000371,0x0004003d,0x00000048,0x00000373,0x00000372, + 0x0003003e,0x00000370,0x00000373,0x00050041,0x00000065,0x00000375,0x00000360,0x0000023e, + 0x0004003d,0x00000048,0x00000376,0x00000375,0x0004003d,0x00000048,0x00000377,0x00000370, + 0x00050080,0x00000048,0x00000378,0x00000376,0x00000377,0x0003003e,0x00000374,0x00000378, + 0x00040039,0x00000048,0x00000379,0x0000004e,0x0004003d,0x00000048,0x0000037b,0x00000374, + 0x0003003e,0x0000037a,0x0000037b,0x0003003e,0x0000037c,0x00000379,0x00060039,0x0000009c, + 0x0000037d,0x000000a0,0x0000037a,0x0000037c,0x000300f7,0x0000037f,0x00000000,0x000400fa, + 0x0000037d,0x0000037e,0x0000037f,0x000200f8,0x0000037e,0x0004003d,0x00000048,0x00000381, + 0x00000374,0x0003003e,0x00000380,0x00000381,0x0004003d,0x00000071,0x00000383,0x00000356, + 0x0003003e,0x00000382,0x00000383,0x00060039,0x00000002,0x00000384,0x00000076,0x00000380, + 0x00000382,0x000200f9,0x0000037f,0x000200f8,0x0000037f,0x000200f9,0x0000036b,0x000200f8, + 0x0000036b,0x0004003d,0x00000047,0x00000385,0x00000367,0x00050080,0x00000047,0x00000386, + 0x00000385,0x0000015d,0x0003003e,0x00000367,0x00000386,0x000200f9,0x00000368,0x000200f8, + 0x0000036a,0x0004003d,0x0000001c,0x00000388,0x0000031b,0x00040039,0x00000048,0x00000389, + 0x0000004e,0x0004006f,0x0000001c,0x0000038a,0x00000389,0x00050085,0x0000001c,0x0000038b, + 0x00000388,0x0000038a,0x0006000c,0x00000008,0x0000038c,0x00000001,0x00000042,0x0000038b, + 0x000500ba,0x0000009c,0x0000038d,0x0000038c,0x00000337,0x0003003e,0x00000387,0x0000038d, + 0x0004003d,0x0000009c,0x0000038e,0x00000387,0x000300f7,0x00000390,0x00000000,0x000400fa, + 0x0000038e,0x0000038f,0x00000390,0x000200f8,0x0000038f,0x0003003e,0x00000391,0x00000357, + 0x0003003e,0x00000392,0x0000016f,0x00040039,0x00000048,0x00000394,0x0000004e,0x0004006f, + 0x0000001c,0x00000395,0x00000394,0x00050050,0x0000001c,0x00000396,0x000000cf,0x000000cf, + 0x00050088,0x0000001c,0x00000397,0x00000396,0x00000395,0x0006000c,0x00000008,0x00000398, + 0x00000001,0x00000042,0x00000397,0x0003003e,0x00000393,0x00000398,0x0004003d,0x0000001c, + 0x0000039a,0x00000315,0x0006000c,0x0000001c,0x0000039b,0x00000001,0x00000045,0x0000039a, + 0x0003003e,0x00000399,0x0000039b,0x0004003d,0x0000001c,0x0000039d,0x0000031b,0x0006000c, + 0x00000008,0x0000039e,0x00000001,0x00000042,0x0000039d,0x0003003e,0x000003a0,0x0000039e, + 0x0003003e,0x000003a1,0x0000039f,0x00060039,0x00000008,0x000003a2,0x00000029,0x000003a0, + 0x000003a1,0x0003003e,0x0000039c,0x000003a2,0x0004003d,0x00000008,0x000003a4,0x00000393, + 0x0003003e,0x000003a3,0x000003a4,0x000200f9,0x000003a5,0x000200f8,0x000003a5,0x000400f6, + 0x000003a7,0x000003a8,0x00000000,0x000200f9,0x000003a9,0x000200f8,0x000003a9,0x0004003d, + 0x00000008,0x000003aa,0x000003a3,0x0004003d,0x00000008,0x000003ab,0x0000039c,0x000500bc, + 0x0000009c,0x000003ac,0x000003aa,0x000003ab,0x0004003d,0x0000009c,0x000003ad,0x00000391, + 0x000500a7,0x0000009c,0x000003ae,0x000003ac,0x000003ad,0x000400fa,0x000003ae,0x000003a6, + 0x000003a7,0x000200f8,0x000003a6,0x0004003d,0x0000001c,0x000003b0,0x0000031e,0x0004003d, + 0x0000001c,0x000003b1,0x00000399,0x0004003d,0x00000008,0x000003b2,0x000003a3,0x0005008e, + 0x0000001c,0x000003b3,0x000003b1,0x000003b2,0x00050083,0x0000001c,0x000003b4,0x000003b0, + 0x000003b3,0x0003003e,0x000003af,0x000003b4,0x00040039,0x00000048,0x000003b6,0x0000004e, + 0x0004003d,0x0000001c,0x000003b8,0x000003af,0x0003003e,0x000003b7,0x000003b8,0x0003003e, + 0x000003b9,0x000003b6,0x00060039,0x00000093,0x000003ba,0x00000097,0x000003b7,0x000003b9, + 0x0003003e,0x000003b5,0x000003ba,0x0004003d,0x00000006,0x000003bc,0x00000326,0x00050082, + 0x00000006,0x000003bd,0x000002b8,0x000003bc,0x0003003e,0x000003be,0x00000175,0x0003003e, + 0x000003bf,0x000003bd,0x00060039,0x00000006,0x000003c0,0x00000032,0x000003be,0x000003bf, + 0x0003003e,0x000003bb,0x000003c0,0x0004003d,0x0000001c,0x000003c2,0x000003af,0x00050083, + 0x0000001c,0x000003c3,0x0000023a,0x000003c2,0x0006000c,0x0000001c,0x000003c4,0x00000001, + 0x00000045,0x000003c3,0x0003003e,0x000003c1,0x000003c4,0x0004003d,0x0000001c,0x000003c5, + 0x000003c1,0x0004003d,0x0000001c,0x000003c6,0x00000399,0x00050094,0x00000008,0x000003c7, + 0x000003c5,0x000003c6,0x0003003e,0x000003c8,0x000000c3,0x0003003e,0x000003c9,0x000003c7, + 0x00060039,0x00000008,0x000003ca,0x0000002d,0x000003c8,0x000003c9,0x00050085,0x00000008, + 0x000003cb,0x000003ca,0x00000348,0x0004006d,0x00000006,0x000003cc,0x000003cb,0x0003003e, + 0x00000341,0x000003cc,0x0003003e,0x000003cf,0x000003ce,0x0004003d,0x00000006,0x000003d1, + 0x000003bb,0x0003003e,0x000003d0,0x000003d1,0x0004003d,0x00000006,0x000003d3,0x00000341, + 0x0003003e,0x000003d2,0x000003d3,0x0004003d,0x0000001c,0x000003d5,0x0000031b,0x0003003e, + 0x000003d4,0x000003d5,0x00080039,0x00000071,0x000003d6,0x000000b5,0x000003cf,0x000003d0, + 0x000003d2,0x000003d4,0x0003003e,0x000003cd,0x000003d6,0x0003003e,0x000003d7,0x00000158, + 0x000200f9,0x000003d8,0x000200f8,0x000003d8,0x000400f6,0x000003da,0x000003db,0x00000000, + 0x000200f9,0x000003dc,0x000200f8,0x000003dc,0x0004003d,0x00000047,0x000003dd,0x000003d7, + 0x000500b1,0x0000009c,0x000003de,0x000003dd,0x0000015d,0x000400fa,0x000003de,0x000003d9, + 0x000003da,0x000200f8,0x000003d9,0x0004003d,0x00000047,0x000003e0,0x000003d7,0x00060041, + 0x00000065,0x000003e1,0x000003b5,0x00000158,0x000003e0,0x0004003d,0x00000048,0x000003e2, + 0x000003e1,0x0003003e,0x000003df,0x000003e2,0x00050041,0x00000065,0x000003e4,0x000003b5, + 0x0000023e,0x0004003d,0x00000048,0x000003e5,0x000003e4,0x0004003d,0x00000048,0x000003e6, + 0x000003df,0x00050080,0x00000048,0x000003e7,0x000003e5,0x000003e6,0x0003003e,0x000003e3, + 0x000003e7,0x0004003d,0x0000009c,0x000003e8,0x00000391,0x000300f7,0x000003ea,0x00000000, + 0x000400fa,0x000003e8,0x000003e9,0x000003ea,0x000200f8,0x000003e9,0x00040039,0x00000048, + 0x000003eb,0x0000004e,0x0004003d,0x00000048,0x000003ed,0x000003e3,0x0003003e,0x000003ec, + 0x000003ed,0x0003003e,0x000003ee,0x000003eb,0x00060039,0x0000009c,0x000003ef,0x000000a0, + 0x000003ec,0x000003ee,0x000200f9,0x000003ea,0x000200f8,0x000003ea,0x000700f5,0x0000009c, + 0x000003f0,0x000003e8,0x000003d9,0x000003ef,0x000003e9,0x0003003e,0x00000391,0x000003f0, + 0x0004003d,0x0000009c,0x000003f1,0x00000391,0x000300f7,0x000003f3,0x00000000,0x000400fa, + 0x000003f1,0x000003f2,0x000003f3,0x000200f8,0x000003f2,0x0004003d,0x00000048,0x000003f6, + 0x000003e3,0x0003003e,0x000003f5,0x000003f6,0x0004003d,0x00000071,0x000003f8,0x000003cd, + 0x0003003e,0x000003f7,0x000003f8,0x00060039,0x00000006,0x000003f9,0x0000007b,0x000003f5, + 0x000003f7,0x0003003e,0x000003f4,0x000003f9,0x0004003d,0x00000006,0x000003fb,0x000003f4, + 0x0003003e,0x000003fa,0x000003fb,0x00050039,0x0000009c,0x000003fc,0x000000ad,0x000003fa, + 0x000600a9,0x00000006,0x000003fd,0x000003fc,0x00000175,0x0000016f,0x0004003d,0x00000006, + 0x000003fe,0x00000392,0x00050080,0x00000006,0x000003ff,0x000003fe,0x000003fd,0x0003003e, + 0x00000392,0x000003ff,0x0004003d,0x0000009c,0x00000400,0x00000391,0x0004003d,0x00000006, + 0x00000401,0x00000392,0x000500b2,0x0000009c,0x00000403,0x00000401,0x00000402,0x000500a7, + 0x0000009c,0x00000404,0x00000400,0x00000403,0x0003003e,0x00000391,0x00000404,0x000200f9, + 0x000003f3,0x000200f8,0x000003f3,0x000200f9,0x000003db,0x000200f8,0x000003db,0x0004003d, + 0x00000047,0x00000405,0x000003d7,0x00050080,0x00000047,0x00000406,0x00000405,0x0000015d, + 0x0003003e,0x000003d7,0x00000406,0x000200f9,0x000003d8,0x000200f8,0x000003da,0x000200f9, + 0x000003a8,0x000200f8,0x000003a8,0x0004003d,0x00000008,0x00000407,0x00000393,0x0004003d, + 0x00000008,0x00000408,0x000003a3,0x00050081,0x00000008,0x00000409,0x00000408,0x00000407, + 0x0003003e,0x000003a3,0x00000409,0x000200f9,0x000003a5,0x000200f8,0x000003a7,0x000200f9, + 0x00000390,0x000200f8,0x00000390,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h new file mode 100644 index 000000000..84eac9dc3 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h @@ -0,0 +1,1551 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000075c,0x00000000,0x00020011,0x00000001,0x00020011, + 0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000748,0x0000074c,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001, + 0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004, + 0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d, + 0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47,0x735f5248,0x65646168, + 0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a, + 0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666, + 0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005, + 0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962, + 0x00000000,0x00070005,0x00000017,0x55786666,0x6361706e,0x3233466b,0x3b317528,0x00000000, + 0x00030005,0x00000016,0x00000075,0x000a0005,0x0000001c,0x52786666,0x70616d65,0x57726f46, + 0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000001b,0x00000061, + 0x00060005,0x00000021,0x70736944,0x5379616c,0x28657a69,0x00000000,0x00050005,0x00000024, + 0x4d6d754e,0x28737069,0x00000000,0x00060005,0x00000026,0x576d754e,0x476b726f,0x70756f72, + 0x00002873,0x00070005,0x00000029,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000, + 0x00080005,0x0000002e,0x64616f4c,0x656d6147,0x6c656946,0x28764d64,0x3b326976,0x00000000, + 0x00050005,0x0000002d,0x53785069,0x6c706d61,0x00000065,0x00070005,0x00000034,0x726f7453, + 0x756f4365,0x7265746e,0x3b316928,0x003b3175,0x00040005,0x00000032,0x50785069,0x0000736f, + 0x00040005,0x00000033,0x6e756f63,0x00726574,0x000a0005,0x00000038,0x6d6f7441,0x6e496369, + 0x61657263,0x6f436573,0x65746e75,0x31692872,0x3b31753b,0x00000000,0x00040005,0x00000036, + 0x50785069,0x0000736f,0x00040005,0x00000037,0x56646c6f,0x00006c61,0x000a0005,0x0000003e, + 0x6f4c5752,0x6e496461,0x6e696170,0x676e6974,0x61727950,0x2864696d,0x3b326976,0x003b3175, + 0x00040005,0x0000003c,0x50785069,0x0000736f,0x00040005,0x0000003d,0x65646e69,0x00000078, + 0x000b0005,0x00000045,0x726f7453,0x706e4965,0x746e6961,0x50676e69,0x6d617279,0x76286469, + 0x763b3269,0x753b3466,0x00003b31,0x00040005,0x00000042,0x50785069,0x0000736f,0x00050005, + 0x00000043,0x5674756f,0x65756c61,0x00000000,0x00040005,0x00000044,0x65646e69,0x00000078, + 0x000b0005,0x0000004a,0x6b636150,0x65566465,0x726f7463,0x6c656946,0x746e4564,0x73497972, + 0x6d697250,0x28797261,0x003b3175,0x00050005,0x00000049,0x6b636170,0x6e456465,0x00797274, + 0x00070005,0x0000004d,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x00000000,0x00070006, + 0x0000004d,0x00000000,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00080006,0x0000004d, + 0x00000001,0x67694875,0x69725068,0x7469726f,0x63614679,0x00726f74,0x00080006,0x0000004d, + 0x00000002,0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f,0x00050006,0x0000004d, + 0x00000003,0x6c615662,0x00006469,0x00060006,0x0000004d,0x00000004,0x69725062,0x7972616d, + 0x00000000,0x00060006,0x0000004d,0x00000005,0x63655362,0x61646e6f,0x00007972,0x00060006, + 0x0000004d,0x00000006,0x506e4962,0x746e6961,0x00006465,0x00060006,0x0000004d,0x00000007, + 0x6c655666,0x7469636f,0x00000079,0x00060006,0x0000004d,0x00000008,0x67654e62,0x7374754f, + 0x00656469,0x00060006,0x0000004d,0x00000009,0x736f5062,0x7374754f,0x00656469,0x00180005, + 0x00000052,0x61706e55,0x65566b63,0x726f7463,0x6c656946,0x746e4564,0x73656972,0x32757628, + 0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65,0x7972746e,0x3266762d,0x2d31662d, + 0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31,0x3131622d,0x0000003b,0x00040005, + 0x00000050,0x6b636170,0x00006465,0x00050005,0x00000051,0x6c456676,0x6e656d65,0x00000074, + 0x00090005,0x00000056,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3269, + 0x00003b31,0x00030005,0x00000054,0x00786574,0x00040005,0x00000055,0x63696c73,0x00000065, + 0x00060005,0x0000005a,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x00000058, + 0x00786574,0x00040005,0x00000059,0x63696c73,0x00000065,0x00080005,0x00000061,0x53647053, + 0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x0000005d,0x00786970, + 0x00050005,0x0000005e,0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000005f,0x65646e69, + 0x00000078,0x00040005,0x00000060,0x63696c73,0x00000065,0x000a0005,0x00000065,0x49647053, + 0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005, + 0x00000064,0x63696c73,0x00000065,0x00080005,0x00000067,0x47647053,0x74417465,0x63696d6f, + 0x6e756f43,0x28726574,0x00000000,0x00090005,0x0000006a,0x52647053,0x74657365,0x6d6f7441, + 0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000069,0x63696c73,0x00000065, + 0x00090005,0x0000006f,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461,0x753b3175, + 0x00003b31,0x00030005,0x0000006d,0x00000078,0x00030005,0x0000006e,0x00000079,0x000a0005, + 0x00000075,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528,0x763b3175, + 0x003b3466,0x00030005,0x00000072,0x00000078,0x00030005,0x00000073,0x00000079,0x00040005, + 0x00000074,0x756c6176,0x00000065,0x00090005,0x0000007c,0x52647053,0x63756465,0x76283465, + 0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x00000078,0x00003076,0x00030005, + 0x00000079,0x00003176,0x00030005,0x0000007a,0x00003276,0x00030005,0x0000007b,0x00003376, + 0x000a0005,0x0000007e,0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c, + 0x65697272,0x00002872,0x00090005,0x00000084,0x45647053,0x57746978,0x676b726f,0x70756f72, + 0x3b317528,0x753b3175,0x00003b31,0x00060005,0x00000081,0x576d756e,0x476b726f,0x70756f72, + 0x00000073,0x00080005,0x00000082,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x00000083,0x63696c73,0x00000065,0x00070005,0x00000088,0x52647053, + 0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005,0x00000087,0x00000076,0x000b0005, + 0x00000090,0x52647053,0x63756465,0x616f4c65,0x76283464,0x763b3275,0x763b3275,0x763b3275, + 0x753b3275,0x00003b31,0x00030005,0x0000008b,0x00003069,0x00030005,0x0000008c,0x00003169, + 0x00030005,0x0000008d,0x00003269,0x00030005,0x0000008e,0x00003369,0x00040005,0x0000008f, + 0x63696c73,0x00000065,0x00080005,0x00000095,0x52647053,0x63756465,0x616f4c65,0x76283464, + 0x753b3275,0x00003b31,0x00040005,0x00000093,0x65736162,0x00000000,0x00040005,0x00000094, + 0x63696c73,0x00000065,0x000e0005,0x0000009c,0x52647053,0x63756465,0x616f4c65,0x756f5364, + 0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32,0x75763b32,0x31753b32,0x0000003b, + 0x00030005,0x00000097,0x00003069,0x00030005,0x00000098,0x00003169,0x00030005,0x00000099, + 0x00003269,0x00030005,0x0000009a,0x00003369,0x00040005,0x0000009b,0x63696c73,0x00000065, + 0x000b0005,0x000000a0,0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d, + 0x32757628,0x3b31753b,0x00000000,0x00040005,0x0000009e,0x65736162,0x00000000,0x00040005, + 0x0000009f,0x63696c73,0x00000065,0x00100005,0x000000a9,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973,0x3b317528,0x763b3175,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000a3,0x00000078,0x00030005,0x000000a4, + 0x00000079,0x00050005,0x000000a5,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000a6, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000a7, + 0x0070696d,0x00040005,0x000000a8,0x63696c73,0x00000065,0x000d0005,0x000000b1,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b,0x3b327576,0x753b3175, + 0x31753b31,0x0000003b,0x00030005,0x000000ab,0x00000078,0x00030005,0x000000ac,0x00000079, + 0x00050005,0x000000ad,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000ae,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000af,0x0070696d, + 0x00040005,0x000000b0,0x63696c73,0x00000065,0x000c0005,0x000000b9,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000b3,0x00000078,0x00030005,0x000000b4,0x00000079,0x00050005,0x000000b5, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000b6,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000b7,0x0070696d,0x00040005,0x000000b8, + 0x63696c73,0x00000065,0x000c0005,0x000000c1,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000bb, + 0x00000078,0x00030005,0x000000bc,0x00000079,0x00050005,0x000000bd,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000be,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000bf,0x0070696d,0x00040005,0x000000c0,0x63696c73,0x00000065, + 0x000c0005,0x000000c9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528345f,0x31753b31, + 0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000c3,0x00000078,0x00030005, + 0x000000c4,0x00000079,0x00050005,0x000000c5,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000c6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000c7,0x0070696d,0x00040005,0x000000c8,0x63696c73,0x00000065,0x000b0005,0x000000d0, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275,0x31753b31,0x3b31753b, + 0x00000000,0x00050005,0x000000cc,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000cd, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000ce, + 0x0070696d,0x00040005,0x000000cf,0x63696c73,0x00000065,0x000b0005,0x000000d7,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000d3,0x00000078,0x00030005,0x000000d4,0x00000079,0x00040005,0x000000d5, + 0x7370696d,0x00000000,0x00040005,0x000000d6,0x63696c73,0x00000065,0x000e0005,0x000000e1, + 0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872,0x3b31753b,0x3b327576, + 0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000da,0x00000078,0x00030005, + 0x000000db,0x00000079,0x00050005,0x000000dc,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000dd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005, + 0x000000de,0x65736162,0x0070694d,0x00040005,0x000000df,0x7370696d,0x00000000,0x00040005, + 0x000000e0,0x63696c73,0x00000065,0x000a0005,0x000000e9,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005,0x000000e4,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000e5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000e6,0x7370696d,0x00000000,0x00060005,0x000000e7, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000e8,0x63696c73,0x00000065, + 0x000b0005,0x000000f2,0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b, + 0x753b3175,0x75763b31,0x00003b32,0x00050005,0x000000ec,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000ed,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00040005,0x000000ee,0x7370696d,0x00000000,0x00060005,0x000000ef,0x576d756e,0x476b726f, + 0x70756f72,0x00000073,0x00040005,0x000000f0,0x63696c73,0x00000065,0x00060005,0x000000f1, + 0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00130005,0x000000f9,0x706d6f63,0x46657475, + 0x656d6172,0x65746e69,0x6c6f7072,0x6f697461,0x6d61476e,0x63655665,0x46726f74,0x646c6569, + 0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x69762864,0x31693b33,0x0000003b,0x00050005, + 0x000000f7,0x6f724769,0x64497075,0x00000000,0x00050005,0x000000f8,0x636f4c69,0x6e496c61, + 0x00786564,0x00040005,0x00000111,0x61726170,0x0000006d,0x00040005,0x00000113,0x61726170, + 0x0000006d,0x00040005,0x00000114,0x61726170,0x0000006d,0x00040005,0x00000117,0x61726170, + 0x0000006d,0x00040005,0x00000118,0x61726170,0x0000006d,0x00040005,0x0000011a,0x61726170, + 0x0000006d,0x00040005,0x0000011c,0x61726170,0x0000006d,0x00040005,0x0000011e,0x61726170, + 0x0000006d,0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005,0x00000121,0x61726170, + 0x0000006d,0x00040005,0x00000123,0x61726170,0x0000006d,0x00040005,0x00000124,0x61726170, + 0x0000006d,0x00040005,0x00000126,0x61726170,0x0000006d,0x00040005,0x00000127,0x61726170, + 0x0000006d,0x00040005,0x00000128,0x61726170,0x0000006d,0x00040005,0x0000012e,0x49466263, + 0x0000745f,0x00060006,0x0000012e,0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006, + 0x0000012e,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x0000012e,0x00000002, + 0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000012e,0x00000003,0x656d6163, + 0x654e6172,0x00007261,0x00060006,0x0000012e,0x00000004,0x656d6163,0x61466172,0x00000072, + 0x00080006,0x0000012e,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a, + 0x00050006,0x0000012e,0x00000006,0x65646f4d,0x00000000,0x00050006,0x0000012e,0x00000007, + 0x65736572,0x00000074,0x00080006,0x0000012e,0x00000008,0x76654466,0x54656369,0x6569566f, + 0x70654477,0x00006874,0x00060006,0x0000012e,0x00000009,0x746c6564,0x6d695461,0x00000065, + 0x00090006,0x0000012e,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361, + 0x00000072,0x00080006,0x0000012e,0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65, + 0x00657a69,0x00080006,0x0000012e,0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163, + 0x00000000,0x00090006,0x0000012e,0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c, + 0x657a6953,0x00000000,0x00070006,0x0000012e,0x0000000e,0x70736964,0x68637461,0x67616c46, + 0x00000073,0x00070006,0x0000012e,0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065, + 0x00090006,0x0000012e,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365, + 0x00006564,0x00070006,0x0000012e,0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000, + 0x00090006,0x0000012e,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274, + 0x00000065,0x00090006,0x0000012e,0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x7a695374,0x00000065,0x00070006,0x0000012e,0x00000014,0x75626564,0x72614267,0x6f6c6f43, + 0x00000072,0x000a0006,0x0000012e,0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000012e,0x00000016,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00060006,0x0000012e,0x00000017,0x6e615466,0x666c6148,0x00564f46, + 0x00050006,0x0000012e,0x00000018,0x6461705f,0x00000031,0x00050006,0x0000012e,0x00000019, + 0x74694a66,0x00726574,0x00080006,0x0000012e,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00040005,0x00000130,0x49466263,0x00000000,0x00080005,0x00000137, + 0x6e496263,0x6e696170,0x676e6974,0x61727950,0x5f64696d,0x00000074,0x00050006,0x00000137, + 0x00000000,0x7370696d,0x00000000,0x00070006,0x00000137,0x00000001,0x576d756e,0x476b726f, + 0x70756f72,0x00000073,0x00070006,0x00000137,0x00000002,0x6b726f77,0x756f7247,0x66664f70, + 0x00746573,0x00070005,0x00000139,0x6e496263,0x6e696170,0x676e6974,0x61727950,0x0064696d, + 0x00040005,0x00000149,0x6b636170,0x00586465,0x000a0005,0x0000014c,0x61675f72,0x6d5f656d, + 0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x785f646c,0x00000000,0x00040005,0x00000153, + 0x6b636170,0x00596465,0x000a0005,0x00000154,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e, + 0x726f7463,0x6569665f,0x795f646c,0x00000000,0x000a0005,0x0000015f,0x6d617246,0x746e4965, + 0x6f707265,0x6974616c,0x57526e6f,0x6e756f43,0x73726574,0x0000745f,0x00050006,0x0000015f, + 0x00000000,0x61746164,0x00000000,0x00050005,0x00000161,0x635f7772,0x746e756f,0x00737265, + 0x00080005,0x0000016f,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003064, + 0x00080005,0x00000178,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003164, + 0x00080005,0x00000181,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003264, + 0x00080005,0x0000018a,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003364, + 0x00080005,0x00000194,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003464, + 0x00080005,0x0000019e,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003564, + 0x00080005,0x000001a8,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003664, + 0x00080005,0x000001b2,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003764, + 0x00080005,0x000001bc,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003864, + 0x00080005,0x000001c6,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003964, + 0x00080005,0x000001d0,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00303164, + 0x00080005,0x000001da,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00313164, + 0x00080005,0x000001e4,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00323164, + 0x00040005,0x00000264,0x61726170,0x0000006d,0x00040005,0x00000282,0x61726170,0x0000006d, + 0x00040005,0x00000288,0x61726170,0x0000006d,0x00070005,0x00000291,0x6b636170,0x61476465, + 0x6946656d,0x4d646c65,0x00000076,0x00040005,0x00000292,0x61726170,0x0000006d,0x00040005, + 0x00000295,0x656d6167,0x0000764d,0x00040005,0x00000296,0x61726170,0x0000006d,0x00040005, + 0x00000298,0x61726170,0x0000006d,0x00040005,0x000002ac,0x61726170,0x0000006d,0x00040005, + 0x000002ae,0x61726170,0x0000006d,0x00040005,0x000002b2,0x61726170,0x0000006d,0x00040005, + 0x000002b4,0x61726170,0x0000006d,0x00040005,0x000002b6,0x61726170,0x0000006d,0x00050005, + 0x000002ba,0x43647073,0x746e756f,0x00007265,0x00040005,0x000002bb,0x61726170,0x0000006d, + 0x00040005,0x000002bc,0x61726170,0x0000006d,0x00040005,0x000002c2,0x61726170,0x0000006d, + 0x00040005,0x000002c3,0x61726170,0x0000006d,0x00070005,0x000002c8,0x49647073,0x7265746e, + 0x6964656d,0x52657461,0x00000000,0x00070005,0x000002ce,0x49647073,0x7265746e,0x6964656d, + 0x47657461,0x00000000,0x00070005,0x000002d3,0x49647073,0x7265746e,0x6964656d,0x42657461, + 0x00000000,0x00070005,0x000002d8,0x49647073,0x7265746e,0x6964656d,0x41657461,0x00000000, + 0x00030005,0x000002f4,0x00636576,0x00050005,0x000002f5,0x69655766,0x53746867,0x00006d75, + 0x00040005,0x000002f6,0x69655766,0x00746867,0x00040005,0x00000303,0x69655766,0x00746867, + 0x00040005,0x00000310,0x69655766,0x00746867,0x00040005,0x0000031d,0x69655766,0x00746867, + 0x00040005,0x0000033b,0x61726170,0x0000006d,0x00030005,0x00000345,0x00003076,0x00030005, + 0x00000347,0x00003176,0x00030005,0x0000034a,0x00003276,0x00030005,0x0000034d,0x00003376, + 0x00040005,0x00000350,0x61726170,0x0000006d,0x00040005,0x00000352,0x61726170,0x0000006d, + 0x00040005,0x00000354,0x61726170,0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d, + 0x00030005,0x0000035d,0x00003076,0x00040005,0x00000360,0x61726170,0x0000006d,0x00040005, + 0x00000361,0x61726170,0x0000006d,0x00030005,0x00000364,0x00003176,0x00040005,0x00000367, + 0x61726170,0x0000006d,0x00040005,0x00000368,0x61726170,0x0000006d,0x00030005,0x0000036b, + 0x00003276,0x00040005,0x0000036e,0x61726170,0x0000006d,0x00040005,0x0000036f,0x61726170, + 0x0000006d,0x00030005,0x00000372,0x00003376,0x00040005,0x00000375,0x61726170,0x0000006d, + 0x00040005,0x00000376,0x61726170,0x0000006d,0x00040005,0x00000379,0x61726170,0x0000006d, + 0x00040005,0x0000037b,0x61726170,0x0000006d,0x00040005,0x0000037d,0x61726170,0x0000006d, + 0x00040005,0x0000037f,0x61726170,0x0000006d,0x00040005,0x00000390,0x61726170,0x0000006d, + 0x00040005,0x00000391,0x61726170,0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d, + 0x00040005,0x00000393,0x61726170,0x0000006d,0x00040005,0x00000394,0x61726170,0x0000006d, + 0x00030005,0x00000399,0x00003076,0x00040005,0x0000039c,0x61726170,0x0000006d,0x00040005, + 0x0000039d,0x61726170,0x0000006d,0x00030005,0x000003a0,0x00003176,0x00040005,0x000003a3, + 0x61726170,0x0000006d,0x00040005,0x000003a4,0x61726170,0x0000006d,0x00030005,0x000003a7, + 0x00003276,0x00040005,0x000003aa,0x61726170,0x0000006d,0x00040005,0x000003ab,0x61726170, + 0x0000006d,0x00030005,0x000003ae,0x00003376,0x00040005,0x000003b1,0x61726170,0x0000006d, + 0x00040005,0x000003b2,0x61726170,0x0000006d,0x00040005,0x000003b5,0x61726170,0x0000006d, + 0x00040005,0x000003b7,0x61726170,0x0000006d,0x00040005,0x000003b9,0x61726170,0x0000006d, + 0x00040005,0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003c8,0x61726170,0x0000006d, + 0x00040005,0x000003c9,0x61726170,0x0000006d,0x00040005,0x000003ca,0x61726170,0x0000006d, + 0x00040005,0x000003cb,0x61726170,0x0000006d,0x00040005,0x000003cc,0x61726170,0x0000006d, + 0x00030005,0x000003d1,0x00786574,0x00030005,0x000003df,0x00786970,0x00030005,0x000003ed, + 0x00000076,0x00040005,0x000003f0,0x61726170,0x0000006d,0x00040005,0x000003f1,0x61726170, + 0x0000006d,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005,0x000003f7,0x61726170, + 0x0000006d,0x00040005,0x000003fa,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170, + 0x0000006d,0x00040005,0x00000418,0x61726170,0x0000006d,0x00040005,0x00000419,0x61726170, + 0x0000006d,0x00040005,0x0000041d,0x61726170,0x0000006d,0x00040005,0x0000041f,0x61726170, + 0x0000006d,0x00040005,0x00000422,0x61726170,0x0000006d,0x00040005,0x00000423,0x61726170, + 0x0000006d,0x00040005,0x00000440,0x61726170,0x0000006d,0x00040005,0x00000441,0x61726170, + 0x0000006d,0x00040005,0x00000445,0x61726170,0x0000006d,0x00040005,0x00000447,0x61726170, + 0x0000006d,0x00040005,0x0000044a,0x61726170,0x0000006d,0x00040005,0x0000044b,0x61726170, + 0x0000006d,0x00040005,0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046b,0x61726170, + 0x0000006d,0x00040005,0x0000046f,0x61726170,0x0000006d,0x00040005,0x00000471,0x61726170, + 0x0000006d,0x00040005,0x00000474,0x61726170,0x0000006d,0x00040005,0x00000475,0x61726170, + 0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00040005,0x00000482,0x61726170, + 0x0000006d,0x00040005,0x00000487,0x61726170,0x0000006d,0x00040005,0x0000048c,0x61726170, + 0x0000006d,0x00040005,0x000004a2,0x61726170,0x0000006d,0x00040005,0x000004a3,0x61726170, + 0x0000006d,0x00040005,0x000004a6,0x61726170,0x0000006d,0x00040005,0x000004a7,0x61726170, + 0x0000006d,0x00040005,0x000004ae,0x61726170,0x0000006d,0x00040005,0x000004af,0x61726170, + 0x0000006d,0x00040005,0x000004b0,0x61726170,0x0000006d,0x00040005,0x000004c1,0x61726170, + 0x0000006d,0x00040005,0x000004c2,0x61726170,0x0000006d,0x00040005,0x000004c5,0x61726170, + 0x0000006d,0x00040005,0x000004c6,0x61726170,0x0000006d,0x00040005,0x000004ce,0x61726170, + 0x0000006d,0x00040005,0x000004cf,0x61726170,0x0000006d,0x00040005,0x000004d0,0x61726170, + 0x0000006d,0x00040005,0x000004e1,0x61726170,0x0000006d,0x00040005,0x000004e2,0x61726170, + 0x0000006d,0x00040005,0x000004e5,0x61726170,0x0000006d,0x00040005,0x000004e6,0x61726170, + 0x0000006d,0x00040005,0x000004ee,0x61726170,0x0000006d,0x00040005,0x000004ef,0x61726170, + 0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d,0x00040005,0x00000502,0x61726170, + 0x0000006d,0x00040005,0x00000503,0x61726170,0x0000006d,0x00040005,0x00000506,0x61726170, + 0x0000006d,0x00040005,0x00000507,0x61726170,0x0000006d,0x00040005,0x00000510,0x61726170, + 0x0000006d,0x00040005,0x00000511,0x61726170,0x0000006d,0x00040005,0x00000512,0x61726170, + 0x0000006d,0x00040005,0x00000516,0x61726170,0x0000006d,0x00040005,0x00000518,0x61726170, + 0x0000006d,0x00040005,0x0000051a,0x61726170,0x0000006d,0x00040005,0x0000051c,0x61726170, + 0x0000006d,0x00040005,0x0000051e,0x61726170,0x0000006d,0x00040005,0x00000520,0x61726170, + 0x0000006d,0x00030005,0x00000523,0x00000076,0x00040005,0x00000524,0x61726170,0x0000006d, + 0x00040005,0x00000526,0x61726170,0x0000006d,0x00040005,0x00000529,0x61726170,0x0000006d, + 0x00040005,0x0000053d,0x61726170,0x0000006d,0x00040005,0x0000053e,0x61726170,0x0000006d, + 0x00040005,0x00000540,0x61726170,0x0000006d,0x00040005,0x00000542,0x61726170,0x0000006d, + 0x00040005,0x0000054a,0x61726170,0x0000006d,0x00040005,0x0000054b,0x61726170,0x0000006d, + 0x00040005,0x0000054d,0x61726170,0x0000006d,0x00030005,0x00000554,0x00000076,0x00040005, + 0x0000055c,0x61726170,0x0000006d,0x00040005,0x0000055d,0x61726170,0x0000006d,0x00040005, + 0x0000055f,0x61726170,0x0000006d,0x00040005,0x00000573,0x61726170,0x0000006d,0x00040005, + 0x00000574,0x61726170,0x0000006d,0x00040005,0x00000576,0x61726170,0x0000006d,0x00040005, + 0x00000578,0x61726170,0x0000006d,0x00040005,0x00000582,0x61726170,0x0000006d,0x00040005, + 0x00000583,0x61726170,0x0000006d,0x00040005,0x00000584,0x61726170,0x0000006d,0x00030005, + 0x0000058b,0x00000076,0x00040005,0x00000592,0x61726170,0x0000006d,0x00040005,0x00000593, + 0x61726170,0x0000006d,0x00040005,0x00000595,0x61726170,0x0000006d,0x00040005,0x000005a9, + 0x61726170,0x0000006d,0x00040005,0x000005aa,0x61726170,0x0000006d,0x00040005,0x000005ac, + 0x61726170,0x0000006d,0x00040005,0x000005ae,0x61726170,0x0000006d,0x00040005,0x000005b5, + 0x61726170,0x0000006d,0x00040005,0x000005b6,0x61726170,0x0000006d,0x00040005,0x000005b7, + 0x61726170,0x0000006d,0x00030005,0x000005be,0x00000076,0x00040005,0x000005bf,0x61726170, + 0x0000006d,0x00040005,0x000005c1,0x61726170,0x0000006d,0x00040005,0x000005c3,0x61726170, + 0x0000006d,0x00040005,0x000005cd,0x61726170,0x0000006d,0x00040005,0x000005ce,0x61726170, + 0x0000006d,0x00040005,0x000005d0,0x61726170,0x0000006d,0x00040005,0x000005d2,0x61726170, + 0x0000006d,0x00030005,0x000005d5,0x00786574,0x00030005,0x000005df,0x00786970,0x00030005, + 0x000005e9,0x00003076,0x00040005,0x000005ec,0x61726170,0x0000006d,0x00040005,0x000005ed, + 0x61726170,0x0000006d,0x00040005,0x000005f0,0x61726170,0x0000006d,0x00040005,0x000005f2, + 0x61726170,0x0000006d,0x00040005,0x000005f4,0x61726170,0x0000006d,0x00040005,0x000005f5, + 0x61726170,0x0000006d,0x00030005,0x0000060a,0x00003176,0x00040005,0x0000060d,0x61726170, + 0x0000006d,0x00040005,0x0000060e,0x61726170,0x0000006d,0x00040005,0x00000611,0x61726170, + 0x0000006d,0x00040005,0x00000613,0x61726170,0x0000006d,0x00040005,0x00000615,0x61726170, + 0x0000006d,0x00040005,0x00000616,0x61726170,0x0000006d,0x00030005,0x0000062b,0x00003276, + 0x00040005,0x0000062e,0x61726170,0x0000006d,0x00040005,0x0000062f,0x61726170,0x0000006d, + 0x00040005,0x00000632,0x61726170,0x0000006d,0x00040005,0x00000634,0x61726170,0x0000006d, + 0x00040005,0x00000636,0x61726170,0x0000006d,0x00040005,0x00000637,0x61726170,0x0000006d, + 0x00030005,0x0000064c,0x00003376,0x00040005,0x0000064f,0x61726170,0x0000006d,0x00040005, + 0x00000650,0x61726170,0x0000006d,0x00040005,0x00000653,0x61726170,0x0000006d,0x00040005, + 0x00000655,0x61726170,0x0000006d,0x00040005,0x00000657,0x61726170,0x0000006d,0x00040005, + 0x00000658,0x61726170,0x0000006d,0x00030005,0x00000660,0x00000076,0x00040005,0x00000661, + 0x61726170,0x0000006d,0x00040005,0x00000663,0x61726170,0x0000006d,0x00040005,0x00000665, + 0x61726170,0x0000006d,0x00040005,0x00000667,0x61726170,0x0000006d,0x00040005,0x0000066f, + 0x61726170,0x0000006d,0x00040005,0x00000670,0x61726170,0x0000006d,0x00040005,0x00000672, + 0x61726170,0x0000006d,0x00040005,0x00000673,0x61726170,0x0000006d,0x00040005,0x00000676, + 0x61726170,0x0000006d,0x00040005,0x00000678,0x61726170,0x0000006d,0x00040005,0x0000067a, + 0x61726170,0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005,0x00000686, + 0x61726170,0x0000006d,0x00040005,0x00000688,0x61726170,0x0000006d,0x00040005,0x0000068a, + 0x61726170,0x0000006d,0x00040005,0x0000068c,0x61726170,0x0000006d,0x00040005,0x0000068e, + 0x61726170,0x0000006d,0x00040005,0x0000069b,0x61726170,0x0000006d,0x00040005,0x0000069d, + 0x61726170,0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a1, + 0x61726170,0x0000006d,0x00040005,0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006a4, + 0x61726170,0x0000006d,0x00040005,0x000006b1,0x61726170,0x0000006d,0x00040005,0x000006b3, + 0x61726170,0x0000006d,0x00040005,0x000006b5,0x61726170,0x0000006d,0x00040005,0x000006b7, + 0x61726170,0x0000006d,0x00040005,0x000006b9,0x61726170,0x0000006d,0x00040005,0x000006ba, + 0x61726170,0x0000006d,0x00040005,0x000006c7,0x61726170,0x0000006d,0x00040005,0x000006c9, + 0x61726170,0x0000006d,0x00040005,0x000006cb,0x61726170,0x0000006d,0x00040005,0x000006cc, + 0x61726170,0x0000006d,0x00040005,0x000006cf,0x5f627573,0x00007978,0x00040005,0x000006d2, + 0x61726170,0x0000006d,0x00030005,0x000006d4,0x00000078,0x00030005,0x000006dc,0x00000079, + 0x00040005,0x000006e4,0x61726170,0x0000006d,0x00040005,0x000006e6,0x61726170,0x0000006d, + 0x00040005,0x000006e8,0x61726170,0x0000006d,0x00040005,0x000006ea,0x61726170,0x0000006d, + 0x00040005,0x000006ec,0x61726170,0x0000006d,0x00040005,0x000006ee,0x61726170,0x0000006d, + 0x00040005,0x000006f1,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x000006f5,0x61726170,0x0000006d,0x00040005,0x000006f7,0x61726170,0x0000006d, + 0x00040005,0x000006f9,0x61726170,0x0000006d,0x00040005,0x000006fa,0x61726170,0x0000006d, + 0x00040005,0x000006fc,0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d, + 0x00040005,0x00000706,0x61726170,0x0000006d,0x00040005,0x00000708,0x61726170,0x0000006d, + 0x00040005,0x0000070e,0x61726170,0x0000006d,0x00040005,0x00000711,0x61726170,0x0000006d, + 0x00040005,0x00000713,0x61726170,0x0000006d,0x00040005,0x00000715,0x61726170,0x0000006d, + 0x00040005,0x00000717,0x61726170,0x0000006d,0x00040005,0x0000071a,0x61726170,0x0000006d, + 0x00040005,0x0000071c,0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d, + 0x00040005,0x0000071f,0x61726170,0x0000006d,0x00040005,0x00000721,0x61726170,0x0000006d, + 0x00040005,0x00000722,0x61726170,0x0000006d,0x00040005,0x00000724,0x61726170,0x0000006d, + 0x00040005,0x0000072a,0x61726170,0x0000006d,0x00040005,0x0000072b,0x61726170,0x0000006d, + 0x00040005,0x0000072d,0x61726170,0x0000006d,0x00040005,0x0000072f,0x61726170,0x0000006d, + 0x00040005,0x00000731,0x61726170,0x0000006d,0x00040005,0x0000073f,0x61726170,0x0000006d, + 0x00040005,0x00000740,0x61726170,0x0000006d,0x00040005,0x00000741,0x61726170,0x0000006d, + 0x00040005,0x00000742,0x61726170,0x0000006d,0x00040005,0x00000743,0x61726170,0x0000006d, + 0x00040005,0x00000744,0x61726170,0x0000006d,0x00060005,0x00000748,0x575f6c67,0x476b726f, + 0x70756f72,0x00004449,0x00080005,0x0000074c,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163, + 0x6e496e6f,0x00786564,0x00040005,0x0000074f,0x61726170,0x0000006d,0x00040005,0x00000750, + 0x61726170,0x0000006d,0x00060005,0x00000757,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x0000012e,0x00000002,0x00050048,0x0000012e,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000012e,0x00000001,0x00000023,0x00000008,0x00050048,0x0000012e,0x00000002, + 0x00000023,0x00000010,0x00050048,0x0000012e,0x00000003,0x00000023,0x00000018,0x00050048, + 0x0000012e,0x00000004,0x00000023,0x0000001c,0x00050048,0x0000012e,0x00000005,0x00000023, + 0x00000020,0x00050048,0x0000012e,0x00000006,0x00000023,0x00000028,0x00050048,0x0000012e, + 0x00000007,0x00000023,0x0000002c,0x00050048,0x0000012e,0x00000008,0x00000023,0x00000030, + 0x00050048,0x0000012e,0x00000009,0x00000023,0x00000040,0x00050048,0x0000012e,0x0000000a, + 0x00000023,0x00000044,0x00050048,0x0000012e,0x0000000b,0x00000023,0x00000048,0x00050048, + 0x0000012e,0x0000000c,0x00000023,0x00000050,0x00050048,0x0000012e,0x0000000d,0x00000023, + 0x00000058,0x00050048,0x0000012e,0x0000000e,0x00000023,0x0000005c,0x00050048,0x0000012e, + 0x0000000f,0x00000023,0x00000060,0x00050048,0x0000012e,0x00000010,0x00000023,0x00000068, + 0x00050048,0x0000012e,0x00000011,0x00000023,0x0000006c,0x00050048,0x0000012e,0x00000012, + 0x00000023,0x00000070,0x00050048,0x0000012e,0x00000013,0x00000023,0x00000078,0x00050048, + 0x0000012e,0x00000014,0x00000023,0x00000080,0x00050048,0x0000012e,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x0000012e,0x00000016,0x00000023,0x00000090,0x00050048,0x0000012e, + 0x00000017,0x00000023,0x00000098,0x00050048,0x0000012e,0x00000018,0x00000023,0x0000009c, + 0x00050048,0x0000012e,0x00000019,0x00000023,0x000000a0,0x00050048,0x0000012e,0x0000001a, + 0x00000023,0x000000a8,0x00040047,0x00000130,0x00000021,0x00000010,0x00040047,0x00000130, + 0x00000022,0x00000000,0x00030047,0x00000137,0x00000002,0x00050048,0x00000137,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000137,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000137,0x00000002,0x00000023,0x00000008,0x00040047,0x00000139,0x00000021,0x00000011, + 0x00040047,0x00000139,0x00000022,0x00000000,0x00040047,0x0000014c,0x00000021,0x00000000, + 0x00040047,0x0000014c,0x00000022,0x00000000,0x00040047,0x00000154,0x00000021,0x00000001, + 0x00040047,0x00000154,0x00000022,0x00000000,0x00040047,0x0000015e,0x00000006,0x00000004, + 0x00030047,0x0000015f,0x00000002,0x00040048,0x0000015f,0x00000000,0x00000017,0x00050048, + 0x0000015f,0x00000000,0x00000023,0x00000000,0x00030047,0x00000161,0x00000017,0x00040047, + 0x00000161,0x00000021,0x00000002,0x00040047,0x00000161,0x00000022,0x00000000,0x00040047, + 0x0000016f,0x00000021,0x00000003,0x00040047,0x0000016f,0x00000022,0x00000000,0x00040047, + 0x00000178,0x00000021,0x00000004,0x00040047,0x00000178,0x00000022,0x00000000,0x00040047, + 0x00000181,0x00000021,0x00000005,0x00040047,0x00000181,0x00000022,0x00000000,0x00040047, + 0x0000018a,0x00000021,0x00000006,0x00040047,0x0000018a,0x00000022,0x00000000,0x00040047, + 0x00000194,0x00000021,0x00000007,0x00040047,0x00000194,0x00000022,0x00000000,0x00030047, + 0x0000019e,0x00000017,0x00040047,0x0000019e,0x00000021,0x00000008,0x00040047,0x0000019e, + 0x00000022,0x00000000,0x00040047,0x000001a8,0x00000021,0x00000009,0x00040047,0x000001a8, + 0x00000022,0x00000000,0x00040047,0x000001b2,0x00000021,0x0000000a,0x00040047,0x000001b2, + 0x00000022,0x00000000,0x00040047,0x000001bc,0x00000021,0x0000000b,0x00040047,0x000001bc, + 0x00000022,0x00000000,0x00040047,0x000001c6,0x00000021,0x0000000c,0x00040047,0x000001c6, + 0x00000022,0x00000000,0x00040047,0x000001d0,0x00000021,0x0000000d,0x00040047,0x000001d0, + 0x00000022,0x00000000,0x00040047,0x000001da,0x00000021,0x0000000e,0x00040047,0x000001da, + 0x00000022,0x00000000,0x00040047,0x000001e4,0x00000021,0x0000000f,0x00040047,0x000001e4, + 0x00000022,0x00000000,0x00040047,0x00000748,0x0000000b,0x0000001a,0x00040047,0x0000074c, + 0x0000000b,0x0000001d,0x00040047,0x00000757,0x00000021,0x000003e8,0x00040047,0x00000757, + 0x00000022,0x00000000,0x00040047,0x0000075b,0x0000000b,0x00000019,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020, + 0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007, + 0x00000007,0x00030016,0x00000013,0x00000020,0x00040017,0x00000014,0x00000013,0x00000002, + 0x00040021,0x00000015,0x00000014,0x00000007,0x00040017,0x00000019,0x00000006,0x00000002, + 0x00040021,0x0000001a,0x00000019,0x00000007,0x00040015,0x0000001e,0x00000020,0x00000001, + 0x00040017,0x0000001f,0x0000001e,0x00000002,0x00030021,0x00000020,0x0000001f,0x00030021, + 0x00000023,0x00000006,0x00030021,0x00000028,0x00000019,0x00040020,0x0000002b,0x00000007, + 0x0000001f,0x00040021,0x0000002c,0x00000019,0x0000002b,0x00040020,0x00000030,0x00000007, + 0x0000001e,0x00050021,0x00000031,0x00000002,0x00000030,0x00000007,0x00040017,0x0000003a, + 0x00000013,0x00000004,0x00050021,0x0000003b,0x0000003a,0x0000002b,0x00000007,0x00040020, + 0x00000040,0x00000007,0x0000003a,0x00060021,0x00000041,0x00000002,0x0000002b,0x00000040, + 0x00000007,0x00020014,0x00000047,0x00040021,0x00000048,0x00000047,0x00000007,0x00040020, + 0x0000004c,0x00000007,0x00000019,0x000c001e,0x0000004d,0x00000014,0x00000013,0x00000013, + 0x00000047,0x00000047,0x00000047,0x00000047,0x00000013,0x00000047,0x00000047,0x00040020, + 0x0000004e,0x00000007,0x0000004d,0x00050021,0x0000004f,0x00000002,0x0000004c,0x0000004e, + 0x00070021,0x0000005c,0x00000002,0x0000002b,0x00000040,0x00000007,0x00000007,0x00040021, + 0x00000063,0x00000002,0x00000007,0x00050021,0x0000006c,0x0000003a,0x00000007,0x00000007, + 0x00060021,0x00000071,0x00000002,0x00000007,0x00000007,0x00000040,0x00070021,0x00000077, + 0x0000003a,0x00000040,0x00000040,0x00000040,0x00000040,0x00060021,0x00000080,0x00000047, + 0x00000007,0x00000007,0x00000007,0x00040021,0x00000086,0x0000003a,0x00000040,0x00080021, + 0x0000008a,0x0000003a,0x0000004c,0x0000004c,0x0000004c,0x0000004c,0x00000007,0x00050021, + 0x00000092,0x0000003a,0x0000004c,0x00000007,0x00090021,0x000000a2,0x00000002,0x00000007, + 0x00000007,0x0000004c,0x00000007,0x00000007,0x00000007,0x00070021,0x000000cb,0x00000002, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00070021,0x000000d2,0x00000002,0x00000007, + 0x00000007,0x00000007,0x00000007,0x000a0021,0x000000d9,0x00000002,0x00000007,0x00000007, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00000007,0x00080021,0x000000e3,0x00000002, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00000007,0x00090021,0x000000eb,0x00000002, + 0x0000004c,0x00000007,0x00000007,0x00000007,0x00000007,0x0000004c,0x00040017,0x000000f4, + 0x0000001e,0x00000003,0x00040020,0x000000f5,0x00000007,0x000000f4,0x00050021,0x000000f6, + 0x00000002,0x000000f5,0x00000030,0x0004002b,0x0000001e,0x00000105,0x00000000,0x0004002b, + 0x00000006,0x0000010f,0x00000002,0x0004002b,0x00000006,0x00000110,0x00000003,0x0004002b, + 0x00000006,0x00000116,0x00000001,0x00040017,0x0000012d,0x00000013,0x00000003,0x001d001e, + 0x0000012e,0x0000001f,0x0000001f,0x00000014,0x00000013,0x00000013,0x0000001f,0x0000001e, + 0x0000001e,0x0000003a,0x00000013,0x0000001e,0x0000001f,0x00000014,0x0000001e,0x00000006, + 0x0000001f,0x0000001e,0x0000001e,0x0000001f,0x0000001f,0x0000012d,0x00000006,0x00000014, + 0x00000013,0x0000001e,0x00000014,0x00000014,0x00040020,0x0000012f,0x00000002,0x0000012e, + 0x0004003b,0x0000012f,0x00000130,0x00000002,0x0004002b,0x0000001e,0x00000131,0x00000001, + 0x00040020,0x00000132,0x00000002,0x0000001f,0x0005001e,0x00000137,0x00000006,0x00000006, + 0x00000019,0x00040020,0x00000138,0x00000002,0x00000137,0x0004003b,0x00000138,0x00000139, + 0x00000002,0x00040020,0x0000013a,0x00000002,0x00000006,0x0004002b,0x0000001e,0x00000143, + 0x00000002,0x00040020,0x00000144,0x00000002,0x00000019,0x00090019,0x0000014a,0x00000006, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x0000014b, + 0x00000000,0x0000014a,0x0004003b,0x0000014b,0x0000014c,0x00000000,0x00040017,0x0000014f, + 0x00000006,0x00000004,0x0004002b,0x00000006,0x00000151,0x00000000,0x0004003b,0x0000014b, + 0x00000154,0x00000000,0x0003001d,0x0000015e,0x00000006,0x0003001e,0x0000015f,0x0000015e, + 0x00040020,0x00000160,0x0000000c,0x0000015f,0x0004003b,0x00000160,0x00000161,0x0000000c, + 0x00040020,0x00000164,0x0000000c,0x00000006,0x00090019,0x0000016d,0x00000013,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000002,0x00040020,0x0000016e,0x00000000, + 0x0000016d,0x0004003b,0x0000016e,0x0000016f,0x00000000,0x0004003b,0x0000016e,0x00000178, + 0x00000000,0x0004003b,0x0000016e,0x00000181,0x00000000,0x0004003b,0x0000016e,0x0000018a, + 0x00000000,0x0004002b,0x00000006,0x00000190,0x00000004,0x0004003b,0x0000016e,0x00000194, + 0x00000000,0x0004002b,0x00000006,0x0000019a,0x00000005,0x0004003b,0x0000016e,0x0000019e, + 0x00000000,0x0004002b,0x00000006,0x000001a4,0x00000006,0x0004003b,0x0000016e,0x000001a8, + 0x00000000,0x0004002b,0x00000006,0x000001ae,0x00000007,0x0004003b,0x0000016e,0x000001b2, + 0x00000000,0x0004002b,0x00000006,0x000001b8,0x00000008,0x0004003b,0x0000016e,0x000001bc, + 0x00000000,0x0004002b,0x00000006,0x000001c2,0x00000009,0x0004003b,0x0000016e,0x000001c6, + 0x00000000,0x0004002b,0x00000006,0x000001cc,0x0000000a,0x0004003b,0x0000016e,0x000001d0, + 0x00000000,0x0004002b,0x00000006,0x000001d6,0x0000000b,0x0004003b,0x0000016e,0x000001da, + 0x00000000,0x0004002b,0x00000006,0x000001e0,0x0000000c,0x0004003b,0x0000016e,0x000001e4, + 0x00000000,0x0004002b,0x00000013,0x000001e9,0x00000000,0x0007002c,0x0000003a,0x000001ea, + 0x000001e9,0x000001e9,0x000001e9,0x000001e9,0x0004002b,0x00000006,0x00000249,0x80000000, + 0x0004002b,0x00000006,0x00000250,0x00000015,0x0004002b,0x00000006,0x00000252,0x000003ff, + 0x0004002b,0x00000013,0x00000255,0x447fc000,0x00040020,0x00000257,0x00000007,0x00000013, + 0x0004002b,0x00000006,0x0000025b,0x00000010,0x0004002b,0x00000006,0x0000025d,0x0000001f, + 0x0004002b,0x00000013,0x00000260,0x41f80000,0x0004002b,0x0000001e,0x00000263,0x00000004, + 0x00040020,0x00000268,0x00000007,0x00000047,0x0004002b,0x0000001e,0x0000026a,0x00000003, + 0x0004002b,0x0000001e,0x0000026f,0x00000005,0x0004002b,0x00000013,0x0000027d,0x3f800000, + 0x0004002b,0x0000001e,0x0000028e,0x00000006,0x0003002a,0x00000047,0x0000028f,0x00040020, + 0x0000029b,0x00000007,0x00000014,0x00040020,0x000002b9,0x00000004,0x00000006,0x0004003b, + 0x000002b9,0x000002ba,0x00000004,0x0004001c,0x000002c5,0x00000013,0x0000025b,0x0004001c, + 0x000002c6,0x000002c5,0x0000025b,0x00040020,0x000002c7,0x00000004,0x000002c6,0x0004003b, + 0x000002c7,0x000002c8,0x00000004,0x00040020,0x000002cb,0x00000004,0x00000013,0x0004003b, + 0x000002c7,0x000002ce,0x00000004,0x0004003b,0x000002c7,0x000002d3,0x00000004,0x0004003b, + 0x000002c7,0x000002d8,0x00000004,0x0004002b,0x00000013,0x0000032b,0x3a83126f,0x0004002b, + 0x00000006,0x00000335,0x00000d48,0x0004002b,0x00000006,0x00000336,0x00000108,0x0005002c, + 0x00000019,0x00000385,0x00000151,0x00000151,0x0005002c,0x00000019,0x00000388,0x00000151, + 0x00000116,0x0005002c,0x00000019,0x0000038b,0x00000116,0x00000151,0x0005002c,0x00000019, + 0x0000038e,0x00000116,0x00000116,0x0004002b,0x00000006,0x000003d3,0x00000040,0x0004002b, + 0x00000006,0x000003e1,0x00000020,0x0004001c,0x000003eb,0x0000003a,0x00000190,0x00040020, + 0x000003ec,0x00000007,0x000003eb,0x0004002b,0x0000001e,0x000006e0,0x00000007,0x00040017, + 0x00000746,0x00000006,0x00000003,0x00040020,0x00000747,0x00000001,0x00000746,0x0004003b, + 0x00000747,0x00000748,0x00000001,0x00040020,0x0000074b,0x00000001,0x00000006,0x0004003b, + 0x0000074b,0x0000074c,0x00000001,0x0004002b,0x00000013,0x00000752,0x387fda40,0x0004002b, + 0x00000013,0x00000753,0x477fe000,0x0004002b,0x00000013,0x00000754,0x37801002,0x0002001a, + 0x00000755,0x00040020,0x00000756,0x00000000,0x00000755,0x0004003b,0x00000756,0x00000757, + 0x00000000,0x0004002b,0x00000013,0x00000758,0x7f7fffff,0x0004002b,0x00000013,0x00000759, + 0x00800000,0x0004002b,0x00000006,0x0000075a,0x00000100,0x0006002c,0x00000746,0x0000075b, + 0x0000075a,0x00000116,0x00000116,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x000000f5,0x0000074f,0x00000007,0x0004003b,0x00000030, + 0x00000750,0x00000007,0x0004003d,0x00000746,0x00000749,0x00000748,0x0004007c,0x000000f4, + 0x0000074a,0x00000749,0x0004003d,0x00000006,0x0000074d,0x0000074c,0x0004007c,0x0000001e, + 0x0000074e,0x0000074d,0x0003003e,0x0000074f,0x0000074a,0x0003003e,0x00000750,0x0000074e, + 0x00060039,0x00000002,0x00000751,0x000000f9,0x0000074f,0x00000750,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d, + 0x0004003d,0x00000006,0x000000fb,0x00000009,0x0004003d,0x00000006,0x000000fc,0x0000000a, + 0x0004007c,0x0000001e,0x000000fd,0x000000fc,0x0004003d,0x00000006,0x000000fe,0x0000000b, + 0x0004007c,0x0000001e,0x000000ff,0x000000fe,0x000600cb,0x00000006,0x00000100,0x000000fb, + 0x000000fd,0x000000ff,0x000200fe,0x00000100,0x00010038,0x00050036,0x00000006,0x00000011, + 0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000006,0x00000103, + 0x0000000e,0x0004003d,0x00000006,0x00000104,0x0000000f,0x0004003d,0x00000006,0x00000106, + 0x00000010,0x0004007c,0x0000001e,0x00000107,0x00000106,0x000700c9,0x00000006,0x00000108, + 0x00000103,0x00000104,0x00000105,0x00000107,0x000200fe,0x00000108,0x00010038,0x00050036, + 0x00000014,0x00000017,0x00000000,0x00000015,0x00030037,0x00000007,0x00000016,0x000200f8, + 0x00000018,0x0004003d,0x00000006,0x0000010b,0x00000016,0x0006000c,0x00000014,0x0000010c, + 0x00000001,0x0000003e,0x0000010b,0x000200fe,0x0000010c,0x00010038,0x00050036,0x00000019, + 0x0000001c,0x00000000,0x0000001a,0x00030037,0x00000007,0x0000001b,0x000200f8,0x0000001d, + 0x0004003b,0x00000007,0x00000111,0x00000007,0x0004003b,0x00000007,0x00000113,0x00000007, + 0x0004003b,0x00000007,0x00000114,0x00000007,0x0004003b,0x00000007,0x00000117,0x00000007, + 0x0004003b,0x00000007,0x00000118,0x00000007,0x0004003b,0x00000007,0x0000011a,0x00000007, + 0x0004003b,0x00000007,0x0000011c,0x00000007,0x0004003b,0x00000007,0x0000011e,0x00000007, + 0x0004003b,0x00000007,0x0000011f,0x00000007,0x0004003b,0x00000007,0x00000121,0x00000007, + 0x0004003b,0x00000007,0x00000123,0x00000007,0x0004003b,0x00000007,0x00000124,0x00000007, + 0x0004003b,0x00000007,0x00000126,0x00000007,0x0004003b,0x00000007,0x00000127,0x00000007, + 0x0004003b,0x00000007,0x00000128,0x00000007,0x0004003d,0x00000006,0x00000112,0x0000001b, + 0x0003003e,0x00000111,0x00000112,0x0003003e,0x00000113,0x0000010f,0x0003003e,0x00000114, + 0x00000110,0x00070039,0x00000006,0x00000115,0x0000000c,0x00000111,0x00000113,0x00000114, + 0x0003003e,0x00000117,0x00000115,0x0004003d,0x00000006,0x00000119,0x0000001b,0x0003003e, + 0x00000118,0x00000119,0x0003003e,0x0000011a,0x00000116,0x00070039,0x00000006,0x0000011b, + 0x00000011,0x00000117,0x00000118,0x0000011a,0x0004003d,0x00000006,0x0000011d,0x0000001b, + 0x0003003e,0x0000011c,0x0000011d,0x0003003e,0x0000011e,0x00000110,0x0003003e,0x0000011f, + 0x00000110,0x00070039,0x00000006,0x00000120,0x0000000c,0x0000011c,0x0000011e,0x0000011f, + 0x0004003d,0x00000006,0x00000122,0x0000001b,0x0003003e,0x00000121,0x00000122,0x0003003e, + 0x00000123,0x00000116,0x0003003e,0x00000124,0x0000010f,0x00070039,0x00000006,0x00000125, + 0x0000000c,0x00000121,0x00000123,0x00000124,0x0003003e,0x00000126,0x00000120,0x0003003e, + 0x00000127,0x00000125,0x0003003e,0x00000128,0x0000010f,0x00070039,0x00000006,0x00000129, + 0x00000011,0x00000126,0x00000127,0x00000128,0x00050050,0x00000019,0x0000012a,0x0000011b, + 0x00000129,0x000200fe,0x0000012a,0x00010038,0x00050036,0x0000001f,0x00000021,0x00000000, + 0x00000020,0x000200f8,0x00000022,0x00050041,0x00000132,0x00000133,0x00000130,0x00000131, + 0x0004003d,0x0000001f,0x00000134,0x00000133,0x000200fe,0x00000134,0x00010038,0x00050036, + 0x00000006,0x00000024,0x00000000,0x00000023,0x000200f8,0x00000025,0x00050041,0x0000013a, + 0x0000013b,0x00000139,0x00000105,0x0004003d,0x00000006,0x0000013c,0x0000013b,0x000200fe, + 0x0000013c,0x00010038,0x00050036,0x00000006,0x00000026,0x00000000,0x00000023,0x000200f8, + 0x00000027,0x00050041,0x0000013a,0x0000013f,0x00000139,0x00000131,0x0004003d,0x00000006, + 0x00000140,0x0000013f,0x000200fe,0x00000140,0x00010038,0x00050036,0x00000019,0x00000029, + 0x00000000,0x00000028,0x000200f8,0x0000002a,0x00050041,0x00000144,0x00000145,0x00000139, + 0x00000143,0x0004003d,0x00000019,0x00000146,0x00000145,0x000200fe,0x00000146,0x00010038, + 0x00050036,0x00000019,0x0000002e,0x00000000,0x0000002c,0x00030037,0x0000002b,0x0000002d, + 0x000200f8,0x0000002f,0x0004003b,0x00000007,0x00000149,0x00000007,0x0004003b,0x00000007, + 0x00000153,0x00000007,0x0004003d,0x0000014a,0x0000014d,0x0000014c,0x0004003d,0x0000001f, + 0x0000014e,0x0000002d,0x0007005f,0x0000014f,0x00000150,0x0000014d,0x0000014e,0x00000002, + 0x00000105,0x00050051,0x00000006,0x00000152,0x00000150,0x00000000,0x0003003e,0x00000149, + 0x00000152,0x0004003d,0x0000014a,0x00000155,0x00000154,0x0004003d,0x0000001f,0x00000156, + 0x0000002d,0x0007005f,0x0000014f,0x00000157,0x00000155,0x00000156,0x00000002,0x00000105, + 0x00050051,0x00000006,0x00000158,0x00000157,0x00000000,0x0003003e,0x00000153,0x00000158, + 0x0004003d,0x00000006,0x00000159,0x00000149,0x0004003d,0x00000006,0x0000015a,0x00000153, + 0x00050050,0x00000019,0x0000015b,0x00000159,0x0000015a,0x000200fe,0x0000015b,0x00010038, + 0x00050036,0x00000002,0x00000034,0x00000000,0x00000031,0x00030037,0x00000030,0x00000032, + 0x00030037,0x00000007,0x00000033,0x000200f8,0x00000035,0x0004003d,0x0000001e,0x00000162, + 0x00000032,0x0004003d,0x00000006,0x00000163,0x00000033,0x00060041,0x00000164,0x00000165, + 0x00000161,0x00000105,0x00000162,0x0003003e,0x00000165,0x00000163,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000038,0x00000000,0x00000031,0x00030037,0x00000030,0x00000036, + 0x00030037,0x00000007,0x00000037,0x000200f8,0x00000039,0x0004003d,0x0000001e,0x00000166, + 0x00000036,0x00060041,0x00000164,0x00000167,0x00000161,0x00000105,0x00000166,0x000700ea, + 0x00000006,0x00000168,0x00000167,0x00000116,0x00000151,0x00000116,0x0003003e,0x00000037, + 0x00000168,0x000100fd,0x00010038,0x00050036,0x0000003a,0x0000003e,0x00000000,0x0000003b, + 0x00030037,0x0000002b,0x0000003c,0x00030037,0x00000007,0x0000003d,0x000200f8,0x0000003f, + 0x0004003d,0x00000006,0x00000169,0x0000003d,0x000500aa,0x00000047,0x0000016a,0x00000169, + 0x00000151,0x000300f7,0x0000016c,0x00000000,0x000400fa,0x0000016a,0x0000016b,0x0000016c, + 0x000200f8,0x0000016b,0x0004003d,0x0000016d,0x00000170,0x0000016f,0x0004003d,0x0000001f, + 0x00000171,0x0000003c,0x00050062,0x0000003a,0x00000172,0x00000170,0x00000171,0x000200fe, + 0x00000172,0x000200f8,0x0000016c,0x0004003d,0x00000006,0x00000174,0x0000003d,0x000500aa, + 0x00000047,0x00000175,0x00000174,0x00000116,0x000300f7,0x00000177,0x00000000,0x000400fa, + 0x00000175,0x00000176,0x00000177,0x000200f8,0x00000176,0x0004003d,0x0000016d,0x00000179, + 0x00000178,0x0004003d,0x0000001f,0x0000017a,0x0000003c,0x00050062,0x0000003a,0x0000017b, + 0x00000179,0x0000017a,0x000200fe,0x0000017b,0x000200f8,0x00000177,0x0004003d,0x00000006, + 0x0000017d,0x0000003d,0x000500aa,0x00000047,0x0000017e,0x0000017d,0x0000010f,0x000300f7, + 0x00000180,0x00000000,0x000400fa,0x0000017e,0x0000017f,0x00000180,0x000200f8,0x0000017f, + 0x0004003d,0x0000016d,0x00000182,0x00000181,0x0004003d,0x0000001f,0x00000183,0x0000003c, + 0x00050062,0x0000003a,0x00000184,0x00000182,0x00000183,0x000200fe,0x00000184,0x000200f8, + 0x00000180,0x0004003d,0x00000006,0x00000186,0x0000003d,0x000500aa,0x00000047,0x00000187, + 0x00000186,0x00000110,0x000300f7,0x00000189,0x00000000,0x000400fa,0x00000187,0x00000188, + 0x00000189,0x000200f8,0x00000188,0x0004003d,0x0000016d,0x0000018b,0x0000018a,0x0004003d, + 0x0000001f,0x0000018c,0x0000003c,0x00050062,0x0000003a,0x0000018d,0x0000018b,0x0000018c, + 0x000200fe,0x0000018d,0x000200f8,0x00000189,0x0004003d,0x00000006,0x0000018f,0x0000003d, + 0x000500aa,0x00000047,0x00000191,0x0000018f,0x00000190,0x000300f7,0x00000193,0x00000000, + 0x000400fa,0x00000191,0x00000192,0x00000193,0x000200f8,0x00000192,0x0004003d,0x0000016d, + 0x00000195,0x00000194,0x0004003d,0x0000001f,0x00000196,0x0000003c,0x00050062,0x0000003a, + 0x00000197,0x00000195,0x00000196,0x000200fe,0x00000197,0x000200f8,0x00000193,0x0004003d, + 0x00000006,0x00000199,0x0000003d,0x000500aa,0x00000047,0x0000019b,0x00000199,0x0000019a, + 0x000300f7,0x0000019d,0x00000000,0x000400fa,0x0000019b,0x0000019c,0x0000019d,0x000200f8, + 0x0000019c,0x0004003d,0x0000016d,0x0000019f,0x0000019e,0x0004003d,0x0000001f,0x000001a0, + 0x0000003c,0x00050062,0x0000003a,0x000001a1,0x0000019f,0x000001a0,0x000200fe,0x000001a1, + 0x000200f8,0x0000019d,0x0004003d,0x00000006,0x000001a3,0x0000003d,0x000500aa,0x00000047, + 0x000001a5,0x000001a3,0x000001a4,0x000300f7,0x000001a7,0x00000000,0x000400fa,0x000001a5, + 0x000001a6,0x000001a7,0x000200f8,0x000001a6,0x0004003d,0x0000016d,0x000001a9,0x000001a8, + 0x0004003d,0x0000001f,0x000001aa,0x0000003c,0x00050062,0x0000003a,0x000001ab,0x000001a9, + 0x000001aa,0x000200fe,0x000001ab,0x000200f8,0x000001a7,0x0004003d,0x00000006,0x000001ad, + 0x0000003d,0x000500aa,0x00000047,0x000001af,0x000001ad,0x000001ae,0x000300f7,0x000001b1, + 0x00000000,0x000400fa,0x000001af,0x000001b0,0x000001b1,0x000200f8,0x000001b0,0x0004003d, + 0x0000016d,0x000001b3,0x000001b2,0x0004003d,0x0000001f,0x000001b4,0x0000003c,0x00050062, + 0x0000003a,0x000001b5,0x000001b3,0x000001b4,0x000200fe,0x000001b5,0x000200f8,0x000001b1, + 0x0004003d,0x00000006,0x000001b7,0x0000003d,0x000500aa,0x00000047,0x000001b9,0x000001b7, + 0x000001b8,0x000300f7,0x000001bb,0x00000000,0x000400fa,0x000001b9,0x000001ba,0x000001bb, + 0x000200f8,0x000001ba,0x0004003d,0x0000016d,0x000001bd,0x000001bc,0x0004003d,0x0000001f, + 0x000001be,0x0000003c,0x00050062,0x0000003a,0x000001bf,0x000001bd,0x000001be,0x000200fe, + 0x000001bf,0x000200f8,0x000001bb,0x0004003d,0x00000006,0x000001c1,0x0000003d,0x000500aa, + 0x00000047,0x000001c3,0x000001c1,0x000001c2,0x000300f7,0x000001c5,0x00000000,0x000400fa, + 0x000001c3,0x000001c4,0x000001c5,0x000200f8,0x000001c4,0x0004003d,0x0000016d,0x000001c7, + 0x000001c6,0x0004003d,0x0000001f,0x000001c8,0x0000003c,0x00050062,0x0000003a,0x000001c9, + 0x000001c7,0x000001c8,0x000200fe,0x000001c9,0x000200f8,0x000001c5,0x0004003d,0x00000006, + 0x000001cb,0x0000003d,0x000500aa,0x00000047,0x000001cd,0x000001cb,0x000001cc,0x000300f7, + 0x000001cf,0x00000000,0x000400fa,0x000001cd,0x000001ce,0x000001cf,0x000200f8,0x000001ce, + 0x0004003d,0x0000016d,0x000001d1,0x000001d0,0x0004003d,0x0000001f,0x000001d2,0x0000003c, + 0x00050062,0x0000003a,0x000001d3,0x000001d1,0x000001d2,0x000200fe,0x000001d3,0x000200f8, + 0x000001cf,0x0004003d,0x00000006,0x000001d5,0x0000003d,0x000500aa,0x00000047,0x000001d7, + 0x000001d5,0x000001d6,0x000300f7,0x000001d9,0x00000000,0x000400fa,0x000001d7,0x000001d8, + 0x000001d9,0x000200f8,0x000001d8,0x0004003d,0x0000016d,0x000001db,0x000001da,0x0004003d, + 0x0000001f,0x000001dc,0x0000003c,0x00050062,0x0000003a,0x000001dd,0x000001db,0x000001dc, + 0x000200fe,0x000001dd,0x000200f8,0x000001d9,0x0004003d,0x00000006,0x000001df,0x0000003d, + 0x000500aa,0x00000047,0x000001e1,0x000001df,0x000001e0,0x000300f7,0x000001e3,0x00000000, + 0x000400fa,0x000001e1,0x000001e2,0x000001e3,0x000200f8,0x000001e2,0x0004003d,0x0000016d, + 0x000001e5,0x000001e4,0x0004003d,0x0000001f,0x000001e6,0x0000003c,0x00050062,0x0000003a, + 0x000001e7,0x000001e5,0x000001e6,0x000200fe,0x000001e7,0x000200f8,0x000001e3,0x000200fe, + 0x000001ea,0x00010038,0x00050036,0x00000002,0x00000045,0x00000000,0x00000041,0x00030037, + 0x0000002b,0x00000042,0x00030037,0x00000040,0x00000043,0x00030037,0x00000007,0x00000044, + 0x000200f8,0x00000046,0x0004003d,0x00000006,0x000001ed,0x00000044,0x000500aa,0x00000047, + 0x000001ee,0x000001ed,0x00000151,0x000300f7,0x000001f0,0x00000000,0x000400fa,0x000001ee, + 0x000001ef,0x000001f0,0x000200f8,0x000001ef,0x0004003d,0x0000016d,0x000001f1,0x0000016f, + 0x0004003d,0x0000001f,0x000001f2,0x00000042,0x0004003d,0x0000003a,0x000001f3,0x00000043, + 0x00040063,0x000001f1,0x000001f2,0x000001f3,0x000200f9,0x000001f0,0x000200f8,0x000001f0, + 0x0004003d,0x00000006,0x000001f4,0x00000044,0x000500aa,0x00000047,0x000001f5,0x000001f4, + 0x00000116,0x000300f7,0x000001f7,0x00000000,0x000400fa,0x000001f5,0x000001f6,0x000001f7, + 0x000200f8,0x000001f6,0x0004003d,0x0000016d,0x000001f8,0x00000178,0x0004003d,0x0000001f, + 0x000001f9,0x00000042,0x0004003d,0x0000003a,0x000001fa,0x00000043,0x00040063,0x000001f8, + 0x000001f9,0x000001fa,0x000200f9,0x000001f7,0x000200f8,0x000001f7,0x0004003d,0x00000006, + 0x000001fb,0x00000044,0x000500aa,0x00000047,0x000001fc,0x000001fb,0x0000010f,0x000300f7, + 0x000001fe,0x00000000,0x000400fa,0x000001fc,0x000001fd,0x000001fe,0x000200f8,0x000001fd, + 0x0004003d,0x0000016d,0x000001ff,0x00000181,0x0004003d,0x0000001f,0x00000200,0x00000042, + 0x0004003d,0x0000003a,0x00000201,0x00000043,0x00040063,0x000001ff,0x00000200,0x00000201, + 0x000200f9,0x000001fe,0x000200f8,0x000001fe,0x0004003d,0x00000006,0x00000202,0x00000044, + 0x000500aa,0x00000047,0x00000203,0x00000202,0x00000110,0x000300f7,0x00000205,0x00000000, + 0x000400fa,0x00000203,0x00000204,0x00000205,0x000200f8,0x00000204,0x0004003d,0x0000016d, + 0x00000206,0x0000018a,0x0004003d,0x0000001f,0x00000207,0x00000042,0x0004003d,0x0000003a, + 0x00000208,0x00000043,0x00040063,0x00000206,0x00000207,0x00000208,0x000200f9,0x00000205, + 0x000200f8,0x00000205,0x0004003d,0x00000006,0x00000209,0x00000044,0x000500aa,0x00000047, + 0x0000020a,0x00000209,0x00000190,0x000300f7,0x0000020c,0x00000000,0x000400fa,0x0000020a, + 0x0000020b,0x0000020c,0x000200f8,0x0000020b,0x0004003d,0x0000016d,0x0000020d,0x00000194, + 0x0004003d,0x0000001f,0x0000020e,0x00000042,0x0004003d,0x0000003a,0x0000020f,0x00000043, + 0x00040063,0x0000020d,0x0000020e,0x0000020f,0x000200f9,0x0000020c,0x000200f8,0x0000020c, + 0x0004003d,0x00000006,0x00000210,0x00000044,0x000500aa,0x00000047,0x00000211,0x00000210, + 0x0000019a,0x000300f7,0x00000213,0x00000000,0x000400fa,0x00000211,0x00000212,0x00000213, + 0x000200f8,0x00000212,0x0004003d,0x0000016d,0x00000214,0x0000019e,0x0004003d,0x0000001f, + 0x00000215,0x00000042,0x0004003d,0x0000003a,0x00000216,0x00000043,0x00040063,0x00000214, + 0x00000215,0x00000216,0x000200f9,0x00000213,0x000200f8,0x00000213,0x0004003d,0x00000006, + 0x00000217,0x00000044,0x000500aa,0x00000047,0x00000218,0x00000217,0x000001a4,0x000300f7, + 0x0000021a,0x00000000,0x000400fa,0x00000218,0x00000219,0x0000021a,0x000200f8,0x00000219, + 0x0004003d,0x0000016d,0x0000021b,0x000001a8,0x0004003d,0x0000001f,0x0000021c,0x00000042, + 0x0004003d,0x0000003a,0x0000021d,0x00000043,0x00040063,0x0000021b,0x0000021c,0x0000021d, + 0x000200f9,0x0000021a,0x000200f8,0x0000021a,0x0004003d,0x00000006,0x0000021e,0x00000044, + 0x000500aa,0x00000047,0x0000021f,0x0000021e,0x000001ae,0x000300f7,0x00000221,0x00000000, + 0x000400fa,0x0000021f,0x00000220,0x00000221,0x000200f8,0x00000220,0x0004003d,0x0000016d, + 0x00000222,0x000001b2,0x0004003d,0x0000001f,0x00000223,0x00000042,0x0004003d,0x0000003a, + 0x00000224,0x00000043,0x00040063,0x00000222,0x00000223,0x00000224,0x000200f9,0x00000221, + 0x000200f8,0x00000221,0x0004003d,0x00000006,0x00000225,0x00000044,0x000500aa,0x00000047, + 0x00000226,0x00000225,0x000001b8,0x000300f7,0x00000228,0x00000000,0x000400fa,0x00000226, + 0x00000227,0x00000228,0x000200f8,0x00000227,0x0004003d,0x0000016d,0x00000229,0x000001bc, + 0x0004003d,0x0000001f,0x0000022a,0x00000042,0x0004003d,0x0000003a,0x0000022b,0x00000043, + 0x00040063,0x00000229,0x0000022a,0x0000022b,0x000200f9,0x00000228,0x000200f8,0x00000228, + 0x0004003d,0x00000006,0x0000022c,0x00000044,0x000500aa,0x00000047,0x0000022d,0x0000022c, + 0x000001c2,0x000300f7,0x0000022f,0x00000000,0x000400fa,0x0000022d,0x0000022e,0x0000022f, + 0x000200f8,0x0000022e,0x0004003d,0x0000016d,0x00000230,0x000001c6,0x0004003d,0x0000001f, + 0x00000231,0x00000042,0x0004003d,0x0000003a,0x00000232,0x00000043,0x00040063,0x00000230, + 0x00000231,0x00000232,0x000200f9,0x0000022f,0x000200f8,0x0000022f,0x0004003d,0x00000006, + 0x00000233,0x00000044,0x000500aa,0x00000047,0x00000234,0x00000233,0x000001cc,0x000300f7, + 0x00000236,0x00000000,0x000400fa,0x00000234,0x00000235,0x00000236,0x000200f8,0x00000235, + 0x0004003d,0x0000016d,0x00000237,0x000001d0,0x0004003d,0x0000001f,0x00000238,0x00000042, + 0x0004003d,0x0000003a,0x00000239,0x00000043,0x00040063,0x00000237,0x00000238,0x00000239, + 0x000200f9,0x00000236,0x000200f8,0x00000236,0x0004003d,0x00000006,0x0000023a,0x00000044, + 0x000500aa,0x00000047,0x0000023b,0x0000023a,0x000001d6,0x000300f7,0x0000023d,0x00000000, + 0x000400fa,0x0000023b,0x0000023c,0x0000023d,0x000200f8,0x0000023c,0x0004003d,0x0000016d, + 0x0000023e,0x000001da,0x0004003d,0x0000001f,0x0000023f,0x00000042,0x0004003d,0x0000003a, + 0x00000240,0x00000043,0x00040063,0x0000023e,0x0000023f,0x00000240,0x000200f9,0x0000023d, + 0x000200f8,0x0000023d,0x0004003d,0x00000006,0x00000241,0x00000044,0x000500aa,0x00000047, + 0x00000242,0x00000241,0x000001e0,0x000300f7,0x00000244,0x00000000,0x000400fa,0x00000242, + 0x00000243,0x00000244,0x000200f8,0x00000243,0x0004003d,0x0000016d,0x00000245,0x000001e4, + 0x0004003d,0x0000001f,0x00000246,0x00000042,0x0004003d,0x0000003a,0x00000247,0x00000043, + 0x00040063,0x00000245,0x00000246,0x00000247,0x000200f9,0x00000244,0x000200f8,0x00000244, + 0x000100fd,0x00010038,0x00050036,0x00000047,0x0000004a,0x00000000,0x00000048,0x00030037, + 0x00000007,0x00000049,0x000200f8,0x0000004b,0x0004003d,0x00000006,0x00000248,0x00000049, + 0x000500c7,0x00000006,0x0000024a,0x00000248,0x00000249,0x000500ab,0x00000047,0x0000024b, + 0x0000024a,0x00000151,0x000200fe,0x0000024b,0x00010038,0x00050036,0x00000002,0x00000052, + 0x00000000,0x0000004f,0x00030037,0x0000004c,0x00000050,0x00030037,0x0000004e,0x00000051, + 0x000200f8,0x00000053,0x0004003b,0x00000007,0x00000264,0x00000007,0x0004003b,0x00000007, + 0x00000282,0x00000007,0x0004003b,0x00000007,0x00000288,0x00000007,0x00050041,0x00000007, + 0x0000024e,0x00000050,0x00000151,0x0004003d,0x00000006,0x0000024f,0x0000024e,0x000500c2, + 0x00000006,0x00000251,0x0000024f,0x00000250,0x000500c7,0x00000006,0x00000253,0x00000251, + 0x00000252,0x00040070,0x00000013,0x00000254,0x00000253,0x00050088,0x00000013,0x00000256, + 0x00000254,0x00000255,0x00050041,0x00000257,0x00000258,0x00000051,0x00000131,0x0003003e, + 0x00000258,0x00000256,0x00050041,0x00000007,0x00000259,0x00000050,0x00000151,0x0004003d, + 0x00000006,0x0000025a,0x00000259,0x000500c2,0x00000006,0x0000025c,0x0000025a,0x0000025b, + 0x000500c7,0x00000006,0x0000025e,0x0000025c,0x0000025d,0x00040070,0x00000013,0x0000025f, + 0x0000025e,0x00050088,0x00000013,0x00000261,0x0000025f,0x00000260,0x00050041,0x00000257, + 0x00000262,0x00000051,0x00000143,0x0003003e,0x00000262,0x00000261,0x00050041,0x00000007, + 0x00000265,0x00000050,0x00000151,0x0004003d,0x00000006,0x00000266,0x00000265,0x0003003e, + 0x00000264,0x00000266,0x00050039,0x00000047,0x00000267,0x0000004a,0x00000264,0x00050041, + 0x00000268,0x00000269,0x00000051,0x00000263,0x0003003e,0x00000269,0x00000267,0x00050041, + 0x00000257,0x0000026b,0x00000051,0x00000131,0x0004003d,0x00000013,0x0000026c,0x0000026b, + 0x000500ba,0x00000047,0x0000026d,0x0000026c,0x000001e9,0x00050041,0x00000268,0x0000026e, + 0x00000051,0x0000026a,0x0003003e,0x0000026e,0x0000026d,0x00050041,0x00000268,0x00000270, + 0x00000051,0x0000026a,0x0004003d,0x00000047,0x00000271,0x00000270,0x000300f7,0x00000273, + 0x00000000,0x000400fa,0x00000271,0x00000272,0x00000273,0x000200f8,0x00000272,0x00050041, + 0x00000268,0x00000274,0x00000051,0x00000263,0x0004003d,0x00000047,0x00000275,0x00000274, + 0x000400a8,0x00000047,0x00000276,0x00000275,0x000200f9,0x00000273,0x000200f8,0x00000273, + 0x000700f5,0x00000047,0x00000277,0x00000271,0x00000053,0x00000276,0x00000272,0x00050041, + 0x00000268,0x00000278,0x00000051,0x0000026f,0x0003003e,0x00000278,0x00000277,0x00050041, + 0x00000268,0x00000279,0x00000051,0x0000026f,0x0004003d,0x00000047,0x0000027a,0x00000279, + 0x000300f7,0x0000027c,0x00000000,0x000400fa,0x0000027a,0x0000027b,0x0000027c,0x000200f8, + 0x0000027b,0x00050041,0x00000257,0x0000027e,0x00000051,0x00000131,0x0004003d,0x00000013, + 0x0000027f,0x0000027e,0x00050083,0x00000013,0x00000280,0x0000027d,0x0000027f,0x00050041, + 0x00000257,0x00000281,0x00000051,0x00000131,0x0003003e,0x00000281,0x00000280,0x000200f9, + 0x0000027c,0x000200f8,0x0000027c,0x00050041,0x00000007,0x00000283,0x00000050,0x00000151, + 0x0004003d,0x00000006,0x00000284,0x00000283,0x0003003e,0x00000282,0x00000284,0x00050039, + 0x00000014,0x00000285,0x00000017,0x00000282,0x00050051,0x00000013,0x00000286,0x00000285, + 0x00000000,0x00060041,0x00000257,0x00000287,0x00000051,0x00000105,0x00000151,0x0003003e, + 0x00000287,0x00000286,0x00050041,0x00000007,0x00000289,0x00000050,0x00000116,0x0004003d, + 0x00000006,0x0000028a,0x00000289,0x0003003e,0x00000288,0x0000028a,0x00050039,0x00000014, + 0x0000028b,0x00000017,0x00000288,0x00050051,0x00000013,0x0000028c,0x0000028b,0x00000000, + 0x00060041,0x00000257,0x0000028d,0x00000051,0x00000105,0x00000116,0x0003003e,0x0000028d, + 0x0000028c,0x00050041,0x00000268,0x00000290,0x00000051,0x0000028e,0x0003003e,0x00000290, + 0x0000028f,0x000100fd,0x00010038,0x00050036,0x0000003a,0x00000056,0x00000000,0x0000003b, + 0x00030037,0x0000002b,0x00000054,0x00030037,0x00000007,0x00000055,0x000200f8,0x00000057, + 0x0004003b,0x0000004c,0x00000291,0x00000007,0x0004003b,0x0000002b,0x00000292,0x00000007, + 0x0004003b,0x0000004e,0x00000295,0x00000007,0x0004003b,0x0000004c,0x00000296,0x00000007, + 0x0004003b,0x0000004e,0x00000298,0x00000007,0x0004003d,0x0000001f,0x00000293,0x00000054, + 0x0003003e,0x00000292,0x00000293,0x00050039,0x00000019,0x00000294,0x0000002e,0x00000292, + 0x0003003e,0x00000291,0x00000294,0x0004003d,0x00000019,0x00000297,0x00000291,0x0003003e, + 0x00000296,0x00000297,0x00060039,0x00000002,0x00000299,0x00000052,0x00000296,0x00000298, + 0x0004003d,0x0000004d,0x0000029a,0x00000298,0x0003003e,0x00000295,0x0000029a,0x00050041, + 0x0000029b,0x0000029c,0x00000295,0x00000105,0x0004003d,0x00000014,0x0000029d,0x0000029c, + 0x00050041,0x00000257,0x0000029e,0x00000295,0x00000131,0x0004003d,0x00000013,0x0000029f, + 0x0000029e,0x00050041,0x00000257,0x000002a0,0x00000295,0x00000143,0x0004003d,0x00000013, + 0x000002a1,0x000002a0,0x00050051,0x00000013,0x000002a2,0x0000029d,0x00000000,0x00050051, + 0x00000013,0x000002a3,0x0000029d,0x00000001,0x00070050,0x0000003a,0x000002a4,0x000002a2, + 0x000002a3,0x0000029f,0x000002a1,0x00040039,0x0000001f,0x000002a5,0x00000021,0x00050051, + 0x0000001e,0x000002a6,0x000002a5,0x00000000,0x000500ad,0x00000047,0x000002a7,0x000002a6, + 0x00000105,0x000600a9,0x00000013,0x000002a8,0x000002a7,0x0000027d,0x000001e9,0x0005008e, + 0x0000003a,0x000002a9,0x000002a4,0x000002a8,0x000200fe,0x000002a9,0x00010038,0x00050036, + 0x0000003a,0x0000005a,0x00000000,0x0000003b,0x00030037,0x0000002b,0x00000058,0x00030037, + 0x00000007,0x00000059,0x000200f8,0x0000005b,0x0004003b,0x0000002b,0x000002ac,0x00000007, + 0x0004003b,0x00000007,0x000002ae,0x00000007,0x0004003d,0x0000001f,0x000002ad,0x00000058, + 0x0003003e,0x000002ac,0x000002ad,0x0003003e,0x000002ae,0x0000019a,0x00060039,0x0000003a, + 0x000002af,0x0000003e,0x000002ac,0x000002ae,0x000200fe,0x000002af,0x00010038,0x00050036, + 0x00000002,0x00000061,0x00000000,0x0000005c,0x00030037,0x0000002b,0x0000005d,0x00030037, + 0x00000040,0x0000005e,0x00030037,0x00000007,0x0000005f,0x00030037,0x00000007,0x00000060, + 0x000200f8,0x00000062,0x0004003b,0x0000002b,0x000002b2,0x00000007,0x0004003b,0x00000040, + 0x000002b4,0x00000007,0x0004003b,0x00000007,0x000002b6,0x00000007,0x0004003d,0x0000001f, + 0x000002b3,0x0000005d,0x0003003e,0x000002b2,0x000002b3,0x0004003d,0x0000003a,0x000002b5, + 0x0000005e,0x0003003e,0x000002b4,0x000002b5,0x0004003d,0x00000006,0x000002b7,0x0000005f, + 0x0003003e,0x000002b6,0x000002b7,0x00070039,0x00000002,0x000002b8,0x00000045,0x000002b2, + 0x000002b4,0x000002b6,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000065,0x00000000, + 0x00000063,0x00030037,0x00000007,0x00000064,0x000200f8,0x00000066,0x0004003b,0x00000030, + 0x000002bb,0x00000007,0x0004003b,0x00000007,0x000002bc,0x00000007,0x0003003e,0x000002bb, + 0x00000105,0x00060039,0x00000002,0x000002bd,0x00000038,0x000002bb,0x000002bc,0x0004003d, + 0x00000006,0x000002be,0x000002bc,0x0003003e,0x000002ba,0x000002be,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x00000067,0x00000000,0x00000023,0x000200f8,0x00000068,0x0004003d, + 0x00000006,0x000002bf,0x000002ba,0x000200fe,0x000002bf,0x00010038,0x00050036,0x00000002, + 0x0000006a,0x00000000,0x00000063,0x00030037,0x00000007,0x00000069,0x000200f8,0x0000006b, + 0x0004003b,0x00000030,0x000002c2,0x00000007,0x0004003b,0x00000007,0x000002c3,0x00000007, + 0x0003003e,0x000002c2,0x00000105,0x0003003e,0x000002c3,0x00000151,0x00060039,0x00000002, + 0x000002c4,0x00000034,0x000002c2,0x000002c3,0x000100fd,0x00010038,0x00050036,0x0000003a, + 0x0000006f,0x00000000,0x0000006c,0x00030037,0x00000007,0x0000006d,0x00030037,0x00000007, + 0x0000006e,0x000200f8,0x00000070,0x0004003d,0x00000006,0x000002c9,0x0000006d,0x0004003d, + 0x00000006,0x000002ca,0x0000006e,0x00060041,0x000002cb,0x000002cc,0x000002c8,0x000002c9, + 0x000002ca,0x0004003d,0x00000013,0x000002cd,0x000002cc,0x0004003d,0x00000006,0x000002cf, + 0x0000006d,0x0004003d,0x00000006,0x000002d0,0x0000006e,0x00060041,0x000002cb,0x000002d1, + 0x000002ce,0x000002cf,0x000002d0,0x0004003d,0x00000013,0x000002d2,0x000002d1,0x0004003d, + 0x00000006,0x000002d4,0x0000006d,0x0004003d,0x00000006,0x000002d5,0x0000006e,0x00060041, + 0x000002cb,0x000002d6,0x000002d3,0x000002d4,0x000002d5,0x0004003d,0x00000013,0x000002d7, + 0x000002d6,0x0004003d,0x00000006,0x000002d9,0x0000006d,0x0004003d,0x00000006,0x000002da, + 0x0000006e,0x00060041,0x000002cb,0x000002db,0x000002d8,0x000002d9,0x000002da,0x0004003d, + 0x00000013,0x000002dc,0x000002db,0x00070050,0x0000003a,0x000002dd,0x000002cd,0x000002d2, + 0x000002d7,0x000002dc,0x000200fe,0x000002dd,0x00010038,0x00050036,0x00000002,0x00000075, + 0x00000000,0x00000071,0x00030037,0x00000007,0x00000072,0x00030037,0x00000007,0x00000073, + 0x00030037,0x00000040,0x00000074,0x000200f8,0x00000076,0x0004003d,0x00000006,0x000002e0, + 0x00000072,0x0004003d,0x00000006,0x000002e1,0x00000073,0x00050041,0x00000257,0x000002e2, + 0x00000074,0x00000151,0x0004003d,0x00000013,0x000002e3,0x000002e2,0x00060041,0x000002cb, + 0x000002e4,0x000002c8,0x000002e0,0x000002e1,0x0003003e,0x000002e4,0x000002e3,0x0004003d, + 0x00000006,0x000002e5,0x00000072,0x0004003d,0x00000006,0x000002e6,0x00000073,0x00050041, + 0x00000257,0x000002e7,0x00000074,0x00000116,0x0004003d,0x00000013,0x000002e8,0x000002e7, + 0x00060041,0x000002cb,0x000002e9,0x000002ce,0x000002e5,0x000002e6,0x0003003e,0x000002e9, + 0x000002e8,0x0004003d,0x00000006,0x000002ea,0x00000072,0x0004003d,0x00000006,0x000002eb, + 0x00000073,0x00050041,0x00000257,0x000002ec,0x00000074,0x0000010f,0x0004003d,0x00000013, + 0x000002ed,0x000002ec,0x00060041,0x000002cb,0x000002ee,0x000002d3,0x000002ea,0x000002eb, + 0x0003003e,0x000002ee,0x000002ed,0x0004003d,0x00000006,0x000002ef,0x00000072,0x0004003d, + 0x00000006,0x000002f0,0x00000073,0x00050041,0x00000257,0x000002f1,0x00000074,0x00000110, + 0x0004003d,0x00000013,0x000002f2,0x000002f1,0x00060041,0x000002cb,0x000002f3,0x000002d8, + 0x000002ef,0x000002f0,0x0003003e,0x000002f3,0x000002f2,0x000100fd,0x00010038,0x00050036, + 0x0000003a,0x0000007c,0x00000000,0x00000077,0x00030037,0x00000040,0x00000078,0x00030037, + 0x00000040,0x00000079,0x00030037,0x00000040,0x0000007a,0x00030037,0x00000040,0x0000007b, + 0x000200f8,0x0000007d,0x0004003b,0x00000040,0x000002f4,0x00000007,0x0004003b,0x00000257, + 0x000002f5,0x00000007,0x0004003b,0x00000257,0x000002f6,0x00000007,0x0004003b,0x00000257, + 0x00000303,0x00000007,0x0004003b,0x00000257,0x00000310,0x00000007,0x0004003b,0x00000257, + 0x0000031d,0x00000007,0x0003003e,0x000002f4,0x000001ea,0x0003003e,0x000002f5,0x000001e9, + 0x00050041,0x00000257,0x000002f7,0x00000078,0x0000010f,0x0004003d,0x00000013,0x000002f8, + 0x000002f7,0x000500ba,0x00000047,0x000002f9,0x000002f8,0x000001e9,0x000600a9,0x00000013, + 0x000002fa,0x000002f9,0x0000027d,0x000001e9,0x0003003e,0x000002f6,0x000002fa,0x0004003d, + 0x0000003a,0x000002fb,0x00000078,0x0004003d,0x00000013,0x000002fc,0x000002f6,0x0005008e, + 0x0000003a,0x000002fd,0x000002fb,0x000002fc,0x0004003d,0x0000003a,0x000002fe,0x000002f4, + 0x00050081,0x0000003a,0x000002ff,0x000002fe,0x000002fd,0x0003003e,0x000002f4,0x000002ff, + 0x0004003d,0x00000013,0x00000300,0x000002f6,0x0004003d,0x00000013,0x00000301,0x000002f5, + 0x00050081,0x00000013,0x00000302,0x00000301,0x00000300,0x0003003e,0x000002f5,0x00000302, + 0x00050041,0x00000257,0x00000304,0x00000079,0x0000010f,0x0004003d,0x00000013,0x00000305, + 0x00000304,0x000500ba,0x00000047,0x00000306,0x00000305,0x000001e9,0x000600a9,0x00000013, + 0x00000307,0x00000306,0x0000027d,0x000001e9,0x0003003e,0x00000303,0x00000307,0x0004003d, + 0x0000003a,0x00000308,0x00000079,0x0004003d,0x00000013,0x00000309,0x00000303,0x0005008e, + 0x0000003a,0x0000030a,0x00000308,0x00000309,0x0004003d,0x0000003a,0x0000030b,0x000002f4, + 0x00050081,0x0000003a,0x0000030c,0x0000030b,0x0000030a,0x0003003e,0x000002f4,0x0000030c, + 0x0004003d,0x00000013,0x0000030d,0x00000303,0x0004003d,0x00000013,0x0000030e,0x000002f5, + 0x00050081,0x00000013,0x0000030f,0x0000030e,0x0000030d,0x0003003e,0x000002f5,0x0000030f, + 0x00050041,0x00000257,0x00000311,0x0000007a,0x0000010f,0x0004003d,0x00000013,0x00000312, + 0x00000311,0x000500ba,0x00000047,0x00000313,0x00000312,0x000001e9,0x000600a9,0x00000013, + 0x00000314,0x00000313,0x0000027d,0x000001e9,0x0003003e,0x00000310,0x00000314,0x0004003d, + 0x0000003a,0x00000315,0x0000007a,0x0004003d,0x00000013,0x00000316,0x00000310,0x0005008e, + 0x0000003a,0x00000317,0x00000315,0x00000316,0x0004003d,0x0000003a,0x00000318,0x000002f4, + 0x00050081,0x0000003a,0x00000319,0x00000318,0x00000317,0x0003003e,0x000002f4,0x00000319, + 0x0004003d,0x00000013,0x0000031a,0x00000310,0x0004003d,0x00000013,0x0000031b,0x000002f5, + 0x00050081,0x00000013,0x0000031c,0x0000031b,0x0000031a,0x0003003e,0x000002f5,0x0000031c, + 0x00050041,0x00000257,0x0000031e,0x0000007b,0x0000010f,0x0004003d,0x00000013,0x0000031f, + 0x0000031e,0x000500ba,0x00000047,0x00000320,0x0000031f,0x000001e9,0x000600a9,0x00000013, + 0x00000321,0x00000320,0x0000027d,0x000001e9,0x0003003e,0x0000031d,0x00000321,0x0004003d, + 0x0000003a,0x00000322,0x0000007b,0x0004003d,0x00000013,0x00000323,0x0000031d,0x0005008e, + 0x0000003a,0x00000324,0x00000322,0x00000323,0x0004003d,0x0000003a,0x00000325,0x000002f4, + 0x00050081,0x0000003a,0x00000326,0x00000325,0x00000324,0x0003003e,0x000002f4,0x00000326, + 0x0004003d,0x00000013,0x00000327,0x0000031d,0x0004003d,0x00000013,0x00000328,0x000002f5, + 0x00050081,0x00000013,0x00000329,0x00000328,0x00000327,0x0003003e,0x000002f5,0x00000329, + 0x0004003d,0x00000013,0x0000032a,0x000002f5,0x000500ba,0x00000047,0x0000032c,0x0000032a, + 0x0000032b,0x0004003d,0x00000013,0x0000032d,0x000002f5,0x000600a9,0x00000013,0x0000032e, + 0x0000032c,0x0000032d,0x0000027d,0x0004003d,0x0000003a,0x0000032f,0x000002f4,0x00070050, + 0x0000003a,0x00000330,0x0000032e,0x0000032e,0x0000032e,0x0000032e,0x00050088,0x0000003a, + 0x00000331,0x0000032f,0x00000330,0x0003003e,0x000002f4,0x00000331,0x0004003d,0x0000003a, + 0x00000332,0x000002f4,0x000200fe,0x00000332,0x00010038,0x00050036,0x00000002,0x0000007e, + 0x00000000,0x00000003,0x000200f8,0x0000007f,0x000300e1,0x0000010f,0x00000335,0x000400e0, + 0x0000010f,0x0000010f,0x00000336,0x000100fd,0x00010038,0x00050036,0x00000047,0x00000084, + 0x00000000,0x00000080,0x00030037,0x00000007,0x00000081,0x00030037,0x00000007,0x00000082, + 0x00030037,0x00000007,0x00000083,0x000200f8,0x00000085,0x0004003b,0x00000007,0x0000033b, + 0x00000007,0x0004003d,0x00000006,0x00000337,0x00000082,0x000500aa,0x00000047,0x00000338, + 0x00000337,0x00000151,0x000300f7,0x0000033a,0x00000000,0x000400fa,0x00000338,0x00000339, + 0x0000033a,0x000200f8,0x00000339,0x0004003d,0x00000006,0x0000033c,0x00000083,0x0003003e, + 0x0000033b,0x0000033c,0x00050039,0x00000002,0x0000033d,0x00000065,0x0000033b,0x000200f9, + 0x0000033a,0x000200f8,0x0000033a,0x00040039,0x00000002,0x0000033e,0x0000007e,0x00040039, + 0x00000006,0x0000033f,0x00000067,0x0004003d,0x00000006,0x00000340,0x00000081,0x00050082, + 0x00000006,0x00000341,0x00000340,0x00000116,0x000500ab,0x00000047,0x00000342,0x0000033f, + 0x00000341,0x000200fe,0x00000342,0x00010038,0x00050036,0x0000003a,0x00000088,0x00000000, + 0x00000086,0x00030037,0x00000040,0x00000087,0x000200f8,0x00000089,0x0004003b,0x00000040, + 0x00000345,0x00000007,0x0004003b,0x00000040,0x00000347,0x00000007,0x0004003b,0x00000040, + 0x0000034a,0x00000007,0x0004003b,0x00000040,0x0000034d,0x00000007,0x0004003b,0x00000040, + 0x00000350,0x00000007,0x0004003b,0x00000040,0x00000352,0x00000007,0x0004003b,0x00000040, + 0x00000354,0x00000007,0x0004003b,0x00000040,0x00000356,0x00000007,0x0004003d,0x0000003a, + 0x00000346,0x00000087,0x0003003e,0x00000345,0x00000346,0x0004003d,0x0000003a,0x00000348, + 0x00000087,0x0006016e,0x0000003a,0x00000349,0x00000110,0x00000348,0x00000151,0x0003003e, + 0x00000347,0x00000349,0x0004003d,0x0000003a,0x0000034b,0x00000087,0x0006016e,0x0000003a, + 0x0000034c,0x00000110,0x0000034b,0x00000116,0x0003003e,0x0000034a,0x0000034c,0x0004003d, + 0x0000003a,0x0000034e,0x00000087,0x0006016e,0x0000003a,0x0000034f,0x00000110,0x0000034e, + 0x0000010f,0x0003003e,0x0000034d,0x0000034f,0x0004003d,0x0000003a,0x00000351,0x00000345, + 0x0003003e,0x00000350,0x00000351,0x0004003d,0x0000003a,0x00000353,0x00000347,0x0003003e, + 0x00000352,0x00000353,0x0004003d,0x0000003a,0x00000355,0x0000034a,0x0003003e,0x00000354, + 0x00000355,0x0004003d,0x0000003a,0x00000357,0x0000034d,0x0003003e,0x00000356,0x00000357, + 0x00080039,0x0000003a,0x00000358,0x0000007c,0x00000350,0x00000352,0x00000354,0x00000356, + 0x000200fe,0x00000358,0x00010038,0x00050036,0x0000003a,0x00000090,0x00000000,0x0000008a, + 0x00030037,0x0000004c,0x0000008b,0x00030037,0x0000004c,0x0000008c,0x00030037,0x0000004c, + 0x0000008d,0x00030037,0x0000004c,0x0000008e,0x00030037,0x00000007,0x0000008f,0x000200f8, + 0x00000091,0x0004003b,0x00000040,0x0000035d,0x00000007,0x0004003b,0x0000002b,0x00000360, + 0x00000007,0x0004003b,0x00000007,0x00000361,0x00000007,0x0004003b,0x00000040,0x00000364, + 0x00000007,0x0004003b,0x0000002b,0x00000367,0x00000007,0x0004003b,0x00000007,0x00000368, + 0x00000007,0x0004003b,0x00000040,0x0000036b,0x00000007,0x0004003b,0x0000002b,0x0000036e, + 0x00000007,0x0004003b,0x00000007,0x0000036f,0x00000007,0x0004003b,0x00000040,0x00000372, + 0x00000007,0x0004003b,0x0000002b,0x00000375,0x00000007,0x0004003b,0x00000007,0x00000376, + 0x00000007,0x0004003b,0x00000040,0x00000379,0x00000007,0x0004003b,0x00000040,0x0000037b, + 0x00000007,0x0004003b,0x00000040,0x0000037d,0x00000007,0x0004003b,0x00000040,0x0000037f, + 0x00000007,0x0004003d,0x00000019,0x0000035e,0x0000008b,0x0004007c,0x0000001f,0x0000035f, + 0x0000035e,0x0003003e,0x00000360,0x0000035f,0x0004003d,0x00000006,0x00000362,0x0000008f, + 0x0003003e,0x00000361,0x00000362,0x00060039,0x0000003a,0x00000363,0x0000005a,0x00000360, + 0x00000361,0x0003003e,0x0000035d,0x00000363,0x0004003d,0x00000019,0x00000365,0x0000008c, + 0x0004007c,0x0000001f,0x00000366,0x00000365,0x0003003e,0x00000367,0x00000366,0x0004003d, + 0x00000006,0x00000369,0x0000008f,0x0003003e,0x00000368,0x00000369,0x00060039,0x0000003a, + 0x0000036a,0x0000005a,0x00000367,0x00000368,0x0003003e,0x00000364,0x0000036a,0x0004003d, + 0x00000019,0x0000036c,0x0000008d,0x0004007c,0x0000001f,0x0000036d,0x0000036c,0x0003003e, + 0x0000036e,0x0000036d,0x0004003d,0x00000006,0x00000370,0x0000008f,0x0003003e,0x0000036f, + 0x00000370,0x00060039,0x0000003a,0x00000371,0x0000005a,0x0000036e,0x0000036f,0x0003003e, + 0x0000036b,0x00000371,0x0004003d,0x00000019,0x00000373,0x0000008e,0x0004007c,0x0000001f, + 0x00000374,0x00000373,0x0003003e,0x00000375,0x00000374,0x0004003d,0x00000006,0x00000377, + 0x0000008f,0x0003003e,0x00000376,0x00000377,0x00060039,0x0000003a,0x00000378,0x0000005a, + 0x00000375,0x00000376,0x0003003e,0x00000372,0x00000378,0x0004003d,0x0000003a,0x0000037a, + 0x0000035d,0x0003003e,0x00000379,0x0000037a,0x0004003d,0x0000003a,0x0000037c,0x00000364, + 0x0003003e,0x0000037b,0x0000037c,0x0004003d,0x0000003a,0x0000037e,0x0000036b,0x0003003e, + 0x0000037d,0x0000037e,0x0004003d,0x0000003a,0x00000380,0x00000372,0x0003003e,0x0000037f, + 0x00000380,0x00080039,0x0000003a,0x00000381,0x0000007c,0x00000379,0x0000037b,0x0000037d, + 0x0000037f,0x000200fe,0x00000381,0x00010038,0x00050036,0x0000003a,0x00000095,0x00000000, + 0x00000092,0x00030037,0x0000004c,0x00000093,0x00030037,0x00000007,0x00000094,0x000200f8, + 0x00000096,0x0004003b,0x0000004c,0x00000390,0x00000007,0x0004003b,0x0000004c,0x00000391, + 0x00000007,0x0004003b,0x0000004c,0x00000392,0x00000007,0x0004003b,0x0000004c,0x00000393, + 0x00000007,0x0004003b,0x00000007,0x00000394,0x00000007,0x0004003d,0x00000019,0x00000384, + 0x00000093,0x00050080,0x00000019,0x00000386,0x00000384,0x00000385,0x0004003d,0x00000019, + 0x00000387,0x00000093,0x00050080,0x00000019,0x00000389,0x00000387,0x00000388,0x0004003d, + 0x00000019,0x0000038a,0x00000093,0x00050080,0x00000019,0x0000038c,0x0000038a,0x0000038b, + 0x0004003d,0x00000019,0x0000038d,0x00000093,0x00050080,0x00000019,0x0000038f,0x0000038d, + 0x0000038e,0x0003003e,0x00000390,0x00000386,0x0003003e,0x00000391,0x00000389,0x0003003e, + 0x00000392,0x0000038c,0x0003003e,0x00000393,0x0000038f,0x0004003d,0x00000006,0x00000395, + 0x00000094,0x0003003e,0x00000394,0x00000395,0x00090039,0x0000003a,0x00000396,0x00000090, + 0x00000390,0x00000391,0x00000392,0x00000393,0x00000394,0x000200fe,0x00000396,0x00010038, + 0x00050036,0x0000003a,0x0000009c,0x00000000,0x0000008a,0x00030037,0x0000004c,0x00000097, + 0x00030037,0x0000004c,0x00000098,0x00030037,0x0000004c,0x00000099,0x00030037,0x0000004c, + 0x0000009a,0x00030037,0x00000007,0x0000009b,0x000200f8,0x0000009d,0x0004003b,0x00000040, + 0x00000399,0x00000007,0x0004003b,0x0000002b,0x0000039c,0x00000007,0x0004003b,0x00000007, + 0x0000039d,0x00000007,0x0004003b,0x00000040,0x000003a0,0x00000007,0x0004003b,0x0000002b, + 0x000003a3,0x00000007,0x0004003b,0x00000007,0x000003a4,0x00000007,0x0004003b,0x00000040, + 0x000003a7,0x00000007,0x0004003b,0x0000002b,0x000003aa,0x00000007,0x0004003b,0x00000007, + 0x000003ab,0x00000007,0x0004003b,0x00000040,0x000003ae,0x00000007,0x0004003b,0x0000002b, + 0x000003b1,0x00000007,0x0004003b,0x00000007,0x000003b2,0x00000007,0x0004003b,0x00000040, + 0x000003b5,0x00000007,0x0004003b,0x00000040,0x000003b7,0x00000007,0x0004003b,0x00000040, + 0x000003b9,0x00000007,0x0004003b,0x00000040,0x000003bb,0x00000007,0x0004003d,0x00000019, + 0x0000039a,0x00000097,0x0004007c,0x0000001f,0x0000039b,0x0000039a,0x0003003e,0x0000039c, + 0x0000039b,0x0004003d,0x00000006,0x0000039e,0x0000009b,0x0003003e,0x0000039d,0x0000039e, + 0x00060039,0x0000003a,0x0000039f,0x00000056,0x0000039c,0x0000039d,0x0003003e,0x00000399, + 0x0000039f,0x0004003d,0x00000019,0x000003a1,0x00000098,0x0004007c,0x0000001f,0x000003a2, + 0x000003a1,0x0003003e,0x000003a3,0x000003a2,0x0004003d,0x00000006,0x000003a5,0x0000009b, + 0x0003003e,0x000003a4,0x000003a5,0x00060039,0x0000003a,0x000003a6,0x00000056,0x000003a3, + 0x000003a4,0x0003003e,0x000003a0,0x000003a6,0x0004003d,0x00000019,0x000003a8,0x00000099, + 0x0004007c,0x0000001f,0x000003a9,0x000003a8,0x0003003e,0x000003aa,0x000003a9,0x0004003d, + 0x00000006,0x000003ac,0x0000009b,0x0003003e,0x000003ab,0x000003ac,0x00060039,0x0000003a, + 0x000003ad,0x00000056,0x000003aa,0x000003ab,0x0003003e,0x000003a7,0x000003ad,0x0004003d, + 0x00000019,0x000003af,0x0000009a,0x0004007c,0x0000001f,0x000003b0,0x000003af,0x0003003e, + 0x000003b1,0x000003b0,0x0004003d,0x00000006,0x000003b3,0x0000009b,0x0003003e,0x000003b2, + 0x000003b3,0x00060039,0x0000003a,0x000003b4,0x00000056,0x000003b1,0x000003b2,0x0003003e, + 0x000003ae,0x000003b4,0x0004003d,0x0000003a,0x000003b6,0x00000399,0x0003003e,0x000003b5, + 0x000003b6,0x0004003d,0x0000003a,0x000003b8,0x000003a0,0x0003003e,0x000003b7,0x000003b8, + 0x0004003d,0x0000003a,0x000003ba,0x000003a7,0x0003003e,0x000003b9,0x000003ba,0x0004003d, + 0x0000003a,0x000003bc,0x000003ae,0x0003003e,0x000003bb,0x000003bc,0x00080039,0x0000003a, + 0x000003bd,0x0000007c,0x000003b5,0x000003b7,0x000003b9,0x000003bb,0x000200fe,0x000003bd, + 0x00010038,0x00050036,0x0000003a,0x000000a0,0x00000000,0x00000092,0x00030037,0x0000004c, + 0x0000009e,0x00030037,0x00000007,0x0000009f,0x000200f8,0x000000a1,0x0004003b,0x0000004c, + 0x000003c8,0x00000007,0x0004003b,0x0000004c,0x000003c9,0x00000007,0x0004003b,0x0000004c, + 0x000003ca,0x00000007,0x0004003b,0x0000004c,0x000003cb,0x00000007,0x0004003b,0x00000007, + 0x000003cc,0x00000007,0x0004003d,0x00000019,0x000003c0,0x0000009e,0x00050080,0x00000019, + 0x000003c1,0x000003c0,0x00000385,0x0004003d,0x00000019,0x000003c2,0x0000009e,0x00050080, + 0x00000019,0x000003c3,0x000003c2,0x00000388,0x0004003d,0x00000019,0x000003c4,0x0000009e, + 0x00050080,0x00000019,0x000003c5,0x000003c4,0x0000038b,0x0004003d,0x00000019,0x000003c6, + 0x0000009e,0x00050080,0x00000019,0x000003c7,0x000003c6,0x0000038e,0x0003003e,0x000003c8, + 0x000003c1,0x0003003e,0x000003c9,0x000003c3,0x0003003e,0x000003ca,0x000003c5,0x0003003e, + 0x000003cb,0x000003c7,0x0004003d,0x00000006,0x000003cd,0x0000009f,0x0003003e,0x000003cc, + 0x000003cd,0x00090039,0x0000003a,0x000003ce,0x0000009c,0x000003c8,0x000003c9,0x000003ca, + 0x000003cb,0x000003cc,0x000200fe,0x000003ce,0x00010038,0x00050036,0x00000002,0x000000a9, + 0x00000000,0x000000a2,0x00030037,0x00000007,0x000000a3,0x00030037,0x00000007,0x000000a4, + 0x00030037,0x0000004c,0x000000a5,0x00030037,0x00000007,0x000000a6,0x00030037,0x00000007, + 0x000000a7,0x00030037,0x00000007,0x000000a8,0x000200f8,0x000000aa,0x0004003b,0x0000002b, + 0x000003d1,0x00000007,0x0004003b,0x0000002b,0x000003df,0x00000007,0x0004003b,0x000003ec, + 0x000003ed,0x00000007,0x0004003b,0x0000004c,0x000003f0,0x00000007,0x0004003b,0x00000007, + 0x000003f1,0x00000007,0x0004003b,0x0000002b,0x000003f5,0x00000007,0x0004003b,0x00000040, + 0x000003f7,0x00000007,0x0004003b,0x00000007,0x000003fa,0x00000007,0x0004003b,0x00000007, + 0x000003fb,0x00000007,0x0004003b,0x0000004c,0x00000418,0x00000007,0x0004003b,0x00000007, + 0x00000419,0x00000007,0x0004003b,0x0000002b,0x0000041d,0x00000007,0x0004003b,0x00000040, + 0x0000041f,0x00000007,0x0004003b,0x00000007,0x00000422,0x00000007,0x0004003b,0x00000007, + 0x00000423,0x00000007,0x0004003b,0x0000004c,0x00000440,0x00000007,0x0004003b,0x00000007, + 0x00000441,0x00000007,0x0004003b,0x0000002b,0x00000445,0x00000007,0x0004003b,0x00000040, + 0x00000447,0x00000007,0x0004003b,0x00000007,0x0000044a,0x00000007,0x0004003b,0x00000007, + 0x0000044b,0x00000007,0x0004003b,0x0000004c,0x0000046a,0x00000007,0x0004003b,0x00000007, + 0x0000046b,0x00000007,0x0004003b,0x0000002b,0x0000046f,0x00000007,0x0004003b,0x00000040, + 0x00000471,0x00000007,0x0004003b,0x00000007,0x00000474,0x00000007,0x0004003b,0x00000007, + 0x00000475,0x00000007,0x0004003b,0x00000040,0x0000047d,0x00000007,0x0004003b,0x00000040, + 0x00000482,0x00000007,0x0004003b,0x00000040,0x00000487,0x00000007,0x0004003b,0x00000040, + 0x0000048c,0x00000007,0x0004003b,0x0000002b,0x000004a2,0x00000007,0x0004003b,0x00000040, + 0x000004a3,0x00000007,0x0004003b,0x00000007,0x000004a6,0x00000007,0x0004003b,0x00000007, + 0x000004a7,0x00000007,0x0004003b,0x00000007,0x000004ae,0x00000007,0x0004003b,0x00000007, + 0x000004af,0x00000007,0x0004003b,0x00000040,0x000004b0,0x00000007,0x0004003b,0x0000002b, + 0x000004c1,0x00000007,0x0004003b,0x00000040,0x000004c2,0x00000007,0x0004003b,0x00000007, + 0x000004c5,0x00000007,0x0004003b,0x00000007,0x000004c6,0x00000007,0x0004003b,0x00000007, + 0x000004ce,0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b,0x00000040, + 0x000004d0,0x00000007,0x0004003b,0x0000002b,0x000004e1,0x00000007,0x0004003b,0x00000040, + 0x000004e2,0x00000007,0x0004003b,0x00000007,0x000004e5,0x00000007,0x0004003b,0x00000007, + 0x000004e6,0x00000007,0x0004003b,0x00000007,0x000004ee,0x00000007,0x0004003b,0x00000007, + 0x000004ef,0x00000007,0x0004003b,0x00000040,0x000004f0,0x00000007,0x0004003b,0x0000002b, + 0x00000502,0x00000007,0x0004003b,0x00000040,0x00000503,0x00000007,0x0004003b,0x00000007, + 0x00000506,0x00000007,0x0004003b,0x00000007,0x00000507,0x00000007,0x0004003b,0x00000007, + 0x00000510,0x00000007,0x0004003b,0x00000007,0x00000511,0x00000007,0x0004003b,0x00000040, + 0x00000512,0x00000007,0x0004003d,0x00000019,0x000003d2,0x000000a5,0x00050050,0x00000019, + 0x000003d4,0x000003d3,0x000003d3,0x00050084,0x00000019,0x000003d5,0x000003d2,0x000003d4, + 0x0004007c,0x0000001f,0x000003d6,0x000003d5,0x0004003d,0x00000006,0x000003d7,0x000000a3, + 0x00050084,0x00000006,0x000003d8,0x000003d7,0x0000010f,0x0004007c,0x0000001e,0x000003d9, + 0x000003d8,0x0004003d,0x00000006,0x000003da,0x000000a4,0x00050084,0x00000006,0x000003db, + 0x000003da,0x0000010f,0x0004007c,0x0000001e,0x000003dc,0x000003db,0x00050050,0x0000001f, + 0x000003dd,0x000003d9,0x000003dc,0x00050080,0x0000001f,0x000003de,0x000003d6,0x000003dd, + 0x0003003e,0x000003d1,0x000003de,0x0004003d,0x00000019,0x000003e0,0x000000a5,0x00050050, + 0x00000019,0x000003e2,0x000003e1,0x000003e1,0x00050084,0x00000019,0x000003e3,0x000003e0, + 0x000003e2,0x0004007c,0x0000001f,0x000003e4,0x000003e3,0x0004003d,0x00000006,0x000003e5, + 0x000000a3,0x0004007c,0x0000001e,0x000003e6,0x000003e5,0x0004003d,0x00000006,0x000003e7, + 0x000000a4,0x0004007c,0x0000001e,0x000003e8,0x000003e7,0x00050050,0x0000001f,0x000003e9, + 0x000003e6,0x000003e8,0x00050080,0x0000001f,0x000003ea,0x000003e4,0x000003e9,0x0003003e, + 0x000003df,0x000003ea,0x0004003d,0x0000001f,0x000003ee,0x000003d1,0x0004007c,0x00000019, + 0x000003ef,0x000003ee,0x0003003e,0x000003f0,0x000003ef,0x0004003d,0x00000006,0x000003f2, + 0x000000a8,0x0003003e,0x000003f1,0x000003f2,0x00060039,0x0000003a,0x000003f3,0x000000a0, + 0x000003f0,0x000003f1,0x00050041,0x00000040,0x000003f4,0x000003ed,0x00000105,0x0003003e, + 0x000003f4,0x000003f3,0x0004003d,0x0000001f,0x000003f6,0x000003df,0x0003003e,0x000003f5, + 0x000003f6,0x00050041,0x00000040,0x000003f8,0x000003ed,0x00000105,0x0004003d,0x0000003a, + 0x000003f9,0x000003f8,0x0003003e,0x000003f7,0x000003f9,0x0003003e,0x000003fa,0x00000151, + 0x0004003d,0x00000006,0x000003fc,0x000000a8,0x0003003e,0x000003fb,0x000003fc,0x00080039, + 0x00000002,0x000003fd,0x00000061,0x000003f5,0x000003f7,0x000003fa,0x000003fb,0x0004003d, + 0x00000019,0x000003fe,0x000000a5,0x00050050,0x00000019,0x000003ff,0x000003d3,0x000003d3, + 0x00050084,0x00000019,0x00000400,0x000003fe,0x000003ff,0x0004007c,0x0000001f,0x00000401, + 0x00000400,0x0004003d,0x00000006,0x00000402,0x000000a3,0x00050084,0x00000006,0x00000403, + 0x00000402,0x0000010f,0x00050080,0x00000006,0x00000404,0x00000403,0x000003e1,0x0004007c, + 0x0000001e,0x00000405,0x00000404,0x0004003d,0x00000006,0x00000406,0x000000a4,0x00050084, + 0x00000006,0x00000407,0x00000406,0x0000010f,0x0004007c,0x0000001e,0x00000408,0x00000407, + 0x00050050,0x0000001f,0x00000409,0x00000405,0x00000408,0x00050080,0x0000001f,0x0000040a, + 0x00000401,0x00000409,0x0003003e,0x000003d1,0x0000040a,0x0004003d,0x00000019,0x0000040b, + 0x000000a5,0x00050050,0x00000019,0x0000040c,0x000003e1,0x000003e1,0x00050084,0x00000019, + 0x0000040d,0x0000040b,0x0000040c,0x0004007c,0x0000001f,0x0000040e,0x0000040d,0x0004003d, + 0x00000006,0x0000040f,0x000000a3,0x00050080,0x00000006,0x00000410,0x0000040f,0x0000025b, + 0x0004007c,0x0000001e,0x00000411,0x00000410,0x0004003d,0x00000006,0x00000412,0x000000a4, + 0x0004007c,0x0000001e,0x00000413,0x00000412,0x00050050,0x0000001f,0x00000414,0x00000411, + 0x00000413,0x00050080,0x0000001f,0x00000415,0x0000040e,0x00000414,0x0003003e,0x000003df, + 0x00000415,0x0004003d,0x0000001f,0x00000416,0x000003d1,0x0004007c,0x00000019,0x00000417, + 0x00000416,0x0003003e,0x00000418,0x00000417,0x0004003d,0x00000006,0x0000041a,0x000000a8, + 0x0003003e,0x00000419,0x0000041a,0x00060039,0x0000003a,0x0000041b,0x000000a0,0x00000418, + 0x00000419,0x00050041,0x00000040,0x0000041c,0x000003ed,0x00000131,0x0003003e,0x0000041c, + 0x0000041b,0x0004003d,0x0000001f,0x0000041e,0x000003df,0x0003003e,0x0000041d,0x0000041e, + 0x00050041,0x00000040,0x00000420,0x000003ed,0x00000131,0x0004003d,0x0000003a,0x00000421, + 0x00000420,0x0003003e,0x0000041f,0x00000421,0x0003003e,0x00000422,0x00000151,0x0004003d, + 0x00000006,0x00000424,0x000000a8,0x0003003e,0x00000423,0x00000424,0x00080039,0x00000002, + 0x00000425,0x00000061,0x0000041d,0x0000041f,0x00000422,0x00000423,0x0004003d,0x00000019, + 0x00000426,0x000000a5,0x00050050,0x00000019,0x00000427,0x000003d3,0x000003d3,0x00050084, + 0x00000019,0x00000428,0x00000426,0x00000427,0x0004007c,0x0000001f,0x00000429,0x00000428, + 0x0004003d,0x00000006,0x0000042a,0x000000a3,0x00050084,0x00000006,0x0000042b,0x0000042a, + 0x0000010f,0x0004007c,0x0000001e,0x0000042c,0x0000042b,0x0004003d,0x00000006,0x0000042d, + 0x000000a4,0x00050084,0x00000006,0x0000042e,0x0000042d,0x0000010f,0x00050080,0x00000006, + 0x0000042f,0x0000042e,0x000003e1,0x0004007c,0x0000001e,0x00000430,0x0000042f,0x00050050, + 0x0000001f,0x00000431,0x0000042c,0x00000430,0x00050080,0x0000001f,0x00000432,0x00000429, + 0x00000431,0x0003003e,0x000003d1,0x00000432,0x0004003d,0x00000019,0x00000433,0x000000a5, + 0x00050050,0x00000019,0x00000434,0x000003e1,0x000003e1,0x00050084,0x00000019,0x00000435, + 0x00000433,0x00000434,0x0004007c,0x0000001f,0x00000436,0x00000435,0x0004003d,0x00000006, + 0x00000437,0x000000a3,0x0004007c,0x0000001e,0x00000438,0x00000437,0x0004003d,0x00000006, + 0x00000439,0x000000a4,0x00050080,0x00000006,0x0000043a,0x00000439,0x0000025b,0x0004007c, + 0x0000001e,0x0000043b,0x0000043a,0x00050050,0x0000001f,0x0000043c,0x00000438,0x0000043b, + 0x00050080,0x0000001f,0x0000043d,0x00000436,0x0000043c,0x0003003e,0x000003df,0x0000043d, + 0x0004003d,0x0000001f,0x0000043e,0x000003d1,0x0004007c,0x00000019,0x0000043f,0x0000043e, + 0x0003003e,0x00000440,0x0000043f,0x0004003d,0x00000006,0x00000442,0x000000a8,0x0003003e, + 0x00000441,0x00000442,0x00060039,0x0000003a,0x00000443,0x000000a0,0x00000440,0x00000441, + 0x00050041,0x00000040,0x00000444,0x000003ed,0x00000143,0x0003003e,0x00000444,0x00000443, + 0x0004003d,0x0000001f,0x00000446,0x000003df,0x0003003e,0x00000445,0x00000446,0x00050041, + 0x00000040,0x00000448,0x000003ed,0x00000143,0x0004003d,0x0000003a,0x00000449,0x00000448, + 0x0003003e,0x00000447,0x00000449,0x0003003e,0x0000044a,0x00000151,0x0004003d,0x00000006, + 0x0000044c,0x000000a8,0x0003003e,0x0000044b,0x0000044c,0x00080039,0x00000002,0x0000044d, + 0x00000061,0x00000445,0x00000447,0x0000044a,0x0000044b,0x0004003d,0x00000019,0x0000044e, + 0x000000a5,0x00050050,0x00000019,0x0000044f,0x000003d3,0x000003d3,0x00050084,0x00000019, + 0x00000450,0x0000044e,0x0000044f,0x0004007c,0x0000001f,0x00000451,0x00000450,0x0004003d, + 0x00000006,0x00000452,0x000000a3,0x00050084,0x00000006,0x00000453,0x00000452,0x0000010f, + 0x00050080,0x00000006,0x00000454,0x00000453,0x000003e1,0x0004007c,0x0000001e,0x00000455, + 0x00000454,0x0004003d,0x00000006,0x00000456,0x000000a4,0x00050084,0x00000006,0x00000457, + 0x00000456,0x0000010f,0x00050080,0x00000006,0x00000458,0x00000457,0x000003e1,0x0004007c, + 0x0000001e,0x00000459,0x00000458,0x00050050,0x0000001f,0x0000045a,0x00000455,0x00000459, + 0x00050080,0x0000001f,0x0000045b,0x00000451,0x0000045a,0x0003003e,0x000003d1,0x0000045b, + 0x0004003d,0x00000019,0x0000045c,0x000000a5,0x00050050,0x00000019,0x0000045d,0x000003e1, + 0x000003e1,0x00050084,0x00000019,0x0000045e,0x0000045c,0x0000045d,0x0004007c,0x0000001f, + 0x0000045f,0x0000045e,0x0004003d,0x00000006,0x00000460,0x000000a3,0x00050080,0x00000006, + 0x00000461,0x00000460,0x0000025b,0x0004007c,0x0000001e,0x00000462,0x00000461,0x0004003d, + 0x00000006,0x00000463,0x000000a4,0x00050080,0x00000006,0x00000464,0x00000463,0x0000025b, + 0x0004007c,0x0000001e,0x00000465,0x00000464,0x00050050,0x0000001f,0x00000466,0x00000462, + 0x00000465,0x00050080,0x0000001f,0x00000467,0x0000045f,0x00000466,0x0003003e,0x000003df, + 0x00000467,0x0004003d,0x0000001f,0x00000468,0x000003d1,0x0004007c,0x00000019,0x00000469, + 0x00000468,0x0003003e,0x0000046a,0x00000469,0x0004003d,0x00000006,0x0000046c,0x000000a8, + 0x0003003e,0x0000046b,0x0000046c,0x00060039,0x0000003a,0x0000046d,0x000000a0,0x0000046a, + 0x0000046b,0x00050041,0x00000040,0x0000046e,0x000003ed,0x0000026a,0x0003003e,0x0000046e, + 0x0000046d,0x0004003d,0x0000001f,0x00000470,0x000003df,0x0003003e,0x0000046f,0x00000470, + 0x00050041,0x00000040,0x00000472,0x000003ed,0x0000026a,0x0004003d,0x0000003a,0x00000473, + 0x00000472,0x0003003e,0x00000471,0x00000473,0x0003003e,0x00000474,0x00000151,0x0004003d, + 0x00000006,0x00000476,0x000000a8,0x0003003e,0x00000475,0x00000476,0x00080039,0x00000002, + 0x00000477,0x00000061,0x0000046f,0x00000471,0x00000474,0x00000475,0x0004003d,0x00000006, + 0x00000478,0x000000a7,0x000500b2,0x00000047,0x00000479,0x00000478,0x00000116,0x000300f7, + 0x0000047b,0x00000000,0x000400fa,0x00000479,0x0000047a,0x0000047b,0x000200f8,0x0000047a, + 0x000100fd,0x000200f8,0x0000047b,0x00050041,0x00000040,0x0000047e,0x000003ed,0x00000105, + 0x0004003d,0x0000003a,0x0000047f,0x0000047e,0x0003003e,0x0000047d,0x0000047f,0x00050039, + 0x0000003a,0x00000480,0x00000088,0x0000047d,0x00050041,0x00000040,0x00000481,0x000003ed, + 0x00000105,0x0003003e,0x00000481,0x00000480,0x00050041,0x00000040,0x00000483,0x000003ed, + 0x00000131,0x0004003d,0x0000003a,0x00000484,0x00000483,0x0003003e,0x00000482,0x00000484, + 0x00050039,0x0000003a,0x00000485,0x00000088,0x00000482,0x00050041,0x00000040,0x00000486, + 0x000003ed,0x00000131,0x0003003e,0x00000486,0x00000485,0x00050041,0x00000040,0x00000488, + 0x000003ed,0x00000143,0x0004003d,0x0000003a,0x00000489,0x00000488,0x0003003e,0x00000487, + 0x00000489,0x00050039,0x0000003a,0x0000048a,0x00000088,0x00000487,0x00050041,0x00000040, + 0x0000048b,0x000003ed,0x00000143,0x0003003e,0x0000048b,0x0000048a,0x00050041,0x00000040, + 0x0000048d,0x000003ed,0x0000026a,0x0004003d,0x0000003a,0x0000048e,0x0000048d,0x0003003e, + 0x0000048c,0x0000048e,0x00050039,0x0000003a,0x0000048f,0x00000088,0x0000048c,0x00050041, + 0x00000040,0x00000490,0x000003ed,0x0000026a,0x0003003e,0x00000490,0x0000048f,0x0004003d, + 0x00000006,0x00000491,0x000000a6,0x00050089,0x00000006,0x00000492,0x00000491,0x00000190, + 0x000500aa,0x00000047,0x00000493,0x00000492,0x00000151,0x000300f7,0x00000495,0x00000000, + 0x000400fa,0x00000493,0x00000494,0x00000495,0x000200f8,0x00000494,0x0004003d,0x00000019, + 0x00000496,0x000000a5,0x00050050,0x00000019,0x00000497,0x0000025b,0x0000025b,0x00050084, + 0x00000019,0x00000498,0x00000496,0x00000497,0x0004007c,0x0000001f,0x00000499,0x00000498, + 0x0004003d,0x00000006,0x0000049a,0x000000a3,0x00050086,0x00000006,0x0000049b,0x0000049a, + 0x0000010f,0x0004007c,0x0000001e,0x0000049c,0x0000049b,0x0004003d,0x00000006,0x0000049d, + 0x000000a4,0x00050086,0x00000006,0x0000049e,0x0000049d,0x0000010f,0x0004007c,0x0000001e, + 0x0000049f,0x0000049e,0x00050050,0x0000001f,0x000004a0,0x0000049c,0x0000049f,0x00050080, + 0x0000001f,0x000004a1,0x00000499,0x000004a0,0x0003003e,0x000004a2,0x000004a1,0x00050041, + 0x00000040,0x000004a4,0x000003ed,0x00000105,0x0004003d,0x0000003a,0x000004a5,0x000004a4, + 0x0003003e,0x000004a3,0x000004a5,0x0003003e,0x000004a6,0x00000116,0x0004003d,0x00000006, + 0x000004a8,0x000000a8,0x0003003e,0x000004a7,0x000004a8,0x00080039,0x00000002,0x000004a9, + 0x00000061,0x000004a2,0x000004a3,0x000004a6,0x000004a7,0x0004003d,0x00000006,0x000004aa, + 0x000000a3,0x00050086,0x00000006,0x000004ab,0x000004aa,0x0000010f,0x0004003d,0x00000006, + 0x000004ac,0x000000a4,0x00050086,0x00000006,0x000004ad,0x000004ac,0x0000010f,0x0003003e, + 0x000004ae,0x000004ab,0x0003003e,0x000004af,0x000004ad,0x00050041,0x00000040,0x000004b1, + 0x000003ed,0x00000105,0x0004003d,0x0000003a,0x000004b2,0x000004b1,0x0003003e,0x000004b0, + 0x000004b2,0x00070039,0x00000002,0x000004b3,0x00000075,0x000004ae,0x000004af,0x000004b0, + 0x0004003d,0x00000019,0x000004b4,0x000000a5,0x00050050,0x00000019,0x000004b5,0x0000025b, + 0x0000025b,0x00050084,0x00000019,0x000004b6,0x000004b4,0x000004b5,0x0004007c,0x0000001f, + 0x000004b7,0x000004b6,0x0004003d,0x00000006,0x000004b8,0x000000a3,0x00050086,0x00000006, + 0x000004b9,0x000004b8,0x0000010f,0x00050080,0x00000006,0x000004ba,0x000004b9,0x000001b8, + 0x0004007c,0x0000001e,0x000004bb,0x000004ba,0x0004003d,0x00000006,0x000004bc,0x000000a4, + 0x00050086,0x00000006,0x000004bd,0x000004bc,0x0000010f,0x0004007c,0x0000001e,0x000004be, + 0x000004bd,0x00050050,0x0000001f,0x000004bf,0x000004bb,0x000004be,0x00050080,0x0000001f, + 0x000004c0,0x000004b7,0x000004bf,0x0003003e,0x000004c1,0x000004c0,0x00050041,0x00000040, + 0x000004c3,0x000003ed,0x00000131,0x0004003d,0x0000003a,0x000004c4,0x000004c3,0x0003003e, + 0x000004c2,0x000004c4,0x0003003e,0x000004c5,0x00000116,0x0004003d,0x00000006,0x000004c7, + 0x000000a8,0x0003003e,0x000004c6,0x000004c7,0x00080039,0x00000002,0x000004c8,0x00000061, + 0x000004c1,0x000004c2,0x000004c5,0x000004c6,0x0004003d,0x00000006,0x000004c9,0x000000a3, + 0x00050086,0x00000006,0x000004ca,0x000004c9,0x0000010f,0x00050080,0x00000006,0x000004cb, + 0x000004ca,0x000001b8,0x0004003d,0x00000006,0x000004cc,0x000000a4,0x00050086,0x00000006, + 0x000004cd,0x000004cc,0x0000010f,0x0003003e,0x000004ce,0x000004cb,0x0003003e,0x000004cf, + 0x000004cd,0x00050041,0x00000040,0x000004d1,0x000003ed,0x00000131,0x0004003d,0x0000003a, + 0x000004d2,0x000004d1,0x0003003e,0x000004d0,0x000004d2,0x00070039,0x00000002,0x000004d3, + 0x00000075,0x000004ce,0x000004cf,0x000004d0,0x0004003d,0x00000019,0x000004d4,0x000000a5, + 0x00050050,0x00000019,0x000004d5,0x0000025b,0x0000025b,0x00050084,0x00000019,0x000004d6, + 0x000004d4,0x000004d5,0x0004007c,0x0000001f,0x000004d7,0x000004d6,0x0004003d,0x00000006, + 0x000004d8,0x000000a3,0x00050086,0x00000006,0x000004d9,0x000004d8,0x0000010f,0x0004007c, + 0x0000001e,0x000004da,0x000004d9,0x0004003d,0x00000006,0x000004db,0x000000a4,0x00050086, + 0x00000006,0x000004dc,0x000004db,0x0000010f,0x00050080,0x00000006,0x000004dd,0x000004dc, + 0x000001b8,0x0004007c,0x0000001e,0x000004de,0x000004dd,0x00050050,0x0000001f,0x000004df, + 0x000004da,0x000004de,0x00050080,0x0000001f,0x000004e0,0x000004d7,0x000004df,0x0003003e, + 0x000004e1,0x000004e0,0x00050041,0x00000040,0x000004e3,0x000003ed,0x00000143,0x0004003d, + 0x0000003a,0x000004e4,0x000004e3,0x0003003e,0x000004e2,0x000004e4,0x0003003e,0x000004e5, + 0x00000116,0x0004003d,0x00000006,0x000004e7,0x000000a8,0x0003003e,0x000004e6,0x000004e7, + 0x00080039,0x00000002,0x000004e8,0x00000061,0x000004e1,0x000004e2,0x000004e5,0x000004e6, + 0x0004003d,0x00000006,0x000004e9,0x000000a3,0x00050086,0x00000006,0x000004ea,0x000004e9, + 0x0000010f,0x0004003d,0x00000006,0x000004eb,0x000000a4,0x00050086,0x00000006,0x000004ec, + 0x000004eb,0x0000010f,0x00050080,0x00000006,0x000004ed,0x000004ec,0x000001b8,0x0003003e, + 0x000004ee,0x000004ea,0x0003003e,0x000004ef,0x000004ed,0x00050041,0x00000040,0x000004f1, + 0x000003ed,0x00000143,0x0004003d,0x0000003a,0x000004f2,0x000004f1,0x0003003e,0x000004f0, + 0x000004f2,0x00070039,0x00000002,0x000004f3,0x00000075,0x000004ee,0x000004ef,0x000004f0, + 0x0004003d,0x00000019,0x000004f4,0x000000a5,0x00050050,0x00000019,0x000004f5,0x0000025b, + 0x0000025b,0x00050084,0x00000019,0x000004f6,0x000004f4,0x000004f5,0x0004007c,0x0000001f, + 0x000004f7,0x000004f6,0x0004003d,0x00000006,0x000004f8,0x000000a3,0x00050086,0x00000006, + 0x000004f9,0x000004f8,0x0000010f,0x00050080,0x00000006,0x000004fa,0x000004f9,0x000001b8, + 0x0004007c,0x0000001e,0x000004fb,0x000004fa,0x0004003d,0x00000006,0x000004fc,0x000000a4, + 0x00050086,0x00000006,0x000004fd,0x000004fc,0x0000010f,0x00050080,0x00000006,0x000004fe, + 0x000004fd,0x000001b8,0x0004007c,0x0000001e,0x000004ff,0x000004fe,0x00050050,0x0000001f, + 0x00000500,0x000004fb,0x000004ff,0x00050080,0x0000001f,0x00000501,0x000004f7,0x00000500, + 0x0003003e,0x00000502,0x00000501,0x00050041,0x00000040,0x00000504,0x000003ed,0x0000026a, + 0x0004003d,0x0000003a,0x00000505,0x00000504,0x0003003e,0x00000503,0x00000505,0x0003003e, + 0x00000506,0x00000116,0x0004003d,0x00000006,0x00000508,0x000000a8,0x0003003e,0x00000507, + 0x00000508,0x00080039,0x00000002,0x00000509,0x00000061,0x00000502,0x00000503,0x00000506, + 0x00000507,0x0004003d,0x00000006,0x0000050a,0x000000a3,0x00050086,0x00000006,0x0000050b, + 0x0000050a,0x0000010f,0x00050080,0x00000006,0x0000050c,0x0000050b,0x000001b8,0x0004003d, + 0x00000006,0x0000050d,0x000000a4,0x00050086,0x00000006,0x0000050e,0x0000050d,0x0000010f, + 0x00050080,0x00000006,0x0000050f,0x0000050e,0x000001b8,0x0003003e,0x00000510,0x0000050c, + 0x0003003e,0x00000511,0x0000050f,0x00050041,0x00000040,0x00000513,0x000003ed,0x0000026a, + 0x0004003d,0x0000003a,0x00000514,0x00000513,0x0003003e,0x00000512,0x00000514,0x00070039, + 0x00000002,0x00000515,0x00000075,0x00000510,0x00000511,0x00000512,0x000200f9,0x00000495, + 0x000200f8,0x00000495,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b1,0x00000000, + 0x000000a2,0x00030037,0x00000007,0x000000ab,0x00030037,0x00000007,0x000000ac,0x00030037, + 0x0000004c,0x000000ad,0x00030037,0x00000007,0x000000ae,0x00030037,0x00000007,0x000000af, + 0x00030037,0x00000007,0x000000b0,0x000200f8,0x000000b2,0x0004003b,0x00000007,0x00000516, + 0x00000007,0x0004003b,0x00000007,0x00000518,0x00000007,0x0004003b,0x0000004c,0x0000051a, + 0x00000007,0x0004003b,0x00000007,0x0000051c,0x00000007,0x0004003b,0x00000007,0x0000051e, + 0x00000007,0x0004003b,0x00000007,0x00000520,0x00000007,0x0004003d,0x00000006,0x00000517, + 0x000000ab,0x0003003e,0x00000516,0x00000517,0x0004003d,0x00000006,0x00000519,0x000000ac, + 0x0003003e,0x00000518,0x00000519,0x0004003d,0x00000019,0x0000051b,0x000000ad,0x0003003e, + 0x0000051a,0x0000051b,0x0004003d,0x00000006,0x0000051d,0x000000ae,0x0003003e,0x0000051c, + 0x0000051d,0x0004003d,0x00000006,0x0000051f,0x000000af,0x0003003e,0x0000051e,0x0000051f, + 0x0004003d,0x00000006,0x00000521,0x000000b0,0x0003003e,0x00000520,0x00000521,0x000a0039, + 0x00000002,0x00000522,0x000000a9,0x00000516,0x00000518,0x0000051a,0x0000051c,0x0000051e, + 0x00000520,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b9,0x00000000,0x000000a2, + 0x00030037,0x00000007,0x000000b3,0x00030037,0x00000007,0x000000b4,0x00030037,0x0000004c, + 0x000000b5,0x00030037,0x00000007,0x000000b6,0x00030037,0x00000007,0x000000b7,0x00030037, + 0x00000007,0x000000b8,0x000200f8,0x000000ba,0x0004003b,0x00000040,0x00000523,0x00000007, + 0x0004003b,0x00000007,0x00000524,0x00000007,0x0004003b,0x00000007,0x00000526,0x00000007, + 0x0004003b,0x00000040,0x00000529,0x00000007,0x0004003b,0x0000002b,0x0000053d,0x00000007, + 0x0004003b,0x00000040,0x0000053e,0x00000007,0x0004003b,0x00000007,0x00000540,0x00000007, + 0x0004003b,0x00000007,0x00000542,0x00000007,0x0004003b,0x00000007,0x0000054a,0x00000007, + 0x0004003b,0x00000007,0x0000054b,0x00000007,0x0004003b,0x00000040,0x0000054d,0x00000007, + 0x0004003d,0x00000006,0x00000525,0x000000b3,0x0003003e,0x00000524,0x00000525,0x0004003d, + 0x00000006,0x00000527,0x000000b4,0x0003003e,0x00000526,0x00000527,0x00060039,0x0000003a, + 0x00000528,0x0000006f,0x00000524,0x00000526,0x0003003e,0x00000523,0x00000528,0x0004003d, + 0x0000003a,0x0000052a,0x00000523,0x0003003e,0x00000529,0x0000052a,0x00050039,0x0000003a, + 0x0000052b,0x00000088,0x00000529,0x0003003e,0x00000523,0x0000052b,0x0004003d,0x00000006, + 0x0000052c,0x000000b6,0x00050089,0x00000006,0x0000052d,0x0000052c,0x00000190,0x000500aa, + 0x00000047,0x0000052e,0x0000052d,0x00000151,0x000300f7,0x00000530,0x00000000,0x000400fa, + 0x0000052e,0x0000052f,0x00000530,0x000200f8,0x0000052f,0x0004003d,0x00000019,0x00000531, + 0x000000b5,0x00050050,0x00000019,0x00000532,0x000001b8,0x000001b8,0x00050084,0x00000019, + 0x00000533,0x00000531,0x00000532,0x0004007c,0x0000001f,0x00000534,0x00000533,0x0004003d, + 0x00000006,0x00000535,0x000000b3,0x00050086,0x00000006,0x00000536,0x00000535,0x0000010f, + 0x0004007c,0x0000001e,0x00000537,0x00000536,0x0004003d,0x00000006,0x00000538,0x000000b4, + 0x00050086,0x00000006,0x00000539,0x00000538,0x0000010f,0x0004007c,0x0000001e,0x0000053a, + 0x00000539,0x00050050,0x0000001f,0x0000053b,0x00000537,0x0000053a,0x00050080,0x0000001f, + 0x0000053c,0x00000534,0x0000053b,0x0003003e,0x0000053d,0x0000053c,0x0004003d,0x0000003a, + 0x0000053f,0x00000523,0x0003003e,0x0000053e,0x0000053f,0x0004003d,0x00000006,0x00000541, + 0x000000b7,0x0003003e,0x00000540,0x00000541,0x0004003d,0x00000006,0x00000543,0x000000b8, + 0x0003003e,0x00000542,0x00000543,0x00080039,0x00000002,0x00000544,0x00000061,0x0000053d, + 0x0000053e,0x00000540,0x00000542,0x0004003d,0x00000006,0x00000545,0x000000b3,0x0004003d, + 0x00000006,0x00000546,0x000000b4,0x00050086,0x00000006,0x00000547,0x00000546,0x0000010f, + 0x00050089,0x00000006,0x00000548,0x00000547,0x0000010f,0x00050080,0x00000006,0x00000549, + 0x00000545,0x00000548,0x0003003e,0x0000054a,0x00000549,0x0004003d,0x00000006,0x0000054c, + 0x000000b4,0x0003003e,0x0000054b,0x0000054c,0x0004003d,0x0000003a,0x0000054e,0x00000523, + 0x0003003e,0x0000054d,0x0000054e,0x00070039,0x00000002,0x0000054f,0x00000075,0x0000054a, + 0x0000054b,0x0000054d,0x000200f9,0x00000530,0x000200f8,0x00000530,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000c1,0x00000000,0x000000a2,0x00030037,0x00000007,0x000000bb, + 0x00030037,0x00000007,0x000000bc,0x00030037,0x0000004c,0x000000bd,0x00030037,0x00000007, + 0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007,0x000000c0,0x000200f8, + 0x000000c2,0x0004003b,0x00000040,0x00000554,0x00000007,0x0004003b,0x00000007,0x0000055c, + 0x00000007,0x0004003b,0x00000007,0x0000055d,0x00000007,0x0004003b,0x00000040,0x0000055f, + 0x00000007,0x0004003b,0x0000002b,0x00000573,0x00000007,0x0004003b,0x00000040,0x00000574, + 0x00000007,0x0004003b,0x00000007,0x00000576,0x00000007,0x0004003b,0x00000007,0x00000578, + 0x00000007,0x0004003b,0x00000007,0x00000582,0x00000007,0x0004003b,0x00000007,0x00000583, + 0x00000007,0x0004003b,0x00000040,0x00000584,0x00000007,0x0004003d,0x00000006,0x00000550, + 0x000000be,0x000500b0,0x00000047,0x00000551,0x00000550,0x000003d3,0x000300f7,0x00000553, + 0x00000000,0x000400fa,0x00000551,0x00000552,0x00000553,0x000200f8,0x00000552,0x0004003d, + 0x00000006,0x00000555,0x000000bb,0x00050084,0x00000006,0x00000556,0x00000555,0x0000010f, + 0x0004003d,0x00000006,0x00000557,0x000000bc,0x00050089,0x00000006,0x00000558,0x00000557, + 0x0000010f,0x00050080,0x00000006,0x00000559,0x00000556,0x00000558,0x0004003d,0x00000006, + 0x0000055a,0x000000bc,0x00050084,0x00000006,0x0000055b,0x0000055a,0x0000010f,0x0003003e, + 0x0000055c,0x00000559,0x0003003e,0x0000055d,0x0000055b,0x00060039,0x0000003a,0x0000055e, + 0x0000006f,0x0000055c,0x0000055d,0x0003003e,0x00000554,0x0000055e,0x0004003d,0x0000003a, + 0x00000560,0x00000554,0x0003003e,0x0000055f,0x00000560,0x00050039,0x0000003a,0x00000561, + 0x00000088,0x0000055f,0x0003003e,0x00000554,0x00000561,0x0004003d,0x00000006,0x00000562, + 0x000000be,0x00050089,0x00000006,0x00000563,0x00000562,0x00000190,0x000500aa,0x00000047, + 0x00000564,0x00000563,0x00000151,0x000300f7,0x00000566,0x00000000,0x000400fa,0x00000564, + 0x00000565,0x00000566,0x000200f8,0x00000565,0x0004003d,0x00000019,0x00000567,0x000000bd, + 0x00050050,0x00000019,0x00000568,0x00000190,0x00000190,0x00050084,0x00000019,0x00000569, + 0x00000567,0x00000568,0x0004007c,0x0000001f,0x0000056a,0x00000569,0x0004003d,0x00000006, + 0x0000056b,0x000000bb,0x00050086,0x00000006,0x0000056c,0x0000056b,0x0000010f,0x0004007c, + 0x0000001e,0x0000056d,0x0000056c,0x0004003d,0x00000006,0x0000056e,0x000000bc,0x00050086, + 0x00000006,0x0000056f,0x0000056e,0x0000010f,0x0004007c,0x0000001e,0x00000570,0x0000056f, + 0x00050050,0x0000001f,0x00000571,0x0000056d,0x00000570,0x00050080,0x0000001f,0x00000572, + 0x0000056a,0x00000571,0x0003003e,0x00000573,0x00000572,0x0004003d,0x0000003a,0x00000575, + 0x00000554,0x0003003e,0x00000574,0x00000575,0x0004003d,0x00000006,0x00000577,0x000000bf, + 0x0003003e,0x00000576,0x00000577,0x0004003d,0x00000006,0x00000579,0x000000c0,0x0003003e, + 0x00000578,0x00000579,0x00080039,0x00000002,0x0000057a,0x00000061,0x00000573,0x00000574, + 0x00000576,0x00000578,0x0004003d,0x00000006,0x0000057b,0x000000bb,0x00050084,0x00000006, + 0x0000057c,0x0000057b,0x0000010f,0x0004003d,0x00000006,0x0000057d,0x000000bc,0x00050086, + 0x00000006,0x0000057e,0x0000057d,0x0000010f,0x00050080,0x00000006,0x0000057f,0x0000057c, + 0x0000057e,0x0004003d,0x00000006,0x00000580,0x000000bc,0x00050084,0x00000006,0x00000581, + 0x00000580,0x0000010f,0x0003003e,0x00000582,0x0000057f,0x0003003e,0x00000583,0x00000581, + 0x0004003d,0x0000003a,0x00000585,0x00000554,0x0003003e,0x00000584,0x00000585,0x00070039, + 0x00000002,0x00000586,0x00000075,0x00000582,0x00000583,0x00000584,0x000200f9,0x00000566, + 0x000200f8,0x00000566,0x000200f9,0x00000553,0x000200f8,0x00000553,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000c9,0x00000000,0x000000a2,0x00030037,0x00000007,0x000000c3, + 0x00030037,0x00000007,0x000000c4,0x00030037,0x0000004c,0x000000c5,0x00030037,0x00000007, + 0x000000c6,0x00030037,0x00000007,0x000000c7,0x00030037,0x00000007,0x000000c8,0x000200f8, + 0x000000ca,0x0004003b,0x00000040,0x0000058b,0x00000007,0x0004003b,0x00000007,0x00000592, + 0x00000007,0x0004003b,0x00000007,0x00000593,0x00000007,0x0004003b,0x00000040,0x00000595, + 0x00000007,0x0004003b,0x0000002b,0x000005a9,0x00000007,0x0004003b,0x00000040,0x000005aa, + 0x00000007,0x0004003b,0x00000007,0x000005ac,0x00000007,0x0004003b,0x00000007,0x000005ae, + 0x00000007,0x0004003b,0x00000007,0x000005b5,0x00000007,0x0004003b,0x00000007,0x000005b6, + 0x00000007,0x0004003b,0x00000040,0x000005b7,0x00000007,0x0004003d,0x00000006,0x00000587, + 0x000000c6,0x000500b0,0x00000047,0x00000588,0x00000587,0x0000025b,0x000300f7,0x0000058a, + 0x00000000,0x000400fa,0x00000588,0x00000589,0x0000058a,0x000200f8,0x00000589,0x0004003d, + 0x00000006,0x0000058c,0x000000c3,0x00050084,0x00000006,0x0000058d,0x0000058c,0x00000190, + 0x0004003d,0x00000006,0x0000058e,0x000000c4,0x00050080,0x00000006,0x0000058f,0x0000058d, + 0x0000058e,0x0004003d,0x00000006,0x00000590,0x000000c4,0x00050084,0x00000006,0x00000591, + 0x00000590,0x00000190,0x0003003e,0x00000592,0x0000058f,0x0003003e,0x00000593,0x00000591, + 0x00060039,0x0000003a,0x00000594,0x0000006f,0x00000592,0x00000593,0x0003003e,0x0000058b, + 0x00000594,0x0004003d,0x0000003a,0x00000596,0x0000058b,0x0003003e,0x00000595,0x00000596, + 0x00050039,0x0000003a,0x00000597,0x00000088,0x00000595,0x0003003e,0x0000058b,0x00000597, + 0x0004003d,0x00000006,0x00000598,0x000000c6,0x00050089,0x00000006,0x00000599,0x00000598, + 0x00000190,0x000500aa,0x00000047,0x0000059a,0x00000599,0x00000151,0x000300f7,0x0000059c, + 0x00000000,0x000400fa,0x0000059a,0x0000059b,0x0000059c,0x000200f8,0x0000059b,0x0004003d, + 0x00000019,0x0000059d,0x000000c5,0x00050050,0x00000019,0x0000059e,0x0000010f,0x0000010f, + 0x00050084,0x00000019,0x0000059f,0x0000059d,0x0000059e,0x0004007c,0x0000001f,0x000005a0, + 0x0000059f,0x0004003d,0x00000006,0x000005a1,0x000000c3,0x00050086,0x00000006,0x000005a2, + 0x000005a1,0x0000010f,0x0004007c,0x0000001e,0x000005a3,0x000005a2,0x0004003d,0x00000006, + 0x000005a4,0x000000c4,0x00050086,0x00000006,0x000005a5,0x000005a4,0x0000010f,0x0004007c, + 0x0000001e,0x000005a6,0x000005a5,0x00050050,0x0000001f,0x000005a7,0x000005a3,0x000005a6, + 0x00050080,0x0000001f,0x000005a8,0x000005a0,0x000005a7,0x0003003e,0x000005a9,0x000005a8, + 0x0004003d,0x0000003a,0x000005ab,0x0000058b,0x0003003e,0x000005aa,0x000005ab,0x0004003d, + 0x00000006,0x000005ad,0x000000c7,0x0003003e,0x000005ac,0x000005ad,0x0004003d,0x00000006, + 0x000005af,0x000000c8,0x0003003e,0x000005ae,0x000005af,0x00080039,0x00000002,0x000005b0, + 0x00000061,0x000005a9,0x000005aa,0x000005ac,0x000005ae,0x0004003d,0x00000006,0x000005b1, + 0x000000c3,0x00050086,0x00000006,0x000005b2,0x000005b1,0x0000010f,0x0004003d,0x00000006, + 0x000005b3,0x000000c4,0x00050080,0x00000006,0x000005b4,0x000005b2,0x000005b3,0x0003003e, + 0x000005b5,0x000005b4,0x0003003e,0x000005b6,0x00000151,0x0004003d,0x0000003a,0x000005b8, + 0x0000058b,0x0003003e,0x000005b7,0x000005b8,0x00070039,0x00000002,0x000005b9,0x00000075, + 0x000005b5,0x000005b6,0x000005b7,0x000200f9,0x0000059c,0x000200f8,0x0000059c,0x000200f9, + 0x0000058a,0x000200f8,0x0000058a,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d0, + 0x00000000,0x000000cb,0x00030037,0x0000004c,0x000000cc,0x00030037,0x00000007,0x000000cd, + 0x00030037,0x00000007,0x000000ce,0x00030037,0x00000007,0x000000cf,0x000200f8,0x000000d1, + 0x0004003b,0x00000040,0x000005be,0x00000007,0x0004003b,0x00000007,0x000005bf,0x00000007, + 0x0004003b,0x00000007,0x000005c1,0x00000007,0x0004003b,0x00000040,0x000005c3,0x00000007, + 0x0004003b,0x0000002b,0x000005cd,0x00000007,0x0004003b,0x00000040,0x000005ce,0x00000007, + 0x0004003b,0x00000007,0x000005d0,0x00000007,0x0004003b,0x00000007,0x000005d2,0x00000007, + 0x0004003d,0x00000006,0x000005ba,0x000000cd,0x000500b0,0x00000047,0x000005bb,0x000005ba, + 0x00000190,0x000300f7,0x000005bd,0x00000000,0x000400fa,0x000005bb,0x000005bc,0x000005bd, + 0x000200f8,0x000005bc,0x0004003d,0x00000006,0x000005c0,0x000000cd,0x0003003e,0x000005bf, + 0x000005c0,0x0003003e,0x000005c1,0x00000151,0x00060039,0x0000003a,0x000005c2,0x0000006f, + 0x000005bf,0x000005c1,0x0003003e,0x000005be,0x000005c2,0x0004003d,0x0000003a,0x000005c4, + 0x000005be,0x0003003e,0x000005c3,0x000005c4,0x00050039,0x0000003a,0x000005c5,0x00000088, + 0x000005c3,0x0003003e,0x000005be,0x000005c5,0x0004003d,0x00000006,0x000005c6,0x000000cd, + 0x00050089,0x00000006,0x000005c7,0x000005c6,0x00000190,0x000500aa,0x00000047,0x000005c8, + 0x000005c7,0x00000151,0x000300f7,0x000005ca,0x00000000,0x000400fa,0x000005c8,0x000005c9, + 0x000005ca,0x000200f8,0x000005c9,0x0004003d,0x00000019,0x000005cb,0x000000cc,0x0004007c, + 0x0000001f,0x000005cc,0x000005cb,0x0003003e,0x000005cd,0x000005cc,0x0004003d,0x0000003a, + 0x000005cf,0x000005be,0x0003003e,0x000005ce,0x000005cf,0x0004003d,0x00000006,0x000005d1, + 0x000000ce,0x0003003e,0x000005d0,0x000005d1,0x0004003d,0x00000006,0x000005d3,0x000000cf, + 0x0003003e,0x000005d2,0x000005d3,0x00080039,0x00000002,0x000005d4,0x00000061,0x000005cd, + 0x000005ce,0x000005d0,0x000005d2,0x000200f9,0x000005ca,0x000200f8,0x000005ca,0x000200f9, + 0x000005bd,0x000200f8,0x000005bd,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d7, + 0x00000000,0x000000d2,0x00030037,0x00000007,0x000000d3,0x00030037,0x00000007,0x000000d4, + 0x00030037,0x00000007,0x000000d5,0x00030037,0x00000007,0x000000d6,0x000200f8,0x000000d8, + 0x0004003b,0x0000002b,0x000005d5,0x00000007,0x0004003b,0x0000002b,0x000005df,0x00000007, + 0x0004003b,0x00000040,0x000005e9,0x00000007,0x0004003b,0x0000004c,0x000005ec,0x00000007, + 0x0004003b,0x00000007,0x000005ed,0x00000007,0x0004003b,0x0000002b,0x000005f0,0x00000007, + 0x0004003b,0x00000040,0x000005f2,0x00000007,0x0004003b,0x00000007,0x000005f4,0x00000007, + 0x0004003b,0x00000007,0x000005f5,0x00000007,0x0004003b,0x00000040,0x0000060a,0x00000007, + 0x0004003b,0x0000004c,0x0000060d,0x00000007,0x0004003b,0x00000007,0x0000060e,0x00000007, + 0x0004003b,0x0000002b,0x00000611,0x00000007,0x0004003b,0x00000040,0x00000613,0x00000007, + 0x0004003b,0x00000007,0x00000615,0x00000007,0x0004003b,0x00000007,0x00000616,0x00000007, + 0x0004003b,0x00000040,0x0000062b,0x00000007,0x0004003b,0x0000004c,0x0000062e,0x00000007, + 0x0004003b,0x00000007,0x0000062f,0x00000007,0x0004003b,0x0000002b,0x00000632,0x00000007, + 0x0004003b,0x00000040,0x00000634,0x00000007,0x0004003b,0x00000007,0x00000636,0x00000007, + 0x0004003b,0x00000007,0x00000637,0x00000007,0x0004003b,0x00000040,0x0000064c,0x00000007, + 0x0004003b,0x0000004c,0x0000064f,0x00000007,0x0004003b,0x00000007,0x00000650,0x00000007, + 0x0004003b,0x0000002b,0x00000653,0x00000007,0x0004003b,0x00000040,0x00000655,0x00000007, + 0x0004003b,0x00000007,0x00000657,0x00000007,0x0004003b,0x00000007,0x00000658,0x00000007, + 0x0004003b,0x00000040,0x00000660,0x00000007,0x0004003b,0x00000040,0x00000661,0x00000007, + 0x0004003b,0x00000040,0x00000663,0x00000007,0x0004003b,0x00000040,0x00000665,0x00000007, + 0x0004003b,0x00000040,0x00000667,0x00000007,0x0004003b,0x0000002b,0x0000066f,0x00000007, + 0x0004003b,0x00000040,0x00000670,0x00000007,0x0004003b,0x00000007,0x00000672,0x00000007, + 0x0004003b,0x00000007,0x00000673,0x00000007,0x0004003b,0x00000007,0x00000676,0x00000007, + 0x0004003b,0x00000007,0x00000678,0x00000007,0x0004003b,0x00000040,0x0000067a,0x00000007, + 0x0004003d,0x00000006,0x000005d6,0x000000d3,0x00050084,0x00000006,0x000005d7,0x000005d6, + 0x00000190,0x00050080,0x00000006,0x000005d8,0x000005d7,0x00000151,0x0004007c,0x0000001e, + 0x000005d9,0x000005d8,0x0004003d,0x00000006,0x000005da,0x000000d4,0x00050084,0x00000006, + 0x000005db,0x000005da,0x00000190,0x00050080,0x00000006,0x000005dc,0x000005db,0x00000151, + 0x0004007c,0x0000001e,0x000005dd,0x000005dc,0x00050050,0x0000001f,0x000005de,0x000005d9, + 0x000005dd,0x0003003e,0x000005d5,0x000005de,0x0004003d,0x00000006,0x000005e0,0x000000d3, + 0x00050084,0x00000006,0x000005e1,0x000005e0,0x0000010f,0x00050080,0x00000006,0x000005e2, + 0x000005e1,0x00000151,0x0004007c,0x0000001e,0x000005e3,0x000005e2,0x0004003d,0x00000006, + 0x000005e4,0x000000d4,0x00050084,0x00000006,0x000005e5,0x000005e4,0x0000010f,0x00050080, + 0x00000006,0x000005e6,0x000005e5,0x00000151,0x0004007c,0x0000001e,0x000005e7,0x000005e6, + 0x00050050,0x0000001f,0x000005e8,0x000005e3,0x000005e7,0x0003003e,0x000005df,0x000005e8, + 0x0004003d,0x0000001f,0x000005ea,0x000005d5,0x0004007c,0x00000019,0x000005eb,0x000005ea, + 0x0003003e,0x000005ec,0x000005eb,0x0004003d,0x00000006,0x000005ee,0x000000d6,0x0003003e, + 0x000005ed,0x000005ee,0x00060039,0x0000003a,0x000005ef,0x00000095,0x000005ec,0x000005ed, + 0x0003003e,0x000005e9,0x000005ef,0x0004003d,0x0000001f,0x000005f1,0x000005df,0x0003003e, + 0x000005f0,0x000005f1,0x0004003d,0x0000003a,0x000005f3,0x000005e9,0x0003003e,0x000005f2, + 0x000005f3,0x0003003e,0x000005f4,0x000001a4,0x0004003d,0x00000006,0x000005f6,0x000000d6, + 0x0003003e,0x000005f5,0x000005f6,0x00080039,0x00000002,0x000005f7,0x00000061,0x000005f0, + 0x000005f2,0x000005f4,0x000005f5,0x0004003d,0x00000006,0x000005f8,0x000000d3,0x00050084, + 0x00000006,0x000005f9,0x000005f8,0x00000190,0x00050080,0x00000006,0x000005fa,0x000005f9, + 0x0000010f,0x0004007c,0x0000001e,0x000005fb,0x000005fa,0x0004003d,0x00000006,0x000005fc, + 0x000000d4,0x00050084,0x00000006,0x000005fd,0x000005fc,0x00000190,0x00050080,0x00000006, + 0x000005fe,0x000005fd,0x00000151,0x0004007c,0x0000001e,0x000005ff,0x000005fe,0x00050050, + 0x0000001f,0x00000600,0x000005fb,0x000005ff,0x0003003e,0x000005d5,0x00000600,0x0004003d, + 0x00000006,0x00000601,0x000000d3,0x00050084,0x00000006,0x00000602,0x00000601,0x0000010f, + 0x00050080,0x00000006,0x00000603,0x00000602,0x00000116,0x0004007c,0x0000001e,0x00000604, + 0x00000603,0x0004003d,0x00000006,0x00000605,0x000000d4,0x00050084,0x00000006,0x00000606, + 0x00000605,0x0000010f,0x00050080,0x00000006,0x00000607,0x00000606,0x00000151,0x0004007c, + 0x0000001e,0x00000608,0x00000607,0x00050050,0x0000001f,0x00000609,0x00000604,0x00000608, + 0x0003003e,0x000005df,0x00000609,0x0004003d,0x0000001f,0x0000060b,0x000005d5,0x0004007c, + 0x00000019,0x0000060c,0x0000060b,0x0003003e,0x0000060d,0x0000060c,0x0004003d,0x00000006, + 0x0000060f,0x000000d6,0x0003003e,0x0000060e,0x0000060f,0x00060039,0x0000003a,0x00000610, + 0x00000095,0x0000060d,0x0000060e,0x0003003e,0x0000060a,0x00000610,0x0004003d,0x0000001f, + 0x00000612,0x000005df,0x0003003e,0x00000611,0x00000612,0x0004003d,0x0000003a,0x00000614, + 0x0000060a,0x0003003e,0x00000613,0x00000614,0x0003003e,0x00000615,0x000001a4,0x0004003d, + 0x00000006,0x00000617,0x000000d6,0x0003003e,0x00000616,0x00000617,0x00080039,0x00000002, + 0x00000618,0x00000061,0x00000611,0x00000613,0x00000615,0x00000616,0x0004003d,0x00000006, + 0x00000619,0x000000d3,0x00050084,0x00000006,0x0000061a,0x00000619,0x00000190,0x00050080, + 0x00000006,0x0000061b,0x0000061a,0x00000151,0x0004007c,0x0000001e,0x0000061c,0x0000061b, + 0x0004003d,0x00000006,0x0000061d,0x000000d4,0x00050084,0x00000006,0x0000061e,0x0000061d, + 0x00000190,0x00050080,0x00000006,0x0000061f,0x0000061e,0x0000010f,0x0004007c,0x0000001e, + 0x00000620,0x0000061f,0x00050050,0x0000001f,0x00000621,0x0000061c,0x00000620,0x0003003e, + 0x000005d5,0x00000621,0x0004003d,0x00000006,0x00000622,0x000000d3,0x00050084,0x00000006, + 0x00000623,0x00000622,0x0000010f,0x00050080,0x00000006,0x00000624,0x00000623,0x00000151, + 0x0004007c,0x0000001e,0x00000625,0x00000624,0x0004003d,0x00000006,0x00000626,0x000000d4, + 0x00050084,0x00000006,0x00000627,0x00000626,0x0000010f,0x00050080,0x00000006,0x00000628, + 0x00000627,0x00000116,0x0004007c,0x0000001e,0x00000629,0x00000628,0x00050050,0x0000001f, + 0x0000062a,0x00000625,0x00000629,0x0003003e,0x000005df,0x0000062a,0x0004003d,0x0000001f, + 0x0000062c,0x000005d5,0x0004007c,0x00000019,0x0000062d,0x0000062c,0x0003003e,0x0000062e, + 0x0000062d,0x0004003d,0x00000006,0x00000630,0x000000d6,0x0003003e,0x0000062f,0x00000630, + 0x00060039,0x0000003a,0x00000631,0x00000095,0x0000062e,0x0000062f,0x0003003e,0x0000062b, + 0x00000631,0x0004003d,0x0000001f,0x00000633,0x000005df,0x0003003e,0x00000632,0x00000633, + 0x0004003d,0x0000003a,0x00000635,0x0000062b,0x0003003e,0x00000634,0x00000635,0x0003003e, + 0x00000636,0x000001a4,0x0004003d,0x00000006,0x00000638,0x000000d6,0x0003003e,0x00000637, + 0x00000638,0x00080039,0x00000002,0x00000639,0x00000061,0x00000632,0x00000634,0x00000636, + 0x00000637,0x0004003d,0x00000006,0x0000063a,0x000000d3,0x00050084,0x00000006,0x0000063b, + 0x0000063a,0x00000190,0x00050080,0x00000006,0x0000063c,0x0000063b,0x0000010f,0x0004007c, + 0x0000001e,0x0000063d,0x0000063c,0x0004003d,0x00000006,0x0000063e,0x000000d4,0x00050084, + 0x00000006,0x0000063f,0x0000063e,0x00000190,0x00050080,0x00000006,0x00000640,0x0000063f, + 0x0000010f,0x0004007c,0x0000001e,0x00000641,0x00000640,0x00050050,0x0000001f,0x00000642, + 0x0000063d,0x00000641,0x0003003e,0x000005d5,0x00000642,0x0004003d,0x00000006,0x00000643, + 0x000000d3,0x00050084,0x00000006,0x00000644,0x00000643,0x0000010f,0x00050080,0x00000006, + 0x00000645,0x00000644,0x00000116,0x0004007c,0x0000001e,0x00000646,0x00000645,0x0004003d, + 0x00000006,0x00000647,0x000000d4,0x00050084,0x00000006,0x00000648,0x00000647,0x0000010f, + 0x00050080,0x00000006,0x00000649,0x00000648,0x00000116,0x0004007c,0x0000001e,0x0000064a, + 0x00000649,0x00050050,0x0000001f,0x0000064b,0x00000646,0x0000064a,0x0003003e,0x000005df, + 0x0000064b,0x0004003d,0x0000001f,0x0000064d,0x000005d5,0x0004007c,0x00000019,0x0000064e, + 0x0000064d,0x0003003e,0x0000064f,0x0000064e,0x0004003d,0x00000006,0x00000651,0x000000d6, + 0x0003003e,0x00000650,0x00000651,0x00060039,0x0000003a,0x00000652,0x00000095,0x0000064f, + 0x00000650,0x0003003e,0x0000064c,0x00000652,0x0004003d,0x0000001f,0x00000654,0x000005df, + 0x0003003e,0x00000653,0x00000654,0x0004003d,0x0000003a,0x00000656,0x0000064c,0x0003003e, + 0x00000655,0x00000656,0x0003003e,0x00000657,0x000001a4,0x0004003d,0x00000006,0x00000659, + 0x000000d6,0x0003003e,0x00000658,0x00000659,0x00080039,0x00000002,0x0000065a,0x00000061, + 0x00000653,0x00000655,0x00000657,0x00000658,0x0004003d,0x00000006,0x0000065b,0x000000d5, + 0x000500b2,0x00000047,0x0000065c,0x0000065b,0x000001ae,0x000300f7,0x0000065e,0x00000000, + 0x000400fa,0x0000065c,0x0000065d,0x0000065e,0x000200f8,0x0000065d,0x000100fd,0x000200f8, + 0x0000065e,0x0004003d,0x0000003a,0x00000662,0x000005e9,0x0003003e,0x00000661,0x00000662, + 0x0004003d,0x0000003a,0x00000664,0x0000060a,0x0003003e,0x00000663,0x00000664,0x0004003d, + 0x0000003a,0x00000666,0x0000062b,0x0003003e,0x00000665,0x00000666,0x0004003d,0x0000003a, + 0x00000668,0x0000064c,0x0003003e,0x00000667,0x00000668,0x00080039,0x0000003a,0x00000669, + 0x0000007c,0x00000661,0x00000663,0x00000665,0x00000667,0x0003003e,0x00000660,0x00000669, + 0x0004003d,0x00000006,0x0000066a,0x000000d3,0x0004007c,0x0000001e,0x0000066b,0x0000066a, + 0x0004003d,0x00000006,0x0000066c,0x000000d4,0x0004007c,0x0000001e,0x0000066d,0x0000066c, + 0x00050050,0x0000001f,0x0000066e,0x0000066b,0x0000066d,0x0003003e,0x0000066f,0x0000066e, + 0x0004003d,0x0000003a,0x00000671,0x00000660,0x0003003e,0x00000670,0x00000671,0x0003003e, + 0x00000672,0x000001ae,0x0004003d,0x00000006,0x00000674,0x000000d6,0x0003003e,0x00000673, + 0x00000674,0x00080039,0x00000002,0x00000675,0x00000061,0x0000066f,0x00000670,0x00000672, + 0x00000673,0x0004003d,0x00000006,0x00000677,0x000000d3,0x0003003e,0x00000676,0x00000677, + 0x0004003d,0x00000006,0x00000679,0x000000d4,0x0003003e,0x00000678,0x00000679,0x0004003d, + 0x0000003a,0x0000067b,0x00000660,0x0003003e,0x0000067a,0x0000067b,0x00070039,0x00000002, + 0x0000067c,0x00000075,0x00000676,0x00000678,0x0000067a,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000e1,0x00000000,0x000000d9,0x00030037,0x00000007,0x000000da,0x00030037, + 0x00000007,0x000000db,0x00030037,0x0000004c,0x000000dc,0x00030037,0x00000007,0x000000dd, + 0x00030037,0x00000007,0x000000de,0x00030037,0x00000007,0x000000df,0x00030037,0x00000007, + 0x000000e0,0x000200f8,0x000000e2,0x0004003b,0x00000007,0x00000684,0x00000007,0x0004003b, + 0x00000007,0x00000686,0x00000007,0x0004003b,0x0000004c,0x00000688,0x00000007,0x0004003b, + 0x00000007,0x0000068a,0x00000007,0x0004003b,0x00000007,0x0000068c,0x00000007,0x0004003b, + 0x00000007,0x0000068e,0x00000007,0x0004003b,0x00000007,0x0000069b,0x00000007,0x0004003b, + 0x00000007,0x0000069d,0x00000007,0x0004003b,0x0000004c,0x0000069f,0x00000007,0x0004003b, + 0x00000007,0x000006a1,0x00000007,0x0004003b,0x00000007,0x000006a3,0x00000007,0x0004003b, + 0x00000007,0x000006a4,0x00000007,0x0004003b,0x00000007,0x000006b1,0x00000007,0x0004003b, + 0x00000007,0x000006b3,0x00000007,0x0004003b,0x0000004c,0x000006b5,0x00000007,0x0004003b, + 0x00000007,0x000006b7,0x00000007,0x0004003b,0x00000007,0x000006b9,0x00000007,0x0004003b, + 0x00000007,0x000006ba,0x00000007,0x0004003b,0x0000004c,0x000006c7,0x00000007,0x0004003b, + 0x00000007,0x000006c9,0x00000007,0x0004003b,0x00000007,0x000006cb,0x00000007,0x0004003b, + 0x00000007,0x000006cc,0x00000007,0x0004003d,0x00000006,0x0000067d,0x000000df,0x0004003d, + 0x00000006,0x0000067e,0x000000de,0x000500b2,0x00000047,0x0000067f,0x0000067d,0x0000067e, + 0x000300f7,0x00000681,0x00000000,0x000400fa,0x0000067f,0x00000680,0x00000681,0x000200f8, + 0x00000680,0x000100fd,0x000200f8,0x00000681,0x00040039,0x00000002,0x00000683,0x0000007e, + 0x0004003d,0x00000006,0x00000685,0x000000da,0x0003003e,0x00000684,0x00000685,0x0004003d, + 0x00000006,0x00000687,0x000000db,0x0003003e,0x00000686,0x00000687,0x0004003d,0x00000019, + 0x00000689,0x000000dc,0x0003003e,0x00000688,0x00000689,0x0004003d,0x00000006,0x0000068b, + 0x000000dd,0x0003003e,0x0000068a,0x0000068b,0x0004003d,0x00000006,0x0000068d,0x000000de, + 0x0003003e,0x0000068c,0x0000068d,0x0004003d,0x00000006,0x0000068f,0x000000e0,0x0003003e, + 0x0000068e,0x0000068f,0x000a0039,0x00000002,0x00000690,0x000000b9,0x00000684,0x00000686, + 0x00000688,0x0000068a,0x0000068c,0x0000068e,0x0004003d,0x00000006,0x00000691,0x000000df, + 0x0004003d,0x00000006,0x00000692,0x000000de,0x00050080,0x00000006,0x00000693,0x00000692, + 0x00000116,0x000500b2,0x00000047,0x00000694,0x00000691,0x00000693,0x000300f7,0x00000696, + 0x00000000,0x000400fa,0x00000694,0x00000695,0x00000696,0x000200f8,0x00000695,0x000100fd, + 0x000200f8,0x00000696,0x00040039,0x00000002,0x00000698,0x0000007e,0x0004003d,0x00000006, + 0x00000699,0x000000de,0x00050080,0x00000006,0x0000069a,0x00000699,0x00000116,0x0004003d, + 0x00000006,0x0000069c,0x000000da,0x0003003e,0x0000069b,0x0000069c,0x0004003d,0x00000006, + 0x0000069e,0x000000db,0x0003003e,0x0000069d,0x0000069e,0x0004003d,0x00000019,0x000006a0, + 0x000000dc,0x0003003e,0x0000069f,0x000006a0,0x0004003d,0x00000006,0x000006a2,0x000000dd, + 0x0003003e,0x000006a1,0x000006a2,0x0003003e,0x000006a3,0x0000069a,0x0004003d,0x00000006, + 0x000006a5,0x000000e0,0x0003003e,0x000006a4,0x000006a5,0x000a0039,0x00000002,0x000006a6, + 0x000000c1,0x0000069b,0x0000069d,0x0000069f,0x000006a1,0x000006a3,0x000006a4,0x0004003d, + 0x00000006,0x000006a7,0x000000df,0x0004003d,0x00000006,0x000006a8,0x000000de,0x00050080, + 0x00000006,0x000006a9,0x000006a8,0x0000010f,0x000500b2,0x00000047,0x000006aa,0x000006a7, + 0x000006a9,0x000300f7,0x000006ac,0x00000000,0x000400fa,0x000006aa,0x000006ab,0x000006ac, + 0x000200f8,0x000006ab,0x000100fd,0x000200f8,0x000006ac,0x00040039,0x00000002,0x000006ae, + 0x0000007e,0x0004003d,0x00000006,0x000006af,0x000000de,0x00050080,0x00000006,0x000006b0, + 0x000006af,0x0000010f,0x0004003d,0x00000006,0x000006b2,0x000000da,0x0003003e,0x000006b1, + 0x000006b2,0x0004003d,0x00000006,0x000006b4,0x000000db,0x0003003e,0x000006b3,0x000006b4, + 0x0004003d,0x00000019,0x000006b6,0x000000dc,0x0003003e,0x000006b5,0x000006b6,0x0004003d, + 0x00000006,0x000006b8,0x000000dd,0x0003003e,0x000006b7,0x000006b8,0x0003003e,0x000006b9, + 0x000006b0,0x0004003d,0x00000006,0x000006bb,0x000000e0,0x0003003e,0x000006ba,0x000006bb, + 0x000a0039,0x00000002,0x000006bc,0x000000c9,0x000006b1,0x000006b3,0x000006b5,0x000006b7, + 0x000006b9,0x000006ba,0x0004003d,0x00000006,0x000006bd,0x000000df,0x0004003d,0x00000006, + 0x000006be,0x000000de,0x00050080,0x00000006,0x000006bf,0x000006be,0x00000110,0x000500b2, + 0x00000047,0x000006c0,0x000006bd,0x000006bf,0x000300f7,0x000006c2,0x00000000,0x000400fa, + 0x000006c0,0x000006c1,0x000006c2,0x000200f8,0x000006c1,0x000100fd,0x000200f8,0x000006c2, + 0x00040039,0x00000002,0x000006c4,0x0000007e,0x0004003d,0x00000006,0x000006c5,0x000000de, + 0x00050080,0x00000006,0x000006c6,0x000006c5,0x00000110,0x0004003d,0x00000019,0x000006c8, + 0x000000dc,0x0003003e,0x000006c7,0x000006c8,0x0004003d,0x00000006,0x000006ca,0x000000dd, + 0x0003003e,0x000006c9,0x000006ca,0x0003003e,0x000006cb,0x000006c6,0x0004003d,0x00000006, + 0x000006cd,0x000000e0,0x0003003e,0x000006cc,0x000006cd,0x00080039,0x00000002,0x000006ce, + 0x000000d0,0x000006c7,0x000006c9,0x000006cb,0x000006cc,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000e9,0x00000000,0x000000e3,0x00030037,0x0000004c,0x000000e4,0x00030037, + 0x00000007,0x000000e5,0x00030037,0x00000007,0x000000e6,0x00030037,0x00000007,0x000000e7, + 0x00030037,0x00000007,0x000000e8,0x000200f8,0x000000ea,0x0004003b,0x0000004c,0x000006cf, + 0x00000007,0x0004003b,0x00000007,0x000006d2,0x00000007,0x0004003b,0x00000007,0x000006d4, + 0x00000007,0x0004003b,0x00000007,0x000006dc,0x00000007,0x0004003b,0x00000007,0x000006e4, + 0x00000007,0x0004003b,0x00000007,0x000006e6,0x00000007,0x0004003b,0x0000004c,0x000006e8, + 0x00000007,0x0004003b,0x00000007,0x000006ea,0x00000007,0x0004003b,0x00000007,0x000006ec, + 0x00000007,0x0004003b,0x00000007,0x000006ee,0x00000007,0x0004003b,0x00000007,0x000006f1, + 0x00000007,0x0004003b,0x00000007,0x000006f3,0x00000007,0x0004003b,0x0000004c,0x000006f5, + 0x00000007,0x0004003b,0x00000007,0x000006f7,0x00000007,0x0004003b,0x00000007,0x000006f9, + 0x00000007,0x0004003b,0x00000007,0x000006fa,0x00000007,0x0004003b,0x00000007,0x000006fc, + 0x00000007,0x0004003b,0x00000007,0x00000704,0x00000007,0x0004003b,0x00000007,0x00000706, + 0x00000007,0x0004003b,0x00000007,0x00000708,0x00000007,0x0004003b,0x00000007,0x0000070e, + 0x00000007,0x0004003b,0x00000007,0x00000711,0x00000007,0x0004003b,0x00000007,0x00000713, + 0x00000007,0x0004003b,0x00000007,0x00000715,0x00000007,0x0004003b,0x00000007,0x00000717, + 0x00000007,0x0004003b,0x00000007,0x0000071a,0x00000007,0x0004003b,0x00000007,0x0000071c, + 0x00000007,0x0004003b,0x0000004c,0x0000071e,0x00000007,0x0004003b,0x00000007,0x0000071f, + 0x00000007,0x0004003b,0x00000007,0x00000721,0x00000007,0x0004003b,0x00000007,0x00000722, + 0x00000007,0x0004003b,0x00000007,0x00000724,0x00000007,0x0004003d,0x00000006,0x000006d0, + 0x000000e5,0x00050089,0x00000006,0x000006d1,0x000006d0,0x000003d3,0x0003003e,0x000006d2, + 0x000006d1,0x00050039,0x00000019,0x000006d3,0x0000001c,0x000006d2,0x0003003e,0x000006cf, + 0x000006d3,0x00050041,0x00000007,0x000006d5,0x000006cf,0x00000151,0x0004003d,0x00000006, + 0x000006d6,0x000006d5,0x0004003d,0x00000006,0x000006d7,0x000000e5,0x000500c2,0x00000006, + 0x000006d8,0x000006d7,0x0000028e,0x00050089,0x00000006,0x000006d9,0x000006d8,0x0000010f, + 0x00050084,0x00000006,0x000006da,0x000001b8,0x000006d9,0x00050080,0x00000006,0x000006db, + 0x000006d6,0x000006da,0x0003003e,0x000006d4,0x000006db,0x00050041,0x00000007,0x000006dd, + 0x000006cf,0x00000116,0x0004003d,0x00000006,0x000006de,0x000006dd,0x0004003d,0x00000006, + 0x000006df,0x000000e5,0x000500c2,0x00000006,0x000006e1,0x000006df,0x000006e0,0x00050084, + 0x00000006,0x000006e2,0x000001b8,0x000006e1,0x00050080,0x00000006,0x000006e3,0x000006de, + 0x000006e2,0x0003003e,0x000006dc,0x000006e3,0x0004003d,0x00000006,0x000006e5,0x000006d4, + 0x0003003e,0x000006e4,0x000006e5,0x0004003d,0x00000006,0x000006e7,0x000006dc,0x0003003e, + 0x000006e6,0x000006e7,0x0004003d,0x00000019,0x000006e9,0x000000e4,0x0003003e,0x000006e8, + 0x000006e9,0x0004003d,0x00000006,0x000006eb,0x000000e5,0x0003003e,0x000006ea,0x000006eb, + 0x0004003d,0x00000006,0x000006ed,0x000000e6,0x0003003e,0x000006ec,0x000006ed,0x0004003d, + 0x00000006,0x000006ef,0x000000e8,0x0003003e,0x000006ee,0x000006ef,0x000a0039,0x00000002, + 0x000006f0,0x000000b1,0x000006e4,0x000006e6,0x000006e8,0x000006ea,0x000006ec,0x000006ee, + 0x0004003d,0x00000006,0x000006f2,0x000006d4,0x0003003e,0x000006f1,0x000006f2,0x0004003d, + 0x00000006,0x000006f4,0x000006dc,0x0003003e,0x000006f3,0x000006f4,0x0004003d,0x00000019, + 0x000006f6,0x000000e4,0x0003003e,0x000006f5,0x000006f6,0x0004003d,0x00000006,0x000006f8, + 0x000000e5,0x0003003e,0x000006f7,0x000006f8,0x0003003e,0x000006f9,0x0000010f,0x0004003d, + 0x00000006,0x000006fb,0x000000e6,0x0003003e,0x000006fa,0x000006fb,0x0004003d,0x00000006, + 0x000006fd,0x000000e8,0x0003003e,0x000006fc,0x000006fd,0x000b0039,0x00000002,0x000006fe, + 0x000000e1,0x000006f1,0x000006f3,0x000006f5,0x000006f7,0x000006f9,0x000006fa,0x000006fc, + 0x0004003d,0x00000006,0x000006ff,0x000000e6,0x000500b2,0x00000047,0x00000700,0x000006ff, + 0x000001a4,0x000300f7,0x00000702,0x00000000,0x000400fa,0x00000700,0x00000701,0x00000702, + 0x000200f8,0x00000701,0x000100fd,0x000200f8,0x00000702,0x0004003d,0x00000006,0x00000705, + 0x000000e7,0x0003003e,0x00000704,0x00000705,0x0004003d,0x00000006,0x00000707,0x000000e5, + 0x0003003e,0x00000706,0x00000707,0x0004003d,0x00000006,0x00000709,0x000000e8,0x0003003e, + 0x00000708,0x00000709,0x00070039,0x00000047,0x0000070a,0x00000084,0x00000704,0x00000706, + 0x00000708,0x000300f7,0x0000070c,0x00000000,0x000400fa,0x0000070a,0x0000070b,0x0000070c, + 0x000200f8,0x0000070b,0x000100fd,0x000200f8,0x0000070c,0x0004003d,0x00000006,0x0000070f, + 0x000000e8,0x0003003e,0x0000070e,0x0000070f,0x00050039,0x00000002,0x00000710,0x0000006a, + 0x0000070e,0x0004003d,0x00000006,0x00000712,0x000006d4,0x0003003e,0x00000711,0x00000712, + 0x0004003d,0x00000006,0x00000714,0x000006dc,0x0003003e,0x00000713,0x00000714,0x0004003d, + 0x00000006,0x00000716,0x000000e6,0x0003003e,0x00000715,0x00000716,0x0004003d,0x00000006, + 0x00000718,0x000000e8,0x0003003e,0x00000717,0x00000718,0x00080039,0x00000002,0x00000719, + 0x000000d7,0x00000711,0x00000713,0x00000715,0x00000717,0x0004003d,0x00000006,0x0000071b, + 0x000006d4,0x0003003e,0x0000071a,0x0000071b,0x0004003d,0x00000006,0x0000071d,0x000006dc, + 0x0003003e,0x0000071c,0x0000071d,0x0003003e,0x0000071e,0x00000385,0x0004003d,0x00000006, + 0x00000720,0x000000e5,0x0003003e,0x0000071f,0x00000720,0x0003003e,0x00000721,0x000001b8, + 0x0004003d,0x00000006,0x00000723,0x000000e6,0x0003003e,0x00000722,0x00000723,0x0004003d, + 0x00000006,0x00000725,0x000000e8,0x0003003e,0x00000724,0x00000725,0x000b0039,0x00000002, + 0x00000726,0x000000e1,0x0000071a,0x0000071c,0x0000071e,0x0000071f,0x00000721,0x00000722, + 0x00000724,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f2,0x00000000,0x000000eb, + 0x00030037,0x0000004c,0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007, + 0x000000ee,0x00030037,0x00000007,0x000000ef,0x00030037,0x00000007,0x000000f0,0x00030037, + 0x0000004c,0x000000f1,0x000200f8,0x000000f3,0x0004003b,0x0000004c,0x0000072a,0x00000007, + 0x0004003b,0x00000007,0x0000072b,0x00000007,0x0004003b,0x00000007,0x0000072d,0x00000007, + 0x0004003b,0x00000007,0x0000072f,0x00000007,0x0004003b,0x00000007,0x00000731,0x00000007, + 0x0004003d,0x00000019,0x00000727,0x000000ec,0x0004003d,0x00000019,0x00000728,0x000000f1, + 0x00050080,0x00000019,0x00000729,0x00000727,0x00000728,0x0003003e,0x0000072a,0x00000729, + 0x0004003d,0x00000006,0x0000072c,0x000000ed,0x0003003e,0x0000072b,0x0000072c,0x0004003d, + 0x00000006,0x0000072e,0x000000ee,0x0003003e,0x0000072d,0x0000072e,0x0004003d,0x00000006, + 0x00000730,0x000000ef,0x0003003e,0x0000072f,0x00000730,0x0004003d,0x00000006,0x00000732, + 0x000000f0,0x0003003e,0x00000731,0x00000732,0x00090039,0x00000002,0x00000733,0x000000e9, + 0x0000072a,0x0000072b,0x0000072d,0x0000072f,0x00000731,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000f9,0x00000000,0x000000f6,0x00030037,0x000000f5,0x000000f7,0x00030037, + 0x00000030,0x000000f8,0x000200f8,0x000000fa,0x0004003b,0x0000004c,0x0000073f,0x00000007, + 0x0004003b,0x00000007,0x00000740,0x00000007,0x0004003b,0x00000007,0x00000741,0x00000007, + 0x0004003b,0x00000007,0x00000742,0x00000007,0x0004003b,0x00000007,0x00000743,0x00000007, + 0x0004003b,0x0000004c,0x00000744,0x00000007,0x0004003d,0x000000f4,0x00000734,0x000000f7, + 0x0007004f,0x0000001f,0x00000735,0x00000734,0x00000734,0x00000000,0x00000001,0x0004007c, + 0x00000019,0x00000736,0x00000735,0x0004003d,0x0000001e,0x00000737,0x000000f8,0x0004007c, + 0x00000006,0x00000738,0x00000737,0x00040039,0x00000006,0x00000739,0x00000024,0x00040039, + 0x00000006,0x0000073a,0x00000026,0x00050041,0x00000030,0x0000073b,0x000000f7,0x0000010f, + 0x0004003d,0x0000001e,0x0000073c,0x0000073b,0x0004007c,0x00000006,0x0000073d,0x0000073c, + 0x00040039,0x00000019,0x0000073e,0x00000029,0x0003003e,0x0000073f,0x00000736,0x0003003e, + 0x00000740,0x00000738,0x0003003e,0x00000741,0x00000739,0x0003003e,0x00000742,0x0000073a, + 0x0003003e,0x00000743,0x0000073d,0x0003003e,0x00000744,0x0000073e,0x000a0039,0x00000002, + 0x00000745,0x000000f2,0x0000073f,0x00000740,0x00000741,0x00000742,0x00000743,0x00000744, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h b/gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h new file mode 100644 index 000000000..54494dace --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h @@ -0,0 +1,748 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_INPAINTING_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000003af,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000037,0x00020011,0x00000038,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000397,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c, + 0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461,0x00003b31,0x00030005, + 0x0000000a,0x00000078,0x00070005,0x00000011,0x42786666,0x64616f72,0x74736163,0x31662833, + 0x0000003b,0x00040005,0x00000010,0x756c6176,0x00000065,0x00070005,0x00000018,0x4c786666, + 0x28707265,0x3b336676,0x3b336676,0x003b3166,0x00030005,0x00000015,0x00000078,0x00030005, + 0x00000016,0x00000079,0x00030005,0x00000017,0x00000074,0x00060005,0x0000001c,0x53786666, + 0x72757461,0x28657461,0x003b3166,0x00030005,0x0000001b,0x00000078,0x00070005,0x00000020, + 0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000,0x00030005,0x0000001f,0x00000078, + 0x00060005,0x00000026,0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000025, + 0x00000078,0x00060005,0x0000002b,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005, + 0x00000029,0x00000078,0x00030005,0x0000002a,0x00000079,0x00060005,0x0000002f,0x4d786666, + 0x66287861,0x31663b31,0x0000003b,0x00030005,0x0000002d,0x00000078,0x00030005,0x0000002e, + 0x00000079,0x00060005,0x00000033,0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005, + 0x00000031,0x00000078,0x00030005,0x00000032,0x00000079,0x000a0005,0x00000039,0x5a786666, + 0x4f6f7265,0x6553656e,0x7463656c,0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005, + 0x00000036,0x00000078,0x00030005,0x00000037,0x00000079,0x00030005,0x00000038,0x0000007a, + 0x00080005,0x0000003c,0x5a786666,0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366, + 0x00030005,0x0000003b,0x00000078,0x00080005,0x0000003f,0x4c786666,0x61656e69,0x6f724672, + 0x2851506d,0x3b336676,0x00000000,0x00040005,0x0000003e,0x756c6176,0x00000065,0x00080005, + 0x00000042,0x4c786666,0x61656e69,0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005, + 0x00000041,0x756c6176,0x00000065,0x00060005,0x00000047,0x70736944,0x5379616c,0x28657a69, + 0x00000000,0x00040005,0x0000004b,0x65736552,0x00002874,0x00090005,0x0000004e,0x48746547, + 0x654c4455,0x74417373,0x68636174,0x61466465,0x726f7463,0x00000028,0x00070005,0x00000051, + 0x44746547,0x61707369,0x46686374,0x7367616c,0x00000028,0x00070005,0x00000054,0x44746547, + 0x67756265,0x43726142,0x726f6c6f,0x00000028,0x00090005,0x00000056,0x6b636142,0x66667542, + 0x72547265,0x66736e61,0x75467265,0x6974636e,0x00286e6f,0x00060005,0x00000059,0x4c6e694d, + 0x6e696d75,0x65636e61,0x00000028,0x00060005,0x0000005b,0x4c78614d,0x6e696d75,0x65636e61, + 0x00000028,0x00090005,0x00000060,0x64616f4c,0x72727543,0x42746e65,0x626b6361,0x65666675, + 0x69762872,0x00003b32,0x00040005,0x0000005f,0x50785069,0x0000736f,0x00070005,0x00000062, + 0x53736148,0x656e6563,0x6e616843,0x28646567,0x00000000,0x000a0005,0x0000006b,0x64616f4c, + 0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x31692864,0x3275763b,0x0000003b,0x00050005, + 0x00000069,0x4c70696d,0x6c657665,0x00000000,0x00050005,0x0000006a,0x49785069,0x7475706e, + 0x00000000,0x00090005,0x0000006f,0x64616f4c,0x73657250,0x42746e65,0x626b6361,0x65666675, + 0x69762872,0x00003b32,0x00050005,0x0000006e,0x49785069,0x7475706e,0x00000000,0x000b0005, + 0x00000072,0x6f4c5752,0x72466461,0x69656d61,0x7265746e,0x616c6f70,0x6e6f6974,0x7074754f, + 0x76287475,0x003b3269,0x00040005,0x00000071,0x50785069,0x0000736f,0x000c0005,0x00000078, + 0x726f7453,0x61724665,0x6e69656d,0x70726574,0x74616c6f,0x4f6e6f69,0x75707475,0x69762874, + 0x66763b32,0x00003b34,0x00040005,0x00000076,0x50785069,0x0000736f,0x00030005,0x00000077, + 0x006c6176,0x00090005,0x0000007e,0x73786666,0x42475263,0x694c6f54,0x7261656e,0x33667628, + 0x3b31663b,0x003b3166,0x00040005,0x0000007b,0x756c6176,0x00000065,0x00060005,0x0000007c, + 0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x0000007d,0x4c78616d,0x6e696d75, + 0x65636e61,0x00000000,0x00070005,0x00000081,0x52776152,0x6f544247,0x656e694c,0x76287261, + 0x003b3366,0x00040005,0x00000080,0x77615266,0x00626752,0x00080005,0x00000086,0x696c6942, + 0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006,0x00000086,0x00000000, + 0x66664f69,0x73746573,0x00000000,0x00060006,0x00000086,0x00000001,0x69655766,0x73746867, + 0x00000000,0x00060006,0x00000086,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005, + 0x0000008a,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676, + 0x3b326976,0x00000000,0x00030005,0x00000088,0x00765566,0x00040005,0x00000089,0x7a695369, + 0x00000065,0x00070005,0x0000008f,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x0000008d,0x00736f70,0x00040005,0x0000008e,0x657a6973,0x00000000,0x00080005, + 0x00000094,0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31,0x00030005, + 0x00000092,0x00003076,0x00030005,0x00000093,0x00003176,0x000c0005,0x00000099,0x636c6143, + 0x74616c75,0x61745365,0x43636974,0x65746e6f,0x6146746e,0x726f7463,0x33667628,0x3366763b, + 0x0000003b,0x00090005,0x00000097,0x72754366,0x746e6572,0x65746e49,0x6c6f7072,0x6f697461, + 0x756f536e,0x00656372,0x00060005,0x00000098,0x65725066,0x746e6573,0x6f6c6f43,0x00000072, + 0x000b0005,0x0000009f,0x706d6f43,0x49657475,0x6961706e,0x6e69746e,0x76654c67,0x76286c65, + 0x693b3266,0x69763b31,0x00003b32,0x00030005,0x0000009c,0x00765566,0x00050005,0x0000009d, + 0x70694d69,0x6576654c,0x0000006c,0x00050005,0x0000009e,0x78655469,0x657a6953,0x00000000, + 0x00080005,0x000000a2,0x706d6f43,0x49657475,0x6961706e,0x6e69746e,0x69762867,0x00003b32, + 0x00040005,0x000000a1,0x50785069,0x0000736f,0x000a0005,0x000000a9,0x77617264,0x75626544, + 0x61655467,0x6e694c72,0x76287365,0x763b3269,0x623b3366,0x00003b31,0x00040005,0x000000a6, + 0x50785069,0x0000736f,0x00040005,0x000000a7,0x6c6f4366,0x0000726f,0x00050005,0x000000a8, + 0x69725762,0x6f436574,0x00726f6c,0x000c0005,0x000000ae,0x77617264,0x75626544,0x73655267, + 0x6e497465,0x61636964,0x73726f74,0x32697628,0x3366763b,0x3b31623b,0x00000000,0x00040005, + 0x000000ab,0x50785069,0x0000736f,0x00040005,0x000000ac,0x6c6f4366,0x0000726f,0x00050005, + 0x000000ad,0x69725762,0x6f436574,0x00726f6c,0x00080005,0x000000b2,0x706d6f63,0x49657475, + 0x6961706e,0x6e69746e,0x69762867,0x00003b32,0x00040005,0x000000b1,0x50785069,0x0000736f, + 0x00040005,0x000000ca,0x61726170,0x0000006d,0x00040005,0x000000cc,0x61726170,0x0000006d, + 0x00030005,0x000000e4,0x00000072,0x00040005,0x000000f4,0x61726170,0x0000006d,0x00040005, + 0x000000f6,0x61726170,0x0000006d,0x00040005,0x000000f9,0x61726170,0x0000006d,0x00030005, + 0x000000fd,0x00000070,0x00040005,0x00000100,0x61726170,0x0000006d,0x00040005,0x00000105, + 0x61726170,0x0000006d,0x00040005,0x00000108,0x61726170,0x0000006d,0x00040005,0x0000010b, + 0x61726170,0x0000006d,0x00040005,0x0000010e,0x61726170,0x0000006d,0x00040005,0x00000115, + 0x61726170,0x0000006d,0x00030005,0x0000011a,0x0000006a,0x00030005,0x0000011f,0x0000006b, + 0x00040005,0x00000127,0x61726170,0x0000006d,0x00040005,0x00000137,0x61726170,0x0000006d, + 0x00040005,0x00000138,0x61726170,0x0000006d,0x00040005,0x00000139,0x61726170,0x0000006d, + 0x00040005,0x0000013d,0x49466263,0x0000745f,0x00060006,0x0000013d,0x00000000,0x646e6572, + 0x69537265,0x0000657a,0x00060006,0x0000013d,0x00000001,0x70736964,0x5379616c,0x00657a69, + 0x00070006,0x0000013d,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006, + 0x0000013d,0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x0000013d,0x00000004, + 0x656d6163,0x61466172,0x00000072,0x00080006,0x0000013d,0x00000005,0x63737075,0x72656c61, + 0x67726154,0x69537465,0x0000657a,0x00050006,0x0000013d,0x00000006,0x65646f4d,0x00000000, + 0x00050006,0x0000013d,0x00000007,0x65736572,0x00000074,0x00080006,0x0000013d,0x00000008, + 0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x0000013d,0x00000009, + 0x746c6564,0x6d695461,0x00000065,0x00090006,0x0000013d,0x0000000a,0x4c445548,0x41737365, + 0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006,0x0000013d,0x0000000b,0x74736964, + 0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x0000013d,0x0000000c,0x6974706f, + 0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006,0x0000013d,0x0000000d,0x6974706f, + 0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x0000013d,0x0000000e, + 0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006,0x0000013d,0x0000000f,0x5278616d, + 0x65646e65,0x7a695372,0x00000065,0x00090006,0x0000013d,0x00000010,0x6974706f,0x466c6163, + 0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x0000013d,0x00000011,0x496d754e, + 0x6174736e,0x7365636e,0x00000000,0x00090006,0x0000013d,0x00000012,0x65746e69,0x6c6f7072, + 0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006,0x0000013d,0x00000013,0x65746e69, + 0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x0000013d,0x00000014, + 0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x0000013d,0x00000015,0x6b636162, + 0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000013d, + 0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x0000013d,0x00000017, + 0x6e615466,0x666c6148,0x00564f46,0x00050006,0x0000013d,0x00000018,0x6461705f,0x00000031, + 0x00050006,0x0000013d,0x00000019,0x74694a66,0x00726574,0x00080006,0x0000013d,0x0000001a, + 0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000013f,0x49466263, + 0x00000000,0x000a0005,0x00000171,0x75635f72,0x6e657272,0x6e695f74,0x70726574,0x74616c6f, + 0x5f6e6f69,0x72756f73,0x00006563,0x00070005,0x0000017b,0x706f5f72,0x61636974,0x6c665f6c, + 0x735f776f,0x00006463,0x00080005,0x00000186,0x6e695f72,0x6e696170,0x676e6974,0x7279705f, + 0x64696d61,0x00000000,0x00080005,0x0000018e,0x72705f72,0x6e657365,0x61625f74,0x75626b63, + 0x72656666,0x00000000,0x00050005,0x00000196,0x6f5f7772,0x75707475,0x00000074,0x00030005, + 0x0000019f,0x00000070,0x00040005,0x000001a4,0x61726170,0x0000006d,0x00040005,0x000001ac, + 0x61726170,0x0000006d,0x00050005,0x000001b6,0x6e694c66,0x52726165,0x00006267,0x00040005, + 0x000001b7,0x61726170,0x0000006d,0x00040005,0x000001bb,0x61726170,0x0000006d,0x00040005, + 0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001c7,0x61726170,0x0000006d,0x00040005, + 0x000001c8,0x61726170,0x0000006d,0x00050005,0x000001cf,0x53785066,0x6c706d61,0x00000065, + 0x00040005,0x000001d8,0x61746164,0x00000000,0x00040005,0x000001de,0x46785066,0x00636172, + 0x00040005,0x000001df,0x61726170,0x0000006d,0x00030005,0x00000212,0x0000006d,0x00040005, + 0x00000213,0x61726170,0x0000006d,0x00040005,0x00000214,0x61726170,0x0000006d,0x00040005, + 0x0000021b,0x61726170,0x0000006d,0x00040005,0x0000021c,0x61726170,0x0000006d,0x00040005, + 0x00000224,0x63614666,0x00726f74,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00040005, + 0x00000236,0x61726170,0x0000006d,0x00040005,0x00000240,0x61726170,0x0000006d,0x00040005, + 0x00000243,0x61726170,0x0000006d,0x00060005,0x0000024f,0x696c6962,0x7261656e,0x6f666e49, + 0x00000000,0x00040005,0x00000250,0x61726170,0x0000006d,0x00040005,0x00000252,0x61726170, + 0x0000006d,0x00040005,0x00000254,0x6c6f4366,0x0000726f,0x00060005,0x00000256,0x6d615369, + 0x49656c70,0x7865646e,0x00000000,0x00040005,0x0000025f,0x66664f69,0x00746573,0x00050005, + 0x00000263,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x00000268,0x61726170,0x0000006d, + 0x00040005,0x0000026a,0x61726170,0x0000006d,0x00040005,0x0000026e,0x6d615366,0x00656c70, + 0x00040005,0x00000271,0x61726170,0x0000006d,0x00040005,0x00000272,0x61726170,0x0000006d, + 0x00040005,0x00000274,0x69655766,0x00746867,0x00030005,0x0000028e,0x00765566,0x00040005, + 0x00000296,0x6c6f4366,0x0000726f,0x00050005,0x00000297,0x69655766,0x53746867,0x00006d75, + 0x00050005,0x00000298,0x78655469,0x657a6953,0x00000000,0x00050005,0x0000029a,0x70694d69, + 0x6576654c,0x0000006c,0x00050005,0x000002a5,0x70694d66,0x6f6c6f43,0x00000072,0x00040005, + 0x000002a8,0x61726170,0x0000006d,0x00070005,0x000002b0,0x726f4e66,0x696c616d,0x4d64657a, + 0x6f437069,0x00726f6c,0x00050005,0x000002b7,0x70694d66,0x67696557,0x00007468,0x00040005, + 0x000002be,0x61726170,0x0000006d,0x00040005,0x000002bf,0x61726170,0x0000006d,0x00050005, + 0x00000308,0x69725762,0x6f436574,0x00726f6c,0x00070005,0x0000030a,0x746e4966,0x6f707265, + 0x6574616c,0x6c6f4364,0x0000726f,0x00040005,0x0000030b,0x61726170,0x0000006d,0x00070005, + 0x0000030e,0x506e4966,0x746e6961,0x57676e69,0x68676965,0x00000074,0x00040005,0x00000316, + 0x61726170,0x0000006d,0x00040005,0x0000031e,0x61726170,0x0000006d,0x00040005,0x00000321, + 0x61726170,0x0000006d,0x00040005,0x00000322,0x61726170,0x0000006d,0x00090005,0x0000032f, + 0x72754366,0x746e6572,0x65746e49,0x6c6f7072,0x6f697461,0x756f536e,0x00656372,0x00040005, + 0x00000330,0x61726170,0x0000006d,0x00060005,0x00000333,0x65725066,0x746e6573,0x6f6c6f43, + 0x00000072,0x00040005,0x00000334,0x61726170,0x0000006d,0x00060005,0x00000342,0x61745366, + 0x46636974,0x6f746361,0x00000072,0x00040005,0x00000343,0x61726170,0x0000006d,0x00040005, + 0x00000346,0x61726170,0x0000006d,0x00040005,0x00000349,0x61726170,0x0000006d,0x00040005, + 0x0000034a,0x61726170,0x0000006d,0x00040005,0x00000350,0x61726170,0x0000006d,0x00040005, + 0x00000353,0x61726170,0x0000006d,0x00040005,0x00000355,0x61726170,0x0000006d,0x00040005, + 0x00000363,0x61726170,0x0000006d,0x00040005,0x00000365,0x61726170,0x0000006d,0x00040005, + 0x00000368,0x61726170,0x0000006d,0x00040005,0x00000378,0x61726170,0x0000006d,0x00040005, + 0x0000037a,0x61726170,0x0000006d,0x00040005,0x0000037d,0x61726170,0x0000006d,0x00040005, + 0x00000391,0x61726170,0x0000006d,0x00040005,0x00000393,0x61726170,0x0000006d,0x00080005, + 0x00000397,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x0000039b,0x61726170,0x0000006d,0x00060005,0x000003a2,0x694c5f73,0x7261656e,0x6d616c43, + 0x00000070,0x00030047,0x0000013d,0x00000002,0x00050048,0x0000013d,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000013d,0x00000001,0x00000023,0x00000008,0x00050048,0x0000013d, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000013d,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000013d,0x00000004,0x00000023,0x0000001c,0x00050048,0x0000013d,0x00000005, + 0x00000023,0x00000020,0x00050048,0x0000013d,0x00000006,0x00000023,0x00000028,0x00050048, + 0x0000013d,0x00000007,0x00000023,0x0000002c,0x00050048,0x0000013d,0x00000008,0x00000023, + 0x00000030,0x00050048,0x0000013d,0x00000009,0x00000023,0x00000040,0x00050048,0x0000013d, + 0x0000000a,0x00000023,0x00000044,0x00050048,0x0000013d,0x0000000b,0x00000023,0x00000048, + 0x00050048,0x0000013d,0x0000000c,0x00000023,0x00000050,0x00050048,0x0000013d,0x0000000d, + 0x00000023,0x00000058,0x00050048,0x0000013d,0x0000000e,0x00000023,0x0000005c,0x00050048, + 0x0000013d,0x0000000f,0x00000023,0x00000060,0x00050048,0x0000013d,0x00000010,0x00000023, + 0x00000068,0x00050048,0x0000013d,0x00000011,0x00000023,0x0000006c,0x00050048,0x0000013d, + 0x00000012,0x00000023,0x00000070,0x00050048,0x0000013d,0x00000013,0x00000023,0x00000078, + 0x00050048,0x0000013d,0x00000014,0x00000023,0x00000080,0x00050048,0x0000013d,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000013d,0x00000016,0x00000023,0x00000090,0x00050048, + 0x0000013d,0x00000017,0x00000023,0x00000098,0x00050048,0x0000013d,0x00000018,0x00000023, + 0x0000009c,0x00050048,0x0000013d,0x00000019,0x00000023,0x000000a0,0x00050048,0x0000013d, + 0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000013f,0x00000021,0x00000008,0x00040047, + 0x0000013f,0x00000022,0x00000000,0x00040047,0x00000171,0x00000021,0x00000003,0x00040047, + 0x00000171,0x00000022,0x00000000,0x00040047,0x0000017b,0x00000021,0x00000000,0x00040047, + 0x0000017b,0x00000022,0x00000000,0x00040047,0x00000186,0x00000021,0x00000001,0x00040047, + 0x00000186,0x00000022,0x00000000,0x00040047,0x0000018e,0x00000021,0x00000002,0x00040047, + 0x0000018e,0x00000022,0x00000000,0x00040047,0x00000196,0x00000021,0x00000007,0x00040047, + 0x00000196,0x00000022,0x00000000,0x00040047,0x00000397,0x0000000b,0x0000001c,0x00040047, + 0x000003a2,0x00000021,0x000003e8,0x00040047,0x000003a2,0x00000022,0x00000000,0x00040047, + 0x000003ae,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040020, + 0x0000000d,0x00000007,0x00000008,0x00040017,0x0000000e,0x00000008,0x00000003,0x00040021, + 0x0000000f,0x0000000e,0x0000000d,0x00040020,0x00000013,0x00000007,0x0000000e,0x00060021, + 0x00000014,0x0000000e,0x00000013,0x00000013,0x0000000d,0x00040021,0x0000001a,0x00000008, + 0x0000000d,0x00040021,0x0000001e,0x0000000e,0x00000013,0x00040017,0x00000022,0x00000008, + 0x00000002,0x00040020,0x00000023,0x00000007,0x00000022,0x00040021,0x00000024,0x00000022, + 0x00000023,0x00050021,0x00000028,0x00000008,0x0000000d,0x0000000d,0x00060021,0x00000035, + 0x0000000e,0x00000013,0x00000013,0x00000013,0x00040015,0x00000044,0x00000020,0x00000001, + 0x00040017,0x00000045,0x00000044,0x00000002,0x00030021,0x00000046,0x00000045,0x00020014, + 0x00000049,0x00030021,0x0000004a,0x00000049,0x00030021,0x0000004d,0x00000044,0x00030021, + 0x00000050,0x00000006,0x00030021,0x00000053,0x0000000e,0x00030021,0x00000058,0x00000008, + 0x00040020,0x0000005d,0x00000007,0x00000045,0x00040021,0x0000005e,0x0000000e,0x0000005d, + 0x00040020,0x00000064,0x00000007,0x00000044,0x00040017,0x00000065,0x00000006,0x00000002, + 0x00040020,0x00000066,0x00000007,0x00000065,0x00040017,0x00000067,0x00000008,0x00000004, + 0x00050021,0x00000068,0x00000067,0x00000064,0x00000066,0x00040021,0x0000006d,0x00000067, + 0x0000005d,0x00040020,0x00000074,0x00000007,0x00000067,0x00050021,0x00000075,0x00000002, + 0x0000005d,0x00000074,0x00060021,0x0000007a,0x0000000e,0x00000013,0x0000000d,0x0000000d, + 0x0004002b,0x00000006,0x00000083,0x00000004,0x0004001c,0x00000084,0x00000045,0x00000083, + 0x0004001c,0x00000085,0x00000008,0x00000083,0x0005001e,0x00000086,0x00000084,0x00000085, + 0x00000045,0x00050021,0x00000087,0x00000086,0x00000023,0x0000005d,0x00050021,0x0000008c, + 0x00000049,0x0000005d,0x0000005d,0x00050021,0x00000091,0x00000008,0x00000008,0x00000008, + 0x00050021,0x00000096,0x00000008,0x00000013,0x00000013,0x00060021,0x0000009b,0x00000067, + 0x00000023,0x00000044,0x00000045,0x00040020,0x000000a4,0x00000007,0x00000049,0x00060021, + 0x000000a5,0x00000002,0x0000005d,0x00000013,0x000000a4,0x00040021,0x000000b0,0x00000002, + 0x0000005d,0x0004002b,0x00000008,0x000000c4,0x00000000,0x0004002b,0x00000008,0x000000c5, + 0x3f800000,0x0004002b,0x00000006,0x000000f3,0xff800000,0x0004002b,0x00000008,0x000000ff, + 0x3c4fcd9e,0x0004002b,0x00000008,0x00000104,0x3f560008,0x0004002b,0x00000008,0x0000010a, + 0x4196d014,0x0004002b,0x00000008,0x0000010d,0x41958000,0x0004002b,0x00000008,0x00000114, + 0x40c8e061,0x0004002b,0x00000008,0x0000011b,0x3d25aee6,0x0004002b,0x00000008,0x0000011c, + 0x3d9e8391,0x0004002b,0x00000008,0x0000011d,0x4019999a,0x0006002c,0x0000000e,0x0000011e, + 0x0000011b,0x0000011c,0x0000011d,0x0004002b,0x00000008,0x00000120,0x3f72a76e,0x0004002b, + 0x00000008,0x00000121,0x3d558919,0x0005002c,0x00000022,0x00000122,0x00000120,0x00000121, + 0x001d001e,0x0000013d,0x00000045,0x00000045,0x00000022,0x00000008,0x00000008,0x00000045, + 0x00000044,0x00000044,0x00000067,0x00000008,0x00000044,0x00000045,0x00000022,0x00000044, + 0x00000006,0x00000045,0x00000044,0x00000044,0x00000045,0x00000045,0x0000000e,0x00000006, + 0x00000022,0x00000008,0x00000044,0x00000022,0x00000022,0x00040020,0x0000013e,0x00000002, + 0x0000013d,0x0004003b,0x0000013e,0x0000013f,0x00000002,0x0004002b,0x00000044,0x00000140, + 0x00000001,0x00040020,0x00000141,0x00000002,0x00000045,0x0004002b,0x00000044,0x00000146, + 0x00000007,0x00040020,0x00000147,0x00000002,0x00000044,0x0004002b,0x00000044,0x0000014d, + 0x0000000a,0x0004002b,0x00000044,0x00000152,0x0000000e,0x00040020,0x00000153,0x00000002, + 0x00000006,0x0004002b,0x00000044,0x00000158,0x00000014,0x00040020,0x00000159,0x00000002, + 0x0000000e,0x0004002b,0x00000044,0x0000015e,0x00000015,0x0004002b,0x00000044,0x00000163, + 0x00000016,0x0004002b,0x00000006,0x00000164,0x00000000,0x00040020,0x00000165,0x00000002, + 0x00000008,0x0004002b,0x00000006,0x0000016a,0x00000001,0x00090019,0x0000016f,0x00000008, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000170, + 0x00000000,0x0000016f,0x0004003b,0x00000170,0x00000171,0x00000000,0x0004002b,0x00000044, + 0x00000174,0x00000000,0x00090019,0x00000179,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x0000017a,0x00000000,0x00000179,0x0004003b, + 0x0000017a,0x0000017b,0x00000000,0x0005002c,0x00000045,0x0000017d,0x00000140,0x00000174, + 0x00040017,0x0000017e,0x00000006,0x00000004,0x0004002b,0x00000006,0x00000181,0x0000000f, + 0x0004003b,0x00000170,0x00000186,0x00000000,0x0004003b,0x00000170,0x0000018e,0x00000000, + 0x00090019,0x00000194,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x00000195,0x00000000,0x00000194,0x0004003b,0x00000195,0x00000196, + 0x00000000,0x0004002b,0x00000008,0x000001a2,0x42a00000,0x0004002b,0x00000008,0x000001be, + 0x461c4000,0x0004002b,0x00000008,0x000001d4,0x3f000000,0x0005002c,0x00000022,0x000001d5, + 0x000001d4,0x000001d4,0x00040020,0x000001d7,0x00000007,0x00000086,0x0004002b,0x00000044, + 0x000001d9,0x00000002,0x0005002c,0x00000045,0x000001e2,0x00000174,0x00000174,0x0005002c, + 0x00000045,0x000001e5,0x00000174,0x00000140,0x0004002b,0x00000044,0x000001e7,0x00000003, + 0x0005002c,0x00000045,0x000001e8,0x00000140,0x00000140,0x00040017,0x0000020d,0x00000049, + 0x00000002,0x0004002b,0x00000008,0x0000022b,0x3dcccccd,0x0004002b,0x00000006,0x00000238, + 0x00000002,0x0007002c,0x00000067,0x00000255,0x000000c4,0x000000c4,0x000000c4,0x000000c4, + 0x0004002b,0x00000044,0x0000025d,0x00000004,0x0004002b,0x00000006,0x00000278,0x00000003, + 0x0004002b,0x00000008,0x000002ba,0x41200000,0x0004002b,0x00000008,0x000002bd,0x40400000, + 0x0004002b,0x00000044,0x000002d9,0x00000010,0x00030029,0x00000049,0x000002de,0x0004002b, + 0x00000044,0x000002ed,0x00000020,0x0004002b,0x00000044,0x000002fe,0x00000040,0x0003002a, + 0x00000049,0x00000309,0x0004002b,0x00000008,0x00000312,0x3a83126f,0x0006002c,0x0000000e, + 0x0000033c,0x000000c4,0x000000c4,0x000000c4,0x00040017,0x0000033d,0x00000049,0x00000003, + 0x00040017,0x00000395,0x00000006,0x00000003,0x00040020,0x00000396,0x00000001,0x00000395, + 0x0004003b,0x00000396,0x00000397,0x00000001,0x0004002b,0x00000008,0x0000039d,0x387fda40, + 0x0004002b,0x00000008,0x0000039e,0x477fe000,0x0004002b,0x00000008,0x0000039f,0x37801002, + 0x0002001a,0x000003a0,0x00040020,0x000003a1,0x00000000,0x000003a0,0x0004003b,0x000003a1, + 0x000003a2,0x00000000,0x0004002b,0x00000008,0x000003a3,0x7f7fffff,0x0004002b,0x00000008, + 0x000003a4,0x00800000,0x0004002b,0x00000006,0x000003a5,0x00000020,0x0004002b,0x00000006, + 0x000003a6,0x00000010,0x0004002b,0x00000006,0x000003a7,0x00000005,0x0004002b,0x00000006, + 0x000003a8,0x0000000a,0x0004002b,0x00000006,0x000003a9,0x80000000,0x0004002b,0x00000006, + 0x000003aa,0x0000001f,0x0004002b,0x00000006,0x000003ab,0x000003ff,0x0004002b,0x00000006, + 0x000003ac,0x00000015,0x0004002b,0x00000006,0x000003ad,0x00000008,0x0006002c,0x00000395, + 0x000003ae,0x000003ad,0x000003ad,0x0000016a,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000005d,0x0000039b,0x00000007,0x0004003d, + 0x00000395,0x00000398,0x00000397,0x0007004f,0x00000065,0x00000399,0x00000398,0x00000398, + 0x00000000,0x00000001,0x0004007c,0x00000045,0x0000039a,0x00000399,0x0003003e,0x0000039b, + 0x0000039a,0x00050039,0x00000002,0x0000039c,0x000000b2,0x0000039b,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x000000b4,0x0000000a,0x0004007c,0x00000008, + 0x000000b5,0x000000b4,0x000200fe,0x000000b5,0x00010038,0x00050036,0x0000000e,0x00000011, + 0x00000000,0x0000000f,0x00030037,0x0000000d,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x00000008,0x000000b8,0x00000010,0x00060050,0x0000000e,0x000000b9,0x000000b8,0x000000b8, + 0x000000b8,0x000200fe,0x000000b9,0x00010038,0x00050036,0x0000000e,0x00000018,0x00000000, + 0x00000014,0x00030037,0x00000013,0x00000015,0x00030037,0x00000013,0x00000016,0x00030037, + 0x0000000d,0x00000017,0x000200f8,0x00000019,0x0004003d,0x0000000e,0x000000bc,0x00000015, + 0x0004003d,0x0000000e,0x000000bd,0x00000016,0x0004003d,0x00000008,0x000000be,0x00000017, + 0x00060050,0x0000000e,0x000000bf,0x000000be,0x000000be,0x000000be,0x0008000c,0x0000000e, + 0x000000c0,0x00000001,0x0000002e,0x000000bc,0x000000bd,0x000000bf,0x000200fe,0x000000c0, + 0x00010038,0x00050036,0x00000008,0x0000001c,0x00000000,0x0000001a,0x00030037,0x0000000d, + 0x0000001b,0x000200f8,0x0000001d,0x0004003d,0x00000008,0x000000c3,0x0000001b,0x0008000c, + 0x00000008,0x000000c6,0x00000001,0x0000002b,0x000000c3,0x000000c4,0x000000c5,0x000200fe, + 0x000000c6,0x00010038,0x00050036,0x0000000e,0x00000020,0x00000000,0x0000001e,0x00030037, + 0x00000013,0x0000001f,0x000200f8,0x00000021,0x0004003b,0x0000000d,0x000000ca,0x00000007, + 0x0004003b,0x0000000d,0x000000cc,0x00000007,0x0004003d,0x0000000e,0x000000c9,0x0000001f, + 0x0003003e,0x000000ca,0x000000c4,0x00050039,0x0000000e,0x000000cb,0x00000011,0x000000ca, + 0x0003003e,0x000000cc,0x000000c5,0x00050039,0x0000000e,0x000000cd,0x00000011,0x000000cc, + 0x0008000c,0x0000000e,0x000000ce,0x00000001,0x0000002b,0x000000c9,0x000000cb,0x000000cd, + 0x000200fe,0x000000ce,0x00010038,0x00050036,0x00000022,0x00000026,0x00000000,0x00000024, + 0x00030037,0x00000023,0x00000025,0x000200f8,0x00000027,0x0004003d,0x00000022,0x000000d1, + 0x00000025,0x0006000c,0x00000022,0x000000d2,0x00000001,0x0000000a,0x000000d1,0x000200fe, + 0x000000d2,0x00010038,0x00050036,0x00000008,0x0000002b,0x00000000,0x00000028,0x00030037, + 0x0000000d,0x00000029,0x00030037,0x0000000d,0x0000002a,0x000200f8,0x0000002c,0x0004003d, + 0x00000008,0x000000d5,0x00000029,0x0004003d,0x00000008,0x000000d6,0x0000002a,0x0007000c, + 0x00000008,0x000000d7,0x00000001,0x00000025,0x000000d5,0x000000d6,0x000200fe,0x000000d7, + 0x00010038,0x00050036,0x00000008,0x0000002f,0x00000000,0x00000028,0x00030037,0x0000000d, + 0x0000002d,0x00030037,0x0000000d,0x0000002e,0x000200f8,0x00000030,0x0004003d,0x00000008, + 0x000000da,0x0000002d,0x0004003d,0x00000008,0x000000db,0x0000002e,0x0007000c,0x00000008, + 0x000000dc,0x00000001,0x00000028,0x000000da,0x000000db,0x000200fe,0x000000dc,0x00010038, + 0x00050036,0x00000008,0x00000033,0x00000000,0x00000028,0x00030037,0x0000000d,0x00000031, + 0x00030037,0x0000000d,0x00000032,0x000200f8,0x00000034,0x0004003d,0x00000008,0x000000df, + 0x00000031,0x0004003d,0x00000008,0x000000e0,0x00000032,0x0007000c,0x00000008,0x000000e1, + 0x00000001,0x0000001a,0x000000df,0x000000e0,0x000200fe,0x000000e1,0x00010038,0x00050036, + 0x0000000e,0x00000039,0x00000000,0x00000035,0x00030037,0x00000013,0x00000036,0x00030037, + 0x00000013,0x00000037,0x00030037,0x00000013,0x00000038,0x000200f8,0x0000003a,0x0004003b, + 0x00000013,0x000000e4,0x00000007,0x0004003d,0x0000000e,0x000000e5,0x00000036,0x0004007f, + 0x0000000e,0x000000e6,0x000000e5,0x0004003d,0x0000000e,0x000000e7,0x00000038,0x00050085, + 0x0000000e,0x000000e8,0x000000e6,0x000000e7,0x0004003d,0x0000000e,0x000000e9,0x00000038, + 0x00050081,0x0000000e,0x000000ea,0x000000e8,0x000000e9,0x0003003e,0x000000e4,0x000000ea, + 0x0004003d,0x0000000e,0x000000eb,0x00000036,0x0004003d,0x0000000e,0x000000ec,0x00000037, + 0x00050085,0x0000000e,0x000000ed,0x000000eb,0x000000ec,0x0004003d,0x0000000e,0x000000ee, + 0x000000e4,0x00050081,0x0000000e,0x000000ef,0x000000ed,0x000000ee,0x000200fe,0x000000ef, + 0x00010038,0x00050036,0x0000000e,0x0000003c,0x00000000,0x0000001e,0x00030037,0x00000013, + 0x0000003b,0x000200f8,0x0000003d,0x0004003b,0x00000007,0x000000f4,0x00000007,0x0004003b, + 0x0000000d,0x000000f6,0x00000007,0x0004003b,0x00000013,0x000000f9,0x00000007,0x0004003d, + 0x0000000e,0x000000f2,0x0000003b,0x0003003e,0x000000f4,0x000000f3,0x00050039,0x00000008, + 0x000000f5,0x0000000b,0x000000f4,0x0003003e,0x000000f6,0x000000f5,0x00050039,0x0000000e, + 0x000000f7,0x00000011,0x000000f6,0x00050085,0x0000000e,0x000000f8,0x000000f2,0x000000f7, + 0x0003003e,0x000000f9,0x000000f8,0x00050039,0x0000000e,0x000000fa,0x00000020,0x000000f9, + 0x000200fe,0x000000fa,0x00010038,0x00050036,0x0000000e,0x0000003f,0x00000000,0x0000001e, + 0x00030037,0x00000013,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x00000013,0x000000fd, + 0x00000007,0x0004003b,0x0000000d,0x00000100,0x00000007,0x0004003b,0x0000000d,0x00000105, + 0x00000007,0x0004003b,0x00000013,0x00000108,0x00000007,0x0004003b,0x0000000d,0x0000010b, + 0x00000007,0x0004003b,0x0000000d,0x0000010e,0x00000007,0x0004003b,0x0000000d,0x00000115, + 0x00000007,0x0004003d,0x0000000e,0x000000fe,0x0000003e,0x0003003e,0x00000100,0x000000ff, + 0x00050039,0x0000000e,0x00000101,0x00000011,0x00000100,0x0007000c,0x0000000e,0x00000102, + 0x00000001,0x0000001a,0x000000fe,0x00000101,0x0003003e,0x000000fd,0x00000102,0x0004003d, + 0x0000000e,0x00000103,0x000000fd,0x0003003e,0x00000105,0x00000104,0x00050039,0x0000000e, + 0x00000106,0x00000011,0x00000105,0x00050083,0x0000000e,0x00000107,0x00000103,0x00000106, + 0x0003003e,0x00000108,0x00000107,0x00050039,0x0000000e,0x00000109,0x00000020,0x00000108, + 0x0003003e,0x0000010b,0x0000010a,0x00050039,0x0000000e,0x0000010c,0x00000011,0x0000010b, + 0x0003003e,0x0000010e,0x0000010d,0x00050039,0x0000000e,0x0000010f,0x00000011,0x0000010e, + 0x0004003d,0x0000000e,0x00000110,0x000000fd,0x00050085,0x0000000e,0x00000111,0x0000010f, + 0x00000110,0x00050083,0x0000000e,0x00000112,0x0000010c,0x00000111,0x00050088,0x0000000e, + 0x00000113,0x00000109,0x00000112,0x0003003e,0x00000115,0x00000114,0x00050039,0x0000000e, + 0x00000116,0x00000011,0x00000115,0x0007000c,0x0000000e,0x00000117,0x00000001,0x0000001a, + 0x00000113,0x00000116,0x000200fe,0x00000117,0x00010038,0x00050036,0x0000000e,0x00000042, + 0x00000000,0x0000001e,0x00030037,0x00000013,0x00000041,0x000200f8,0x00000043,0x0004003b, + 0x00000013,0x0000011a,0x00000007,0x0004003b,0x00000023,0x0000011f,0x00000007,0x0004003b, + 0x00000013,0x00000127,0x00000007,0x0004003b,0x00000013,0x00000137,0x00000007,0x0004003b, + 0x00000013,0x00000138,0x00000007,0x0004003b,0x00000013,0x00000139,0x00000007,0x0003003e, + 0x0000011a,0x0000011e,0x0003003e,0x0000011f,0x00000122,0x0004003d,0x0000000e,0x00000123, + 0x00000041,0x0004003d,0x0000000e,0x00000124,0x0000011a,0x0008004f,0x0000000e,0x00000125, + 0x00000124,0x00000124,0x00000000,0x00000000,0x00000000,0x00050083,0x0000000e,0x00000126, + 0x00000123,0x00000125,0x0003003e,0x00000127,0x00000126,0x00050039,0x0000000e,0x00000128, + 0x0000003c,0x00000127,0x0004003d,0x0000000e,0x00000129,0x00000041,0x0004003d,0x0000000e, + 0x0000012a,0x0000011a,0x0008004f,0x0000000e,0x0000012b,0x0000012a,0x0000012a,0x00000001, + 0x00000001,0x00000001,0x00050085,0x0000000e,0x0000012c,0x00000129,0x0000012b,0x0004003d, + 0x0000000e,0x0000012d,0x00000041,0x0004003d,0x00000022,0x0000012e,0x0000011f,0x0008004f, + 0x0000000e,0x0000012f,0x0000012e,0x0000012e,0x00000000,0x00000000,0x00000000,0x00050085, + 0x0000000e,0x00000130,0x0000012d,0x0000012f,0x0004003d,0x00000022,0x00000131,0x0000011f, + 0x0008004f,0x0000000e,0x00000132,0x00000131,0x00000131,0x00000001,0x00000001,0x00000001, + 0x00050081,0x0000000e,0x00000133,0x00000130,0x00000132,0x0004003d,0x0000000e,0x00000134, + 0x0000011a,0x0008004f,0x0000000e,0x00000135,0x00000134,0x00000134,0x00000002,0x00000002, + 0x00000002,0x0007000c,0x0000000e,0x00000136,0x00000001,0x0000001a,0x00000133,0x00000135, + 0x0003003e,0x00000137,0x00000128,0x0003003e,0x00000138,0x0000012c,0x0003003e,0x00000139, + 0x00000136,0x00070039,0x0000000e,0x0000013a,0x00000039,0x00000137,0x00000138,0x00000139, + 0x000200fe,0x0000013a,0x00010038,0x00050036,0x00000045,0x00000047,0x00000000,0x00000046, + 0x000200f8,0x00000048,0x00050041,0x00000141,0x00000142,0x0000013f,0x00000140,0x0004003d, + 0x00000045,0x00000143,0x00000142,0x000200fe,0x00000143,0x00010038,0x00050036,0x00000049, + 0x0000004b,0x00000000,0x0000004a,0x000200f8,0x0000004c,0x00050041,0x00000147,0x00000148, + 0x0000013f,0x00000146,0x0004003d,0x00000044,0x00000149,0x00000148,0x000500aa,0x00000049, + 0x0000014a,0x00000149,0x00000140,0x000200fe,0x0000014a,0x00010038,0x00050036,0x00000044, + 0x0000004e,0x00000000,0x0000004d,0x000200f8,0x0000004f,0x00050041,0x00000147,0x0000014e, + 0x0000013f,0x0000014d,0x0004003d,0x00000044,0x0000014f,0x0000014e,0x000200fe,0x0000014f, + 0x00010038,0x00050036,0x00000006,0x00000051,0x00000000,0x00000050,0x000200f8,0x00000052, + 0x00050041,0x00000153,0x00000154,0x0000013f,0x00000152,0x0004003d,0x00000006,0x00000155, + 0x00000154,0x000200fe,0x00000155,0x00010038,0x00050036,0x0000000e,0x00000054,0x00000000, + 0x00000053,0x000200f8,0x00000055,0x00050041,0x00000159,0x0000015a,0x0000013f,0x00000158, + 0x0004003d,0x0000000e,0x0000015b,0x0000015a,0x000200fe,0x0000015b,0x00010038,0x00050036, + 0x00000006,0x00000056,0x00000000,0x00000050,0x000200f8,0x00000057,0x00050041,0x00000153, + 0x0000015f,0x0000013f,0x0000015e,0x0004003d,0x00000006,0x00000160,0x0000015f,0x000200fe, + 0x00000160,0x00010038,0x00050036,0x00000008,0x00000059,0x00000000,0x00000058,0x000200f8, + 0x0000005a,0x00060041,0x00000165,0x00000166,0x0000013f,0x00000163,0x00000164,0x0004003d, + 0x00000008,0x00000167,0x00000166,0x000200fe,0x00000167,0x00010038,0x00050036,0x00000008, + 0x0000005b,0x00000000,0x00000058,0x000200f8,0x0000005c,0x00060041,0x00000165,0x0000016b, + 0x0000013f,0x00000163,0x0000016a,0x0004003d,0x00000008,0x0000016c,0x0000016b,0x000200fe, + 0x0000016c,0x00010038,0x00050036,0x0000000e,0x00000060,0x00000000,0x0000005e,0x00030037, + 0x0000005d,0x0000005f,0x000200f8,0x00000061,0x0004003d,0x0000016f,0x00000172,0x00000171, + 0x0004003d,0x00000045,0x00000173,0x0000005f,0x0007005f,0x00000067,0x00000175,0x00000172, + 0x00000173,0x00000002,0x00000174,0x0008004f,0x0000000e,0x00000176,0x00000175,0x00000175, + 0x00000000,0x00000001,0x00000002,0x000200fe,0x00000176,0x00010038,0x00050036,0x00000049, + 0x00000062,0x00000000,0x0000004a,0x000200f8,0x00000063,0x0004003d,0x00000179,0x0000017c, + 0x0000017b,0x0007005f,0x0000017e,0x0000017f,0x0000017c,0x0000017d,0x00000002,0x00000174, + 0x00050051,0x00000006,0x00000180,0x0000017f,0x00000000,0x000500c7,0x00000006,0x00000182, + 0x00000180,0x00000181,0x000500ab,0x00000049,0x00000183,0x00000182,0x00000164,0x000200fe, + 0x00000183,0x00010038,0x00050036,0x00000067,0x0000006b,0x00000000,0x00000068,0x00030037, + 0x00000064,0x00000069,0x00030037,0x00000066,0x0000006a,0x000200f8,0x0000006c,0x0004003d, + 0x0000016f,0x00000187,0x00000186,0x0004003d,0x00000065,0x00000188,0x0000006a,0x0004007c, + 0x00000045,0x00000189,0x00000188,0x0004003d,0x00000044,0x0000018a,0x00000069,0x0007005f, + 0x00000067,0x0000018b,0x00000187,0x00000189,0x00000002,0x0000018a,0x000200fe,0x0000018b, + 0x00010038,0x00050036,0x00000067,0x0000006f,0x00000000,0x0000006d,0x00030037,0x0000005d, + 0x0000006e,0x000200f8,0x00000070,0x0004003d,0x0000016f,0x0000018f,0x0000018e,0x0004003d, + 0x00000045,0x00000190,0x0000006e,0x0007005f,0x00000067,0x00000191,0x0000018f,0x00000190, + 0x00000002,0x00000174,0x000200fe,0x00000191,0x00010038,0x00050036,0x00000067,0x00000072, + 0x00000000,0x0000006d,0x00030037,0x0000005d,0x00000071,0x000200f8,0x00000073,0x0004003d, + 0x00000194,0x00000197,0x00000196,0x0004003d,0x00000045,0x00000198,0x00000071,0x00050062, + 0x00000067,0x00000199,0x00000197,0x00000198,0x000200fe,0x00000199,0x00010038,0x00050036, + 0x00000002,0x00000078,0x00000000,0x00000075,0x00030037,0x0000005d,0x00000076,0x00030037, + 0x00000074,0x00000077,0x000200f8,0x00000079,0x0004003d,0x00000194,0x0000019c,0x00000196, + 0x0004003d,0x00000045,0x0000019d,0x00000076,0x0004003d,0x00000067,0x0000019e,0x00000077, + 0x00040063,0x0000019c,0x0000019d,0x0000019e,0x000100fd,0x00010038,0x00050036,0x0000000e, + 0x0000007e,0x00000000,0x0000007a,0x00030037,0x00000013,0x0000007b,0x00030037,0x0000000d, + 0x0000007c,0x00030037,0x0000000d,0x0000007d,0x000200f8,0x0000007f,0x0004003b,0x00000013, + 0x0000019f,0x00000007,0x0004003b,0x0000000d,0x000001a4,0x00000007,0x0004003b,0x0000000d, + 0x000001ac,0x00000007,0x0004003d,0x0000000e,0x000001a0,0x0000007b,0x0004003d,0x00000008, + 0x000001a1,0x0000007c,0x00050088,0x00000008,0x000001a3,0x000001a1,0x000001a2,0x0003003e, + 0x000001a4,0x000001a3,0x00050039,0x0000000e,0x000001a5,0x00000011,0x000001a4,0x00050083, + 0x0000000e,0x000001a6,0x000001a0,0x000001a5,0x0003003e,0x0000019f,0x000001a6,0x0004003d, + 0x0000000e,0x000001a7,0x0000019f,0x0004003d,0x00000008,0x000001a8,0x0000007d,0x0004003d, + 0x00000008,0x000001a9,0x0000007c,0x00050083,0x00000008,0x000001aa,0x000001a8,0x000001a9, + 0x00050088,0x00000008,0x000001ab,0x000001aa,0x000001a2,0x0003003e,0x000001ac,0x000001ab, + 0x00050039,0x0000000e,0x000001ad,0x00000011,0x000001ac,0x00050088,0x0000000e,0x000001ae, + 0x000001a7,0x000001ad,0x000200fe,0x000001ae,0x00010038,0x00050036,0x0000000e,0x00000081, + 0x00000000,0x0000001e,0x00030037,0x00000013,0x00000080,0x000200f8,0x00000082,0x0004003b, + 0x00000013,0x000001b6,0x00000007,0x0004003b,0x00000013,0x000001b7,0x00000007,0x0004003b, + 0x00000013,0x000001bb,0x00000007,0x0004003b,0x00000013,0x000001c5,0x00000007,0x0004003b, + 0x0000000d,0x000001c7,0x00000007,0x0004003b,0x0000000d,0x000001c8,0x00000007,0x00040039, + 0x00000006,0x000001b1,0x00000056,0x000300f7,0x000001b5,0x00000000,0x000900fb,0x000001b1, + 0x000001b5,0x00000000,0x000001b2,0x00000001,0x000001b3,0x00000002,0x000001b4,0x000200f8, + 0x000001b2,0x0004003d,0x0000000e,0x000001b8,0x00000080,0x0003003e,0x000001b7,0x000001b8, + 0x00050039,0x0000000e,0x000001b9,0x00000042,0x000001b7,0x0003003e,0x000001b6,0x000001b9, + 0x000200f9,0x000001b5,0x000200f8,0x000001b3,0x0004003d,0x0000000e,0x000001bc,0x00000080, + 0x0003003e,0x000001bb,0x000001bc,0x00050039,0x0000000e,0x000001bd,0x0000003f,0x000001bb, + 0x00040039,0x00000008,0x000001bf,0x0000005b,0x00050088,0x00000008,0x000001c0,0x000001be, + 0x000001bf,0x0005008e,0x0000000e,0x000001c1,0x000001bd,0x000001c0,0x0003003e,0x000001b6, + 0x000001c1,0x000200f9,0x000001b5,0x000200f8,0x000001b4,0x00040039,0x00000008,0x000001c3, + 0x00000059,0x00040039,0x00000008,0x000001c4,0x0000005b,0x0004003d,0x0000000e,0x000001c6, + 0x00000080,0x0003003e,0x000001c5,0x000001c6,0x0003003e,0x000001c7,0x000001c3,0x0003003e, + 0x000001c8,0x000001c4,0x00070039,0x0000000e,0x000001c9,0x0000007e,0x000001c5,0x000001c7, + 0x000001c8,0x0003003e,0x000001b6,0x000001c9,0x000200f9,0x000001b5,0x000200f8,0x000001b5, + 0x0004003d,0x0000000e,0x000001cc,0x000001b6,0x000200fe,0x000001cc,0x00010038,0x00050036, + 0x00000086,0x0000008a,0x00000000,0x00000087,0x00030037,0x00000023,0x00000088,0x00030037, + 0x0000005d,0x00000089,0x000200f8,0x0000008b,0x0004003b,0x00000023,0x000001cf,0x00000007, + 0x0004003b,0x000001d7,0x000001d8,0x00000007,0x0004003b,0x00000023,0x000001de,0x00000007, + 0x0004003b,0x00000023,0x000001df,0x00000007,0x0004003d,0x00000022,0x000001d0,0x00000088, + 0x0004003d,0x00000045,0x000001d1,0x00000089,0x0004006f,0x00000022,0x000001d2,0x000001d1, + 0x00050085,0x00000022,0x000001d3,0x000001d0,0x000001d2,0x00050083,0x00000022,0x000001d6, + 0x000001d3,0x000001d5,0x0003003e,0x000001cf,0x000001d6,0x0004003d,0x00000022,0x000001da, + 0x000001cf,0x0006000c,0x00000022,0x000001db,0x00000001,0x00000008,0x000001da,0x0004006e, + 0x00000045,0x000001dc,0x000001db,0x00050041,0x0000005d,0x000001dd,0x000001d8,0x000001d9, + 0x0003003e,0x000001dd,0x000001dc,0x0004003d,0x00000022,0x000001e0,0x000001cf,0x0003003e, + 0x000001df,0x000001e0,0x00050039,0x00000022,0x000001e1,0x00000026,0x000001df,0x0003003e, + 0x000001de,0x000001e1,0x00060041,0x0000005d,0x000001e3,0x000001d8,0x00000174,0x00000174, + 0x0003003e,0x000001e3,0x000001e2,0x00060041,0x0000005d,0x000001e4,0x000001d8,0x00000174, + 0x00000140,0x0003003e,0x000001e4,0x0000017d,0x00060041,0x0000005d,0x000001e6,0x000001d8, + 0x00000174,0x000001d9,0x0003003e,0x000001e6,0x000001e5,0x00060041,0x0000005d,0x000001e9, + 0x000001d8,0x00000174,0x000001e7,0x0003003e,0x000001e9,0x000001e8,0x00050041,0x0000000d, + 0x000001ea,0x000001de,0x00000164,0x0004003d,0x00000008,0x000001eb,0x000001ea,0x00050083, + 0x00000008,0x000001ec,0x000000c5,0x000001eb,0x00050041,0x0000000d,0x000001ed,0x000001de, + 0x0000016a,0x0004003d,0x00000008,0x000001ee,0x000001ed,0x00050083,0x00000008,0x000001ef, + 0x000000c5,0x000001ee,0x00050085,0x00000008,0x000001f0,0x000001ec,0x000001ef,0x00060041, + 0x0000000d,0x000001f1,0x000001d8,0x00000140,0x00000174,0x0003003e,0x000001f1,0x000001f0, + 0x00050041,0x0000000d,0x000001f2,0x000001de,0x00000164,0x0004003d,0x00000008,0x000001f3, + 0x000001f2,0x00050041,0x0000000d,0x000001f4,0x000001de,0x0000016a,0x0004003d,0x00000008, + 0x000001f5,0x000001f4,0x00050083,0x00000008,0x000001f6,0x000000c5,0x000001f5,0x00050085, + 0x00000008,0x000001f7,0x000001f3,0x000001f6,0x00060041,0x0000000d,0x000001f8,0x000001d8, + 0x00000140,0x00000140,0x0003003e,0x000001f8,0x000001f7,0x00050041,0x0000000d,0x000001f9, + 0x000001de,0x00000164,0x0004003d,0x00000008,0x000001fa,0x000001f9,0x00050083,0x00000008, + 0x000001fb,0x000000c5,0x000001fa,0x00050041,0x0000000d,0x000001fc,0x000001de,0x0000016a, + 0x0004003d,0x00000008,0x000001fd,0x000001fc,0x00050085,0x00000008,0x000001fe,0x000001fb, + 0x000001fd,0x00060041,0x0000000d,0x000001ff,0x000001d8,0x00000140,0x000001d9,0x0003003e, + 0x000001ff,0x000001fe,0x00050041,0x0000000d,0x00000200,0x000001de,0x00000164,0x0004003d, + 0x00000008,0x00000201,0x00000200,0x00050041,0x0000000d,0x00000202,0x000001de,0x0000016a, + 0x0004003d,0x00000008,0x00000203,0x00000202,0x00050085,0x00000008,0x00000204,0x00000201, + 0x00000203,0x00060041,0x0000000d,0x00000205,0x000001d8,0x00000140,0x000001e7,0x0003003e, + 0x00000205,0x00000204,0x0004003d,0x00000086,0x00000206,0x000001d8,0x000200fe,0x00000206, + 0x00010038,0x00050036,0x00000049,0x0000008f,0x00000000,0x0000008c,0x00030037,0x0000005d, + 0x0000008d,0x00030037,0x0000005d,0x0000008e,0x000200f8,0x00000090,0x0004003d,0x00000045, + 0x00000209,0x0000008d,0x0004007c,0x00000065,0x0000020a,0x00000209,0x0004003d,0x00000045, + 0x0000020b,0x0000008e,0x0004007c,0x00000065,0x0000020c,0x0000020b,0x000500b0,0x0000020d, + 0x0000020e,0x0000020a,0x0000020c,0x0004009b,0x00000049,0x0000020f,0x0000020e,0x000200fe, + 0x0000020f,0x00010038,0x00050036,0x00000008,0x00000094,0x00000000,0x00000091,0x00030037, + 0x00000008,0x00000092,0x00030037,0x00000008,0x00000093,0x000200f8,0x00000095,0x0004003b, + 0x0000000d,0x00000212,0x00000007,0x0004003b,0x0000000d,0x00000213,0x00000007,0x0004003b, + 0x0000000d,0x00000214,0x00000007,0x0004003b,0x0000000d,0x00000218,0x00000007,0x0004003b, + 0x0000000d,0x0000021b,0x00000007,0x0004003b,0x0000000d,0x0000021c,0x00000007,0x0003003e, + 0x00000213,0x00000092,0x0003003e,0x00000214,0x00000093,0x00060039,0x00000008,0x00000215, + 0x0000002f,0x00000213,0x00000214,0x0003003e,0x00000212,0x00000215,0x0004003d,0x00000008, + 0x00000216,0x00000212,0x000500b7,0x00000049,0x00000217,0x00000216,0x000000c4,0x000300f7, + 0x0000021a,0x00000000,0x000400fa,0x00000217,0x00000219,0x00000220,0x000200f8,0x00000219, + 0x0003003e,0x0000021b,0x00000092,0x0003003e,0x0000021c,0x00000093,0x00060039,0x00000008, + 0x0000021d,0x0000002b,0x0000021b,0x0000021c,0x0004003d,0x00000008,0x0000021e,0x00000212, + 0x00050088,0x00000008,0x0000021f,0x0000021d,0x0000021e,0x0003003e,0x00000218,0x0000021f, + 0x000200f9,0x0000021a,0x000200f8,0x00000220,0x0003003e,0x00000218,0x000000c4,0x000200f9, + 0x0000021a,0x000200f8,0x0000021a,0x0004003d,0x00000008,0x00000221,0x00000218,0x000200fe, + 0x00000221,0x00010038,0x00050036,0x00000008,0x00000099,0x00000000,0x00000096,0x00030037, + 0x00000013,0x00000097,0x00030037,0x00000013,0x00000098,0x000200f8,0x0000009a,0x0004003b, + 0x00000013,0x00000224,0x00000007,0x0004003b,0x0000000d,0x0000022d,0x00000007,0x0004003b, + 0x0000000d,0x00000236,0x00000007,0x0004003b,0x0000000d,0x00000240,0x00000007,0x0004003b, + 0x00000013,0x00000243,0x00000007,0x00050041,0x0000000d,0x00000225,0x00000097,0x00000164, + 0x0004003d,0x00000008,0x00000226,0x00000225,0x00050041,0x0000000d,0x00000227,0x00000098, + 0x00000164,0x0004003d,0x00000008,0x00000228,0x00000227,0x00060039,0x00000008,0x00000229, + 0x00000094,0x00000226,0x00000228,0x00050083,0x00000008,0x0000022a,0x000000c5,0x00000229, + 0x00050088,0x00000008,0x0000022c,0x0000022a,0x0000022b,0x0003003e,0x0000022d,0x0000022c, + 0x00050039,0x00000008,0x0000022e,0x0000001c,0x0000022d,0x00050041,0x0000000d,0x0000022f, + 0x00000097,0x0000016a,0x0004003d,0x00000008,0x00000230,0x0000022f,0x00050041,0x0000000d, + 0x00000231,0x00000098,0x0000016a,0x0004003d,0x00000008,0x00000232,0x00000231,0x00060039, + 0x00000008,0x00000233,0x00000094,0x00000230,0x00000232,0x00050083,0x00000008,0x00000234, + 0x000000c5,0x00000233,0x00050088,0x00000008,0x00000235,0x00000234,0x0000022b,0x0003003e, + 0x00000236,0x00000235,0x00050039,0x00000008,0x00000237,0x0000001c,0x00000236,0x00050041, + 0x0000000d,0x00000239,0x00000097,0x00000238,0x0004003d,0x00000008,0x0000023a,0x00000239, + 0x00050041,0x0000000d,0x0000023b,0x00000098,0x00000238,0x0004003d,0x00000008,0x0000023c, + 0x0000023b,0x00060039,0x00000008,0x0000023d,0x00000094,0x0000023a,0x0000023c,0x00050083, + 0x00000008,0x0000023e,0x000000c5,0x0000023d,0x00050088,0x00000008,0x0000023f,0x0000023e, + 0x0000022b,0x0003003e,0x00000240,0x0000023f,0x00050039,0x00000008,0x00000241,0x0000001c, + 0x00000240,0x00060050,0x0000000e,0x00000242,0x0000022e,0x00000237,0x00000241,0x0003003e, + 0x00000243,0x00000242,0x00050039,0x0000000e,0x00000244,0x00000020,0x00000243,0x0003003e, + 0x00000224,0x00000244,0x00050041,0x0000000d,0x00000245,0x00000224,0x00000164,0x0004003d, + 0x00000008,0x00000246,0x00000245,0x00050041,0x0000000d,0x00000247,0x00000224,0x0000016a, + 0x0004003d,0x00000008,0x00000248,0x00000247,0x00050041,0x0000000d,0x00000249,0x00000224, + 0x00000238,0x0004003d,0x00000008,0x0000024a,0x00000249,0x0007000c,0x00000008,0x0000024b, + 0x00000001,0x00000028,0x00000248,0x0000024a,0x0007000c,0x00000008,0x0000024c,0x00000001, + 0x00000028,0x00000246,0x0000024b,0x000200fe,0x0000024c,0x00010038,0x00050036,0x00000067, + 0x0000009f,0x00000000,0x0000009b,0x00030037,0x00000023,0x0000009c,0x00030037,0x00000044, + 0x0000009d,0x00030037,0x00000045,0x0000009e,0x000200f8,0x000000a0,0x0004003b,0x000001d7, + 0x0000024f,0x00000007,0x0004003b,0x00000023,0x00000250,0x00000007,0x0004003b,0x0000005d, + 0x00000252,0x00000007,0x0004003b,0x00000074,0x00000254,0x00000007,0x0004003b,0x00000064, + 0x00000256,0x00000007,0x0004003b,0x0000005d,0x0000025f,0x00000007,0x0004003b,0x0000005d, + 0x00000263,0x00000007,0x0004003b,0x0000005d,0x00000268,0x00000007,0x0004003b,0x0000005d, + 0x0000026a,0x00000007,0x0004003b,0x00000074,0x0000026e,0x00000007,0x0004003b,0x00000064, + 0x00000271,0x00000007,0x0004003b,0x00000066,0x00000272,0x00000007,0x0004003b,0x0000000d, + 0x00000274,0x00000007,0x0004003d,0x00000022,0x00000251,0x0000009c,0x0003003e,0x00000250, + 0x00000251,0x0003003e,0x00000252,0x0000009e,0x00060039,0x00000086,0x00000253,0x0000008a, + 0x00000250,0x00000252,0x0003003e,0x0000024f,0x00000253,0x0003003e,0x00000254,0x00000255, + 0x0003003e,0x00000256,0x00000174,0x000200f9,0x00000257,0x000200f8,0x00000257,0x000400f6, + 0x00000259,0x0000025a,0x00000000,0x000200f9,0x0000025b,0x000200f8,0x0000025b,0x0004003d, + 0x00000044,0x0000025c,0x00000256,0x000500b1,0x00000049,0x0000025e,0x0000025c,0x0000025d, + 0x000400fa,0x0000025e,0x00000258,0x00000259,0x000200f8,0x00000258,0x0004003d,0x00000044, + 0x00000260,0x00000256,0x00060041,0x0000005d,0x00000261,0x0000024f,0x00000174,0x00000260, + 0x0004003d,0x00000045,0x00000262,0x00000261,0x0003003e,0x0000025f,0x00000262,0x00050041, + 0x0000005d,0x00000264,0x0000024f,0x000001d9,0x0004003d,0x00000045,0x00000265,0x00000264, + 0x0004003d,0x00000045,0x00000266,0x0000025f,0x00050080,0x00000045,0x00000267,0x00000265, + 0x00000266,0x0003003e,0x00000263,0x00000267,0x0004003d,0x00000045,0x00000269,0x00000263, + 0x0003003e,0x00000268,0x00000269,0x0003003e,0x0000026a,0x0000009e,0x00060039,0x00000049, + 0x0000026b,0x0000008f,0x00000268,0x0000026a,0x000300f7,0x0000026d,0x00000000,0x000400fa, + 0x0000026b,0x0000026c,0x0000026d,0x000200f8,0x0000026c,0x0004003d,0x00000045,0x0000026f, + 0x00000263,0x0004007c,0x00000065,0x00000270,0x0000026f,0x0003003e,0x00000271,0x0000009d, + 0x0003003e,0x00000272,0x00000270,0x00060039,0x00000067,0x00000273,0x0000006b,0x00000271, + 0x00000272,0x0003003e,0x0000026e,0x00000273,0x0004003d,0x00000044,0x00000275,0x00000256, + 0x00060041,0x0000000d,0x00000276,0x0000024f,0x00000140,0x00000275,0x0004003d,0x00000008, + 0x00000277,0x00000276,0x00050041,0x0000000d,0x00000279,0x0000026e,0x00000278,0x0004003d, + 0x00000008,0x0000027a,0x00000279,0x000500ba,0x00000049,0x0000027b,0x0000027a,0x000000c4, + 0x000600a9,0x00000008,0x0000027c,0x0000027b,0x000000c5,0x000000c4,0x00050085,0x00000008, + 0x0000027d,0x00000277,0x0000027c,0x0003003e,0x00000274,0x0000027d,0x0004003d,0x00000067, + 0x0000027e,0x0000026e,0x0008004f,0x0000000e,0x0000027f,0x0000027e,0x0000027e,0x00000000, + 0x00000001,0x00000002,0x0004003d,0x00000008,0x00000280,0x00000274,0x0005008e,0x0000000e, + 0x00000281,0x0000027f,0x00000280,0x0004003d,0x00000008,0x00000282,0x00000274,0x00050051, + 0x00000008,0x00000283,0x00000281,0x00000000,0x00050051,0x00000008,0x00000284,0x00000281, + 0x00000001,0x00050051,0x00000008,0x00000285,0x00000281,0x00000002,0x00070050,0x00000067, + 0x00000286,0x00000283,0x00000284,0x00000285,0x00000282,0x0004003d,0x00000067,0x00000287, + 0x00000254,0x00050081,0x00000067,0x00000288,0x00000287,0x00000286,0x0003003e,0x00000254, + 0x00000288,0x000200f9,0x0000026d,0x000200f8,0x0000026d,0x000200f9,0x0000025a,0x000200f8, + 0x0000025a,0x0004003d,0x00000044,0x00000289,0x00000256,0x00050080,0x00000044,0x0000028a, + 0x00000289,0x00000140,0x0003003e,0x00000256,0x0000028a,0x000200f9,0x00000257,0x000200f8, + 0x00000259,0x0004003d,0x00000067,0x0000028b,0x00000254,0x000200fe,0x0000028b,0x00010038, + 0x00050036,0x0000000e,0x000000a2,0x00000000,0x0000005e,0x00030037,0x0000005d,0x000000a1, + 0x000200f8,0x000000a3,0x0004003b,0x00000023,0x0000028e,0x00000007,0x0004003b,0x00000074, + 0x00000296,0x00000007,0x0004003b,0x0000000d,0x00000297,0x00000007,0x0004003b,0x0000005d, + 0x00000298,0x00000007,0x0004003b,0x00000064,0x0000029a,0x00000007,0x0004003b,0x00000074, + 0x000002a5,0x00000007,0x0004003b,0x00000023,0x000002a8,0x00000007,0x0004003b,0x00000013, + 0x000002b0,0x00000007,0x0004003b,0x0000000d,0x000002b7,0x00000007,0x0004003b,0x0000000d, + 0x000002be,0x00000007,0x0004003b,0x0000000d,0x000002bf,0x00000007,0x0004003d,0x00000045, + 0x0000028f,0x000000a1,0x0004006f,0x00000022,0x00000290,0x0000028f,0x00050050,0x00000022, + 0x00000291,0x000001d4,0x000001d4,0x00050081,0x00000022,0x00000292,0x00000290,0x00000291, + 0x00040039,0x00000045,0x00000293,0x00000047,0x0004006f,0x00000022,0x00000294,0x00000293, + 0x00050088,0x00000022,0x00000295,0x00000292,0x00000294,0x0003003e,0x0000028e,0x00000295, + 0x0003003e,0x00000296,0x00000255,0x0003003e,0x00000297,0x000000c4,0x00040039,0x00000045, + 0x00000299,0x00000047,0x0003003e,0x00000298,0x00000299,0x0003003e,0x0000029a,0x00000174, + 0x000200f9,0x0000029b,0x000200f8,0x0000029b,0x000400f6,0x0000029d,0x0000029e,0x00000000, + 0x000200f9,0x0000029f,0x000200f8,0x0000029f,0x0004003d,0x00000044,0x000002a0,0x0000029a, + 0x000500b1,0x00000049,0x000002a1,0x000002a0,0x0000014d,0x000400fa,0x000002a1,0x0000029c, + 0x0000029d,0x000200f8,0x0000029c,0x0004003d,0x00000045,0x000002a2,0x00000298,0x00050050, + 0x00000045,0x000002a3,0x000001d9,0x000001d9,0x00050087,0x00000045,0x000002a4,0x000002a2, + 0x000002a3,0x0003003e,0x00000298,0x000002a4,0x0004003d,0x00000044,0x000002a6,0x0000029a, + 0x0004003d,0x00000045,0x000002a7,0x00000298,0x0004003d,0x00000022,0x000002a9,0x0000028e, + 0x0003003e,0x000002a8,0x000002a9,0x00070039,0x00000067,0x000002aa,0x0000009f,0x000002a8, + 0x000002a6,0x000002a7,0x0003003e,0x000002a5,0x000002aa,0x00050041,0x0000000d,0x000002ab, + 0x000002a5,0x00000278,0x0004003d,0x00000008,0x000002ac,0x000002ab,0x000500ba,0x00000049, + 0x000002ad,0x000002ac,0x000000c4,0x000300f7,0x000002af,0x00000000,0x000400fa,0x000002ad, + 0x000002ae,0x000002af,0x000200f8,0x000002ae,0x0004003d,0x00000067,0x000002b1,0x000002a5, + 0x0008004f,0x0000000e,0x000002b2,0x000002b1,0x000002b1,0x00000000,0x00000001,0x00000002, + 0x00050041,0x0000000d,0x000002b3,0x000002a5,0x00000278,0x0004003d,0x00000008,0x000002b4, + 0x000002b3,0x00060050,0x0000000e,0x000002b5,0x000002b4,0x000002b4,0x000002b4,0x00050088, + 0x0000000e,0x000002b6,0x000002b2,0x000002b5,0x0003003e,0x000002b0,0x000002b6,0x0004003d, + 0x00000044,0x000002b8,0x0000029a,0x0004006f,0x00000008,0x000002b9,0x000002b8,0x00050088, + 0x00000008,0x000002bb,0x000002b9,0x000002ba,0x00050083,0x00000008,0x000002bc,0x000000c5, + 0x000002bb,0x0003003e,0x000002be,0x000002bc,0x0003003e,0x000002bf,0x000002bd,0x00060039, + 0x00000008,0x000002c0,0x00000033,0x000002be,0x000002bf,0x00050041,0x0000000d,0x000002c1, + 0x000002a5,0x00000278,0x0004003d,0x00000008,0x000002c2,0x000002c1,0x00050085,0x00000008, + 0x000002c3,0x000002c0,0x000002c2,0x0003003e,0x000002b7,0x000002c3,0x0004003d,0x0000000e, + 0x000002c4,0x000002b0,0x00050051,0x00000008,0x000002c5,0x000002c4,0x00000000,0x00050051, + 0x00000008,0x000002c6,0x000002c4,0x00000001,0x00050051,0x00000008,0x000002c7,0x000002c4, + 0x00000002,0x00070050,0x00000067,0x000002c8,0x000002c5,0x000002c6,0x000002c7,0x000000c5, + 0x0004003d,0x00000008,0x000002c9,0x000002b7,0x0005008e,0x00000067,0x000002ca,0x000002c8, + 0x000002c9,0x0004003d,0x00000067,0x000002cb,0x00000296,0x00050081,0x00000067,0x000002cc, + 0x000002cb,0x000002ca,0x0003003e,0x00000296,0x000002cc,0x000200f9,0x000002af,0x000200f8, + 0x000002af,0x000200f9,0x0000029e,0x000200f8,0x0000029e,0x0004003d,0x00000044,0x000002cd, + 0x0000029a,0x00050080,0x00000044,0x000002ce,0x000002cd,0x00000140,0x0003003e,0x0000029a, + 0x000002ce,0x000200f9,0x0000029b,0x000200f8,0x0000029d,0x0004003d,0x00000067,0x000002cf, + 0x00000296,0x0008004f,0x0000000e,0x000002d0,0x000002cf,0x000002cf,0x00000000,0x00000001, + 0x00000002,0x00050041,0x0000000d,0x000002d1,0x00000296,0x00000278,0x0004003d,0x00000008, + 0x000002d2,0x000002d1,0x00060050,0x0000000e,0x000002d3,0x000002d2,0x000002d2,0x000002d2, + 0x00050088,0x0000000e,0x000002d4,0x000002d0,0x000002d3,0x000200fe,0x000002d4,0x00010038, + 0x00050036,0x00000002,0x000000a9,0x00000000,0x000000a5,0x00030037,0x0000005d,0x000000a6, + 0x00030037,0x00000013,0x000000a7,0x00030037,0x000000a4,0x000000a8,0x000200f8,0x000000aa, + 0x00050041,0x00000064,0x000002d7,0x000000a6,0x00000164,0x0004003d,0x00000044,0x000002d8, + 0x000002d7,0x000500b1,0x00000049,0x000002da,0x000002d8,0x000002d9,0x000300f7,0x000002dc, + 0x00000000,0x000400fa,0x000002da,0x000002db,0x000002df,0x000200f8,0x000002db,0x00050041, + 0x0000000d,0x000002dd,0x000000a7,0x0000016a,0x0003003e,0x000002dd,0x000000c5,0x0003003e, + 0x000000a8,0x000002de,0x000200f9,0x000002dc,0x000200f8,0x000002df,0x00050041,0x00000064, + 0x000002e0,0x000000a6,0x00000164,0x0004003d,0x00000044,0x000002e1,0x000002e0,0x00040039, + 0x00000045,0x000002e2,0x00000047,0x00050051,0x00000044,0x000002e3,0x000002e2,0x00000000, + 0x00050082,0x00000044,0x000002e4,0x000002e3,0x000002d9,0x000500ad,0x00000049,0x000002e5, + 0x000002e1,0x000002e4,0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002e5,0x000002e6, + 0x000002e7,0x000200f8,0x000002e6,0x00040039,0x0000000e,0x000002e8,0x00000054,0x0004003d, + 0x0000000e,0x000002e9,0x000000a7,0x00050081,0x0000000e,0x000002ea,0x000002e9,0x000002e8, + 0x0003003e,0x000000a7,0x000002ea,0x0003003e,0x000000a8,0x000002de,0x000200f9,0x000002e7, + 0x000200f8,0x000002e7,0x000200f9,0x000002dc,0x000200f8,0x000002dc,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000ae,0x00000000,0x000000a5,0x00030037,0x0000005d,0x000000ab, + 0x00030037,0x00000013,0x000000ac,0x00030037,0x000000a4,0x000000ad,0x000200f8,0x000000af, + 0x00050041,0x00000064,0x000002eb,0x000000ab,0x0000016a,0x0004003d,0x00000044,0x000002ec, + 0x000002eb,0x000500b1,0x00000049,0x000002ee,0x000002ec,0x000002ed,0x000300f7,0x000002f0, + 0x00000000,0x000400fa,0x000002ee,0x000002ef,0x000002f0,0x000200f8,0x000002ef,0x00040039, + 0x00000049,0x000002f1,0x0000004b,0x000200f9,0x000002f0,0x000200f8,0x000002f0,0x000700f5, + 0x00000049,0x000002f2,0x000002ee,0x000000af,0x000002f1,0x000002ef,0x000300f7,0x000002f4, + 0x00000000,0x000400fa,0x000002f2,0x000002f3,0x000002f6,0x000200f8,0x000002f3,0x00050041, + 0x0000000d,0x000002f5,0x000000ac,0x00000164,0x0003003e,0x000002f5,0x000000c5,0x0003003e, + 0x000000ad,0x000002de,0x000200f9,0x000002f4,0x000200f8,0x000002f6,0x00050041,0x00000064, + 0x000002f7,0x000000ab,0x0000016a,0x0004003d,0x00000044,0x000002f8,0x000002f7,0x000500ad, + 0x00000049,0x000002f9,0x000002f8,0x000002ed,0x000300f7,0x000002fb,0x00000000,0x000400fa, + 0x000002f9,0x000002fa,0x000002fb,0x000200f8,0x000002fa,0x00050041,0x00000064,0x000002fc, + 0x000000ab,0x0000016a,0x0004003d,0x00000044,0x000002fd,0x000002fc,0x000500b1,0x00000049, + 0x000002ff,0x000002fd,0x000002fe,0x000200f9,0x000002fb,0x000200f8,0x000002fb,0x000700f5, + 0x00000049,0x00000300,0x000002f9,0x000002f6,0x000002ff,0x000002fa,0x000300f7,0x00000302, + 0x00000000,0x000400fa,0x00000300,0x00000301,0x00000302,0x000200f8,0x00000301,0x00040039, + 0x00000049,0x00000303,0x00000062,0x000200f9,0x00000302,0x000200f8,0x00000302,0x000700f5, + 0x00000049,0x00000304,0x00000300,0x000002fb,0x00000303,0x00000301,0x000300f7,0x00000306, + 0x00000000,0x000400fa,0x00000304,0x00000305,0x00000306,0x000200f8,0x00000305,0x00050041, + 0x0000000d,0x00000307,0x000000ac,0x00000238,0x0003003e,0x00000307,0x000000c5,0x0003003e, + 0x000000ad,0x000002de,0x000200f9,0x00000306,0x000200f8,0x00000306,0x000200f9,0x000002f4, + 0x000200f8,0x000002f4,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b2,0x00000000, + 0x000000b0,0x00030037,0x0000005d,0x000000b1,0x000200f8,0x000000b3,0x0004003b,0x000000a4, + 0x00000308,0x00000007,0x0004003b,0x00000074,0x0000030a,0x00000007,0x0004003b,0x0000005d, + 0x0000030b,0x00000007,0x0004003b,0x0000000d,0x0000030e,0x00000007,0x0004003b,0x0000005d, + 0x00000316,0x00000007,0x0004003b,0x00000013,0x0000031e,0x00000007,0x0004003b,0x00000013, + 0x00000321,0x00000007,0x0004003b,0x0000000d,0x00000322,0x00000007,0x0004003b,0x00000013, + 0x0000032f,0x00000007,0x0004003b,0x0000005d,0x00000330,0x00000007,0x0004003b,0x00000013, + 0x00000333,0x00000007,0x0004003b,0x0000005d,0x00000334,0x00000007,0x0004003b,0x0000000d, + 0x00000342,0x00000007,0x0004003b,0x00000013,0x00000343,0x00000007,0x0004003b,0x00000013, + 0x00000346,0x00000007,0x0004003b,0x00000013,0x00000349,0x00000007,0x0004003b,0x00000013, + 0x0000034a,0x00000007,0x0004003b,0x00000013,0x00000350,0x00000007,0x0004003b,0x00000013, + 0x00000353,0x00000007,0x0004003b,0x0000000d,0x00000355,0x00000007,0x0004003b,0x0000005d, + 0x00000363,0x00000007,0x0004003b,0x00000013,0x00000365,0x00000007,0x0004003b,0x000000a4, + 0x00000368,0x00000007,0x0004003b,0x0000005d,0x00000378,0x00000007,0x0004003b,0x00000013, + 0x0000037a,0x00000007,0x0004003b,0x000000a4,0x0000037d,0x00000007,0x0004003b,0x0000005d, + 0x00000391,0x00000007,0x0004003b,0x00000074,0x00000393,0x00000007,0x0003003e,0x00000308, + 0x00000309,0x0004003d,0x00000045,0x0000030c,0x000000b1,0x0003003e,0x0000030b,0x0000030c, + 0x00050039,0x00000067,0x0000030d,0x00000072,0x0000030b,0x0003003e,0x0000030a,0x0000030d, + 0x00050041,0x0000000d,0x0000030f,0x0000030a,0x00000278,0x0004003d,0x00000008,0x00000310, + 0x0000030f,0x0003003e,0x0000030e,0x00000310,0x0004003d,0x00000008,0x00000311,0x0000030e, + 0x000500ba,0x00000049,0x00000313,0x00000311,0x00000312,0x000300f7,0x00000315,0x00000000, + 0x000400fa,0x00000313,0x00000314,0x00000315,0x000200f8,0x00000314,0x0004003d,0x00000045, + 0x00000317,0x000000b1,0x0003003e,0x00000316,0x00000317,0x00050039,0x0000000e,0x00000318, + 0x000000a2,0x00000316,0x00040039,0x00000045,0x00000319,0x00000047,0x00050051,0x00000044, + 0x0000031a,0x00000319,0x00000000,0x000500ad,0x00000049,0x0000031b,0x0000031a,0x00000174, + 0x000600a9,0x00000008,0x0000031c,0x0000031b,0x000000c5,0x000000c4,0x0005008e,0x0000000e, + 0x0000031d,0x00000318,0x0000031c,0x0004003d,0x00000067,0x0000031f,0x0000030a,0x0008004f, + 0x0000000e,0x00000320,0x0000031f,0x0000031f,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x0000031e,0x00000320,0x0003003e,0x00000321,0x0000031d,0x0004003d,0x00000008,0x00000323, + 0x0000030e,0x0003003e,0x00000322,0x00000323,0x00070039,0x0000000e,0x00000324,0x00000018, + 0x0000031e,0x00000321,0x00000322,0x00050041,0x0000000d,0x00000325,0x0000030a,0x00000164, + 0x00050051,0x00000008,0x00000326,0x00000324,0x00000000,0x0003003e,0x00000325,0x00000326, + 0x00050041,0x0000000d,0x00000327,0x0000030a,0x0000016a,0x00050051,0x00000008,0x00000328, + 0x00000324,0x00000001,0x0003003e,0x00000327,0x00000328,0x00050041,0x0000000d,0x00000329, + 0x0000030a,0x00000238,0x00050051,0x00000008,0x0000032a,0x00000324,0x00000002,0x0003003e, + 0x00000329,0x0000032a,0x0003003e,0x00000308,0x000002de,0x000200f9,0x00000315,0x000200f8, + 0x00000315,0x00040039,0x00000044,0x0000032b,0x0000004e,0x000500aa,0x00000049,0x0000032c, + 0x0000032b,0x00000140,0x000300f7,0x0000032e,0x00000000,0x000400fa,0x0000032c,0x0000032d, + 0x0000032e,0x000200f8,0x0000032d,0x0004003d,0x00000045,0x00000331,0x000000b1,0x0003003e, + 0x00000330,0x00000331,0x00050039,0x0000000e,0x00000332,0x00000060,0x00000330,0x0003003e, + 0x0000032f,0x00000332,0x0004003d,0x00000045,0x00000335,0x000000b1,0x0003003e,0x00000334, + 0x00000335,0x00050039,0x00000067,0x00000336,0x0000006f,0x00000334,0x0008004f,0x0000000e, + 0x00000337,0x00000336,0x00000336,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000333, + 0x00000337,0x0004003d,0x0000000e,0x00000338,0x0000032f,0x0004003d,0x0000000e,0x00000339, + 0x00000333,0x00050083,0x0000000e,0x0000033a,0x00000338,0x00000339,0x0006000c,0x0000000e, + 0x0000033b,0x00000001,0x00000004,0x0000033a,0x000500ba,0x0000033d,0x0000033e,0x0000033b, + 0x0000033c,0x0004009a,0x00000049,0x0000033f,0x0000033e,0x000300f7,0x00000341,0x00000000, + 0x000400fa,0x0000033f,0x00000340,0x00000341,0x000200f8,0x00000340,0x0004003d,0x0000000e, + 0x00000344,0x0000032f,0x0003003e,0x00000343,0x00000344,0x00050039,0x0000000e,0x00000345, + 0x00000081,0x00000343,0x0004003d,0x0000000e,0x00000347,0x00000333,0x0003003e,0x00000346, + 0x00000347,0x00050039,0x0000000e,0x00000348,0x00000081,0x00000346,0x0003003e,0x00000349, + 0x00000345,0x0003003e,0x0000034a,0x00000348,0x00060039,0x00000008,0x0000034b,0x00000099, + 0x00000349,0x0000034a,0x0003003e,0x00000342,0x0000034b,0x0004003d,0x00000008,0x0000034c, + 0x00000342,0x000500ba,0x00000049,0x0000034d,0x0000034c,0x00000312,0x000300f7,0x0000034f, + 0x00000000,0x000400fa,0x0000034d,0x0000034e,0x0000034f,0x000200f8,0x0000034e,0x0004003d, + 0x00000067,0x00000351,0x0000030a,0x0008004f,0x0000000e,0x00000352,0x00000351,0x00000351, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000350,0x00000352,0x0004003d,0x0000000e, + 0x00000354,0x00000333,0x0003003e,0x00000353,0x00000354,0x0004003d,0x00000008,0x00000356, + 0x00000342,0x0003003e,0x00000355,0x00000356,0x00070039,0x0000000e,0x00000357,0x00000018, + 0x00000350,0x00000353,0x00000355,0x00050041,0x0000000d,0x00000358,0x0000030a,0x00000164, + 0x00050051,0x00000008,0x00000359,0x00000357,0x00000000,0x0003003e,0x00000358,0x00000359, + 0x00050041,0x0000000d,0x0000035a,0x0000030a,0x0000016a,0x00050051,0x00000008,0x0000035b, + 0x00000357,0x00000001,0x0003003e,0x0000035a,0x0000035b,0x00050041,0x0000000d,0x0000035c, + 0x0000030a,0x00000238,0x00050051,0x00000008,0x0000035d,0x00000357,0x00000002,0x0003003e, + 0x0000035c,0x0000035d,0x0003003e,0x00000308,0x000002de,0x000200f9,0x0000034f,0x000200f8, + 0x0000034f,0x000200f9,0x00000341,0x000200f8,0x00000341,0x000200f9,0x0000032e,0x000200f8, + 0x0000032e,0x00040039,0x00000006,0x0000035e,0x00000051,0x000500c7,0x00000006,0x0000035f, + 0x0000035e,0x0000016a,0x000500ab,0x00000049,0x00000360,0x0000035f,0x00000164,0x000300f7, + 0x00000362,0x00000000,0x000400fa,0x00000360,0x00000361,0x00000362,0x000200f8,0x00000361, + 0x0004003d,0x00000045,0x00000364,0x000000b1,0x0003003e,0x00000363,0x00000364,0x0004003d, + 0x00000067,0x00000366,0x0000030a,0x0008004f,0x0000000e,0x00000367,0x00000366,0x00000366, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000365,0x00000367,0x0004003d,0x00000049, + 0x00000369,0x00000308,0x0003003e,0x00000368,0x00000369,0x00070039,0x00000002,0x0000036a, + 0x000000a9,0x00000363,0x00000365,0x00000368,0x0004003d,0x0000000e,0x0000036b,0x00000365, + 0x00050041,0x0000000d,0x0000036c,0x0000030a,0x00000164,0x00050051,0x00000008,0x0000036d, + 0x0000036b,0x00000000,0x0003003e,0x0000036c,0x0000036d,0x00050041,0x0000000d,0x0000036e, + 0x0000030a,0x0000016a,0x00050051,0x00000008,0x0000036f,0x0000036b,0x00000001,0x0003003e, + 0x0000036e,0x0000036f,0x00050041,0x0000000d,0x00000370,0x0000030a,0x00000238,0x00050051, + 0x00000008,0x00000371,0x0000036b,0x00000002,0x0003003e,0x00000370,0x00000371,0x0004003d, + 0x00000049,0x00000372,0x00000368,0x0003003e,0x00000308,0x00000372,0x000200f9,0x00000362, + 0x000200f8,0x00000362,0x00040039,0x00000006,0x00000373,0x00000051,0x000500c7,0x00000006, + 0x00000374,0x00000373,0x00000238,0x000500ab,0x00000049,0x00000375,0x00000374,0x00000164, + 0x000300f7,0x00000377,0x00000000,0x000400fa,0x00000375,0x00000376,0x00000377,0x000200f8, + 0x00000376,0x0004003d,0x00000045,0x00000379,0x000000b1,0x0003003e,0x00000378,0x00000379, + 0x0004003d,0x00000067,0x0000037b,0x0000030a,0x0008004f,0x0000000e,0x0000037c,0x0000037b, + 0x0000037b,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000037a,0x0000037c,0x0004003d, + 0x00000049,0x0000037e,0x00000308,0x0003003e,0x0000037d,0x0000037e,0x00070039,0x00000002, + 0x0000037f,0x000000ae,0x00000378,0x0000037a,0x0000037d,0x0004003d,0x0000000e,0x00000380, + 0x0000037a,0x00050041,0x0000000d,0x00000381,0x0000030a,0x00000164,0x00050051,0x00000008, + 0x00000382,0x00000380,0x00000000,0x0003003e,0x00000381,0x00000382,0x00050041,0x0000000d, + 0x00000383,0x0000030a,0x0000016a,0x00050051,0x00000008,0x00000384,0x00000380,0x00000001, + 0x0003003e,0x00000383,0x00000384,0x00050041,0x0000000d,0x00000385,0x0000030a,0x00000238, + 0x00050051,0x00000008,0x00000386,0x00000380,0x00000002,0x0003003e,0x00000385,0x00000386, + 0x0004003d,0x00000049,0x00000387,0x0000037d,0x0003003e,0x00000308,0x00000387,0x000200f9, + 0x00000377,0x000200f8,0x00000377,0x0004003d,0x00000049,0x00000388,0x00000308,0x000300f7, + 0x0000038a,0x00000000,0x000400fa,0x00000388,0x00000389,0x0000038a,0x000200f8,0x00000389, + 0x0004003d,0x00000067,0x0000038b,0x0000030a,0x0008004f,0x0000000e,0x0000038c,0x0000038b, + 0x0000038b,0x00000000,0x00000001,0x00000002,0x00050051,0x00000008,0x0000038d,0x0000038c, + 0x00000000,0x00050051,0x00000008,0x0000038e,0x0000038c,0x00000001,0x00050051,0x00000008, + 0x0000038f,0x0000038c,0x00000002,0x00070050,0x00000067,0x00000390,0x0000038d,0x0000038e, + 0x0000038f,0x000000c5,0x0004003d,0x00000045,0x00000392,0x000000b1,0x0003003e,0x00000391, + 0x00000392,0x0003003e,0x00000393,0x00000390,0x00060039,0x00000002,0x00000394,0x00000078, + 0x00000391,0x00000393,0x000200f9,0x0000038a,0x000200f8,0x0000038a,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h new file mode 100644 index 000000000..1ce0de0d1 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h @@ -0,0 +1,1488 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_INPAINTING_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000726,0x00000000,0x00020011,0x00000001,0x00020011, + 0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x0000070d,0x00000711,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001, + 0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004, + 0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d, + 0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47,0x735f5248,0x65646168, + 0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a, + 0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666, + 0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005, + 0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962, + 0x00000000,0x00060005,0x00000017,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x00000016,0x00000078,0x000a0005,0x0000001c,0x52786666,0x70616d65,0x57726f46,0x52657661, + 0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000001b,0x00000061,0x00080005, + 0x00000021,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00002865,0x00080005, + 0x00000023,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00002865,0x00060005, + 0x00000025,0x70736944,0x5379616c,0x28657a69,0x00000000,0x00050005,0x00000028,0x4d6d754e, + 0x28737069,0x00000000,0x00060005,0x0000002a,0x576d754e,0x476b726f,0x70756f72,0x00002873, + 0x00070005,0x0000002d,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000,0x000b0005, + 0x00000033,0x64616f4c,0x6d617246,0x746e4965,0x6f707265,0x6974616c,0x754f6e6f,0x74757074, + 0x32697628,0x0000003b,0x00050005,0x00000032,0x49785069,0x7475706e,0x00000000,0x00070005, + 0x00000039,0x726f7453,0x756f4365,0x7265746e,0x3b316928,0x003b3175,0x00040005,0x00000037, + 0x50785069,0x0000736f,0x00040005,0x00000038,0x6e756f63,0x00726574,0x000a0005,0x0000003d, + 0x6d6f7441,0x6e496369,0x61657263,0x6f436573,0x65746e75,0x31692872,0x3b31753b,0x00000000, + 0x00040005,0x0000003b,0x50785069,0x0000736f,0x00040005,0x0000003c,0x56646c6f,0x00006c61, + 0x000a0005,0x00000042,0x6f4c5752,0x6e496461,0x6e696170,0x676e6974,0x61727950,0x2864696d, + 0x3b326976,0x003b3175,0x00040005,0x00000040,0x50785069,0x0000736f,0x00040005,0x00000041, + 0x65646e69,0x00000078,0x000b0005,0x00000049,0x726f7453,0x706e4965,0x746e6961,0x50676e69, + 0x6d617279,0x76286469,0x763b3269,0x753b3466,0x00003b31,0x00040005,0x00000046,0x50785069, + 0x0000736f,0x00050005,0x00000047,0x5674756f,0x65756c61,0x00000000,0x00040005,0x00000048, + 0x65646e69,0x00000078,0x00090005,0x0000004d,0x4c647053,0x5364616f,0x6372756f,0x616d4965, + 0x76286567,0x753b3269,0x00003b31,0x00030005,0x0000004b,0x00786574,0x00040005,0x0000004c, + 0x63696c73,0x00000065,0x00060005,0x00000051,0x4c647053,0x2864616f,0x3b326976,0x003b3175, + 0x00030005,0x0000004f,0x00786574,0x00040005,0x00000050,0x63696c73,0x00000065,0x00080005, + 0x00000058,0x53647053,0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005, + 0x00000054,0x00786970,0x00050005,0x00000055,0x5674756f,0x65756c61,0x00000000,0x00040005, + 0x00000056,0x65646e69,0x00000078,0x00040005,0x00000057,0x63696c73,0x00000065,0x000a0005, + 0x0000005c,0x49647053,0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528, + 0x00000000,0x00040005,0x0000005b,0x63696c73,0x00000065,0x00080005,0x0000005e,0x47647053, + 0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000,0x00090005,0x00000061,0x52647053, + 0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000060, + 0x63696c73,0x00000065,0x00090005,0x00000066,0x4c647053,0x4964616f,0x7265746e,0x6964656d, + 0x28657461,0x753b3175,0x00003b31,0x00030005,0x00000064,0x00000078,0x00030005,0x00000065, + 0x00000079,0x000a0005,0x0000006c,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169, + 0x3b317528,0x763b3175,0x003b3466,0x00030005,0x00000069,0x00000078,0x00030005,0x0000006a, + 0x00000079,0x00040005,0x0000006b,0x756c6176,0x00000065,0x00090005,0x00000073,0x52647053, + 0x63756465,0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x0000006f, + 0x00003076,0x00030005,0x00000070,0x00003176,0x00030005,0x00000071,0x00003276,0x00030005, + 0x00000072,0x00003376,0x000a0005,0x00000075,0x53786666,0x6f576470,0x72676b72,0x5370756f, + 0x66667568,0x6142656c,0x65697272,0x00002872,0x00090005,0x0000007c,0x45647053,0x57746978, + 0x676b726f,0x70756f72,0x3b317528,0x753b3175,0x00003b31,0x00060005,0x00000079,0x576d756e, + 0x476b726f,0x70756f72,0x00000073,0x00080005,0x0000007a,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x0000007b,0x63696c73,0x00000065,0x00070005, + 0x00000080,0x52647053,0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005,0x0000007f, + 0x00000076,0x000b0005,0x00000089,0x52647053,0x63756465,0x616f4c65,0x76283464,0x763b3275, + 0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x00000084,0x00003069,0x00030005, + 0x00000085,0x00003169,0x00030005,0x00000086,0x00003269,0x00030005,0x00000087,0x00003369, + 0x00040005,0x00000088,0x63696c73,0x00000065,0x00080005,0x0000008e,0x52647053,0x63756465, + 0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x0000008c,0x65736162,0x00000000, + 0x00040005,0x0000008d,0x63696c73,0x00000065,0x000e0005,0x00000095,0x52647053,0x63756465, + 0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32,0x75763b32, + 0x31753b32,0x0000003b,0x00030005,0x00000090,0x00003069,0x00030005,0x00000091,0x00003169, + 0x00030005,0x00000092,0x00003269,0x00030005,0x00000093,0x00003369,0x00040005,0x00000094, + 0x63696c73,0x00000065,0x000b0005,0x00000099,0x52647053,0x63756465,0x616f4c65,0x756f5364, + 0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005,0x00000097,0x65736162, + 0x00000000,0x00040005,0x00000098,0x63696c73,0x00000065,0x00100005,0x000000a2,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973,0x3b317528, + 0x763b3175,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x0000009c,0x00000078, + 0x00030005,0x0000009d,0x00000079,0x00050005,0x0000009e,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x0000009f,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000a0,0x0070696d,0x00040005,0x000000a1,0x63696c73,0x00000065,0x000d0005, + 0x000000aa,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b, + 0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000a4,0x00000078,0x00030005, + 0x000000a5,0x00000079,0x00050005,0x000000a6,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000a7,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000a8,0x0070696d,0x00040005,0x000000a9,0x63696c73,0x00000065,0x000c0005,0x000000b2, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000ac,0x00000078,0x00030005,0x000000ad,0x00000079, + 0x00050005,0x000000ae,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000af,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000b0,0x0070696d, + 0x00040005,0x000000b1,0x63696c73,0x00000065,0x000c0005,0x000000ba,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000b4,0x00000078,0x00030005,0x000000b5,0x00000079,0x00050005,0x000000b6, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000b7,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000b8,0x0070696d,0x00040005,0x000000b9, + 0x63696c73,0x00000065,0x000c0005,0x000000c2,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000bc, + 0x00000078,0x00030005,0x000000bd,0x00000079,0x00050005,0x000000be,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000bf,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000c0,0x0070696d,0x00040005,0x000000c1,0x63696c73,0x00000065, + 0x000b0005,0x000000c9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00050005,0x000000c5,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000c6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000c7,0x0070696d,0x00040005,0x000000c8,0x63696c73,0x00000065,0x000b0005, + 0x000000d0,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000cc,0x00000078,0x00030005,0x000000cd,0x00000079, + 0x00040005,0x000000ce,0x7370696d,0x00000000,0x00040005,0x000000cf,0x63696c73,0x00000065, + 0x000e0005,0x000000da,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000d3, + 0x00000078,0x00030005,0x000000d4,0x00000079,0x00050005,0x000000d5,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000d6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x000000d7,0x65736162,0x0070694d,0x00040005,0x000000d8,0x7370696d, + 0x00000000,0x00040005,0x000000d9,0x63696c73,0x00000065,0x000a0005,0x000000e2,0x44647053, + 0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005, + 0x000000dd,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000de,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x000000df,0x7370696d,0x00000000, + 0x00060005,0x000000e0,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000e1, + 0x63696c73,0x00000065,0x000b0005,0x000000eb,0x44647053,0x736e776f,0x6c706d61,0x75762865, + 0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x000000e5,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000e6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000e7,0x7370696d,0x00000000,0x00060005,0x000000e8, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000e9,0x63696c73,0x00000065, + 0x00060005,0x000000ea,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x000f0005,0x000000f2, + 0x706d6f63,0x46657475,0x656d6172,0x65746e69,0x6c6f7072,0x6f697461,0x706e496e,0x746e6961, + 0x50676e69,0x6d617279,0x76286469,0x693b3369,0x00003b31,0x00050005,0x000000f0,0x6f724769, + 0x64497075,0x00000000,0x00050005,0x000000f1,0x636f4c69,0x6e496c61,0x00786564,0x00040005, + 0x0000010c,0x61726170,0x0000006d,0x00040005,0x0000010e,0x61726170,0x0000006d,0x00040005, + 0x0000010f,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170,0x0000006d,0x00040005, + 0x00000113,0x61726170,0x0000006d,0x00040005,0x00000115,0x61726170,0x0000006d,0x00040005, + 0x00000117,0x61726170,0x0000006d,0x00040005,0x00000119,0x61726170,0x0000006d,0x00040005, + 0x0000011a,0x61726170,0x0000006d,0x00040005,0x0000011c,0x61726170,0x0000006d,0x00040005, + 0x0000011e,0x61726170,0x0000006d,0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005, + 0x00000121,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005, + 0x00000123,0x61726170,0x0000006d,0x00040005,0x0000012a,0x49466263,0x0000745f,0x00060006, + 0x0000012a,0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006,0x0000012a,0x00000001, + 0x70736964,0x5379616c,0x00657a69,0x00070006,0x0000012a,0x00000002,0x70736964,0x5379616c, + 0x52657a69,0x00007063,0x00060006,0x0000012a,0x00000003,0x656d6163,0x654e6172,0x00007261, + 0x00060006,0x0000012a,0x00000004,0x656d6163,0x61466172,0x00000072,0x00080006,0x0000012a, + 0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a,0x00050006,0x0000012a, + 0x00000006,0x65646f4d,0x00000000,0x00050006,0x0000012a,0x00000007,0x65736572,0x00000074, + 0x00080006,0x0000012a,0x00000008,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00060006,0x0000012a,0x00000009,0x746c6564,0x6d695461,0x00000065,0x00090006,0x0000012a, + 0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006, + 0x0000012a,0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006, + 0x0000012a,0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006, + 0x0000012a,0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000, + 0x00070006,0x0000012a,0x0000000e,0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006, + 0x0000012a,0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065,0x00090006,0x0000012a, + 0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006, + 0x0000012a,0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000,0x00090006,0x0000012a, + 0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006, + 0x0000012a,0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065, + 0x00070006,0x0000012a,0x00000014,0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006, + 0x0000012a,0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e, + 0x00006e6f,0x00070006,0x0000012a,0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e, + 0x00060006,0x0000012a,0x00000017,0x6e615466,0x666c6148,0x00564f46,0x00050006,0x0000012a, + 0x00000018,0x6461705f,0x00000031,0x00050006,0x0000012a,0x00000019,0x74694a66,0x00726574, + 0x00080006,0x0000012a,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c, + 0x00040005,0x0000012c,0x49466263,0x00000000,0x00080005,0x0000013d,0x6e496263,0x6e696170, + 0x676e6974,0x61727950,0x5f64696d,0x00000074,0x00050006,0x0000013d,0x00000000,0x7370696d, + 0x00000000,0x00070006,0x0000013d,0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00070006,0x0000013d,0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00070005, + 0x0000013f,0x6e496263,0x6e696170,0x676e6974,0x61727950,0x0064696d,0x00050005,0x00000151, + 0x756f5f72,0x74757074,0x00000000,0x000a0005,0x00000158,0x6d617246,0x746e4965,0x6f707265, + 0x6974616c,0x57526e6f,0x6e756f43,0x73726574,0x0000745f,0x00050006,0x00000158,0x00000000, + 0x61746164,0x00000000,0x00050005,0x0000015a,0x635f7772,0x746e756f,0x00737265,0x00080005, + 0x00000169,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003064,0x00080005, + 0x00000172,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003164,0x00080005, + 0x0000017b,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003264,0x00080005, + 0x00000184,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003364,0x00080005, + 0x0000018e,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003464,0x00080005, + 0x00000198,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003564,0x00080005, + 0x000001a2,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003664,0x00080005, + 0x000001ac,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003764,0x00080005, + 0x000001b6,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003864,0x00080005, + 0x000001c0,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00003964,0x00080005, + 0x000001ca,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00303164,0x00080005, + 0x000001d4,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00313164,0x00080005, + 0x000001de,0x695f7772,0x6961706e,0x6e69746e,0x79705f67,0x696d6172,0x00323164,0x00040005, + 0x00000241,0x6c6f4366,0x0000726f,0x00040005,0x00000242,0x61726170,0x0000006d,0x00040005, + 0x0000024d,0x61726170,0x0000006d,0x00040005,0x0000027c,0x61726170,0x0000006d,0x00040005, + 0x0000027e,0x61726170,0x0000006d,0x00040005,0x00000282,0x61726170,0x0000006d,0x00040005, + 0x00000284,0x61726170,0x0000006d,0x00040005,0x00000286,0x61726170,0x0000006d,0x00050005, + 0x0000028a,0x43647073,0x746e756f,0x00007265,0x00040005,0x0000028b,0x61726170,0x0000006d, + 0x00040005,0x0000028c,0x61726170,0x0000006d,0x00040005,0x00000292,0x61726170,0x0000006d, + 0x00040005,0x00000293,0x61726170,0x0000006d,0x00070005,0x00000299,0x49647073,0x7265746e, + 0x6964656d,0x52657461,0x00000000,0x00070005,0x0000029f,0x49647073,0x7265746e,0x6964656d, + 0x47657461,0x00000000,0x00070005,0x000002a4,0x49647073,0x7265746e,0x6964656d,0x42657461, + 0x00000000,0x00070005,0x000002a9,0x49647073,0x7265746e,0x6964656d,0x41657461,0x00000000, + 0x00030005,0x000002c5,0x00000077,0x00030005,0x000002cf,0x006d7573,0x00040005,0x000002fe, + 0x61726170,0x0000006d,0x00030005,0x00000308,0x00003076,0x00030005,0x0000030a,0x00003176, + 0x00030005,0x0000030d,0x00003276,0x00030005,0x00000310,0x00003376,0x00040005,0x00000313, + 0x61726170,0x0000006d,0x00040005,0x00000315,0x61726170,0x0000006d,0x00040005,0x00000317, + 0x61726170,0x0000006d,0x00040005,0x00000319,0x61726170,0x0000006d,0x00030005,0x00000320, + 0x00003076,0x00040005,0x00000323,0x61726170,0x0000006d,0x00040005,0x00000324,0x61726170, + 0x0000006d,0x00030005,0x00000327,0x00003176,0x00040005,0x0000032a,0x61726170,0x0000006d, + 0x00040005,0x0000032b,0x61726170,0x0000006d,0x00030005,0x0000032e,0x00003276,0x00040005, + 0x00000331,0x61726170,0x0000006d,0x00040005,0x00000332,0x61726170,0x0000006d,0x00030005, + 0x00000335,0x00003376,0x00040005,0x00000338,0x61726170,0x0000006d,0x00040005,0x00000339, + 0x61726170,0x0000006d,0x00040005,0x0000033c,0x61726170,0x0000006d,0x00040005,0x0000033e, + 0x61726170,0x0000006d,0x00040005,0x00000340,0x61726170,0x0000006d,0x00040005,0x00000342, + 0x61726170,0x0000006d,0x00040005,0x00000353,0x61726170,0x0000006d,0x00040005,0x00000354, + 0x61726170,0x0000006d,0x00040005,0x00000355,0x61726170,0x0000006d,0x00040005,0x00000356, + 0x61726170,0x0000006d,0x00040005,0x00000357,0x61726170,0x0000006d,0x00030005,0x0000035c, + 0x00003076,0x00040005,0x0000035f,0x61726170,0x0000006d,0x00040005,0x00000360,0x61726170, + 0x0000006d,0x00030005,0x00000363,0x00003176,0x00040005,0x00000366,0x61726170,0x0000006d, + 0x00040005,0x00000367,0x61726170,0x0000006d,0x00030005,0x0000036a,0x00003276,0x00040005, + 0x0000036d,0x61726170,0x0000006d,0x00040005,0x0000036e,0x61726170,0x0000006d,0x00030005, + 0x00000371,0x00003376,0x00040005,0x00000374,0x61726170,0x0000006d,0x00040005,0x00000375, + 0x61726170,0x0000006d,0x00040005,0x00000378,0x61726170,0x0000006d,0x00040005,0x0000037a, + 0x61726170,0x0000006d,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005,0x0000037e, + 0x61726170,0x0000006d,0x00040005,0x0000038b,0x61726170,0x0000006d,0x00040005,0x0000038c, + 0x61726170,0x0000006d,0x00040005,0x0000038d,0x61726170,0x0000006d,0x00040005,0x0000038e, + 0x61726170,0x0000006d,0x00040005,0x0000038f,0x61726170,0x0000006d,0x00030005,0x00000394, + 0x00786574,0x00030005,0x000003a2,0x00786970,0x00030005,0x000003b0,0x00000076,0x00040005, + 0x000003b3,0x61726170,0x0000006d,0x00040005,0x000003b4,0x61726170,0x0000006d,0x00040005, + 0x000003b8,0x61726170,0x0000006d,0x00040005,0x000003ba,0x61726170,0x0000006d,0x00040005, + 0x000003bd,0x61726170,0x0000006d,0x00040005,0x000003be,0x61726170,0x0000006d,0x00040005, + 0x000003db,0x61726170,0x0000006d,0x00040005,0x000003dc,0x61726170,0x0000006d,0x00040005, + 0x000003e0,0x61726170,0x0000006d,0x00040005,0x000003e2,0x61726170,0x0000006d,0x00040005, + 0x000003e5,0x61726170,0x0000006d,0x00040005,0x000003e6,0x61726170,0x0000006d,0x00040005, + 0x00000403,0x61726170,0x0000006d,0x00040005,0x00000404,0x61726170,0x0000006d,0x00040005, + 0x00000408,0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170,0x0000006d,0x00040005, + 0x0000040d,0x61726170,0x0000006d,0x00040005,0x0000040e,0x61726170,0x0000006d,0x00040005, + 0x0000042e,0x61726170,0x0000006d,0x00040005,0x0000042f,0x61726170,0x0000006d,0x00040005, + 0x00000433,0x61726170,0x0000006d,0x00040005,0x00000435,0x61726170,0x0000006d,0x00040005, + 0x00000438,0x61726170,0x0000006d,0x00040005,0x00000439,0x61726170,0x0000006d,0x00040005, + 0x00000441,0x61726170,0x0000006d,0x00040005,0x00000446,0x61726170,0x0000006d,0x00040005, + 0x0000044b,0x61726170,0x0000006d,0x00040005,0x00000450,0x61726170,0x0000006d,0x00040005, + 0x00000466,0x61726170,0x0000006d,0x00040005,0x00000467,0x61726170,0x0000006d,0x00040005, + 0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046b,0x61726170,0x0000006d,0x00040005, + 0x00000472,0x61726170,0x0000006d,0x00040005,0x00000473,0x61726170,0x0000006d,0x00040005, + 0x00000474,0x61726170,0x0000006d,0x00040005,0x00000485,0x61726170,0x0000006d,0x00040005, + 0x00000486,0x61726170,0x0000006d,0x00040005,0x00000489,0x61726170,0x0000006d,0x00040005, + 0x0000048a,0x61726170,0x0000006d,0x00040005,0x00000492,0x61726170,0x0000006d,0x00040005, + 0x00000493,0x61726170,0x0000006d,0x00040005,0x00000494,0x61726170,0x0000006d,0x00040005, + 0x000004a5,0x61726170,0x0000006d,0x00040005,0x000004a6,0x61726170,0x0000006d,0x00040005, + 0x000004a9,0x61726170,0x0000006d,0x00040005,0x000004aa,0x61726170,0x0000006d,0x00040005, + 0x000004b2,0x61726170,0x0000006d,0x00040005,0x000004b3,0x61726170,0x0000006d,0x00040005, + 0x000004b4,0x61726170,0x0000006d,0x00040005,0x000004c6,0x61726170,0x0000006d,0x00040005, + 0x000004c7,0x61726170,0x0000006d,0x00040005,0x000004ca,0x61726170,0x0000006d,0x00040005, + 0x000004cb,0x61726170,0x0000006d,0x00040005,0x000004d4,0x61726170,0x0000006d,0x00040005, + 0x000004d5,0x61726170,0x0000006d,0x00040005,0x000004d6,0x61726170,0x0000006d,0x00040005, + 0x000004da,0x61726170,0x0000006d,0x00040005,0x000004dc,0x61726170,0x0000006d,0x00040005, + 0x000004de,0x61726170,0x0000006d,0x00040005,0x000004e0,0x61726170,0x0000006d,0x00040005, + 0x000004e2,0x61726170,0x0000006d,0x00040005,0x000004e4,0x61726170,0x0000006d,0x00030005, + 0x000004e7,0x00000076,0x00040005,0x000004e8,0x61726170,0x0000006d,0x00040005,0x000004ea, + 0x61726170,0x0000006d,0x00040005,0x000004ed,0x61726170,0x0000006d,0x00040005,0x00000501, + 0x61726170,0x0000006d,0x00040005,0x00000502,0x61726170,0x0000006d,0x00040005,0x00000504, + 0x61726170,0x0000006d,0x00040005,0x00000506,0x61726170,0x0000006d,0x00040005,0x0000050e, + 0x61726170,0x0000006d,0x00040005,0x0000050f,0x61726170,0x0000006d,0x00040005,0x00000511, + 0x61726170,0x0000006d,0x00030005,0x00000518,0x00000076,0x00040005,0x00000520,0x61726170, + 0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000523,0x61726170, + 0x0000006d,0x00040005,0x00000537,0x61726170,0x0000006d,0x00040005,0x00000538,0x61726170, + 0x0000006d,0x00040005,0x0000053a,0x61726170,0x0000006d,0x00040005,0x0000053c,0x61726170, + 0x0000006d,0x00040005,0x00000546,0x61726170,0x0000006d,0x00040005,0x00000547,0x61726170, + 0x0000006d,0x00040005,0x00000548,0x61726170,0x0000006d,0x00030005,0x0000054f,0x00000076, + 0x00040005,0x00000556,0x61726170,0x0000006d,0x00040005,0x00000557,0x61726170,0x0000006d, + 0x00040005,0x00000559,0x61726170,0x0000006d,0x00040005,0x0000056d,0x61726170,0x0000006d, + 0x00040005,0x0000056e,0x61726170,0x0000006d,0x00040005,0x00000570,0x61726170,0x0000006d, + 0x00040005,0x00000572,0x61726170,0x0000006d,0x00040005,0x00000579,0x61726170,0x0000006d, + 0x00040005,0x0000057a,0x61726170,0x0000006d,0x00040005,0x0000057b,0x61726170,0x0000006d, + 0x00030005,0x00000582,0x00000076,0x00040005,0x00000583,0x61726170,0x0000006d,0x00040005, + 0x00000585,0x61726170,0x0000006d,0x00040005,0x00000587,0x61726170,0x0000006d,0x00040005, + 0x00000591,0x61726170,0x0000006d,0x00040005,0x00000592,0x61726170,0x0000006d,0x00040005, + 0x00000594,0x61726170,0x0000006d,0x00040005,0x00000596,0x61726170,0x0000006d,0x00030005, + 0x00000599,0x00786574,0x00030005,0x000005a3,0x00786970,0x00030005,0x000005ad,0x00003076, + 0x00040005,0x000005b0,0x61726170,0x0000006d,0x00040005,0x000005b1,0x61726170,0x0000006d, + 0x00040005,0x000005b4,0x61726170,0x0000006d,0x00040005,0x000005b6,0x61726170,0x0000006d, + 0x00040005,0x000005b8,0x61726170,0x0000006d,0x00040005,0x000005b9,0x61726170,0x0000006d, + 0x00030005,0x000005ce,0x00003176,0x00040005,0x000005d1,0x61726170,0x0000006d,0x00040005, + 0x000005d2,0x61726170,0x0000006d,0x00040005,0x000005d5,0x61726170,0x0000006d,0x00040005, + 0x000005d7,0x61726170,0x0000006d,0x00040005,0x000005d9,0x61726170,0x0000006d,0x00040005, + 0x000005da,0x61726170,0x0000006d,0x00030005,0x000005ef,0x00003276,0x00040005,0x000005f2, + 0x61726170,0x0000006d,0x00040005,0x000005f3,0x61726170,0x0000006d,0x00040005,0x000005f6, + 0x61726170,0x0000006d,0x00040005,0x000005f8,0x61726170,0x0000006d,0x00040005,0x000005fa, + 0x61726170,0x0000006d,0x00040005,0x000005fb,0x61726170,0x0000006d,0x00030005,0x00000610, + 0x00003376,0x00040005,0x00000613,0x61726170,0x0000006d,0x00040005,0x00000614,0x61726170, + 0x0000006d,0x00040005,0x00000617,0x61726170,0x0000006d,0x00040005,0x00000619,0x61726170, + 0x0000006d,0x00040005,0x0000061b,0x61726170,0x0000006d,0x00040005,0x0000061c,0x61726170, + 0x0000006d,0x00030005,0x00000624,0x00000076,0x00040005,0x00000625,0x61726170,0x0000006d, + 0x00040005,0x00000627,0x61726170,0x0000006d,0x00040005,0x00000629,0x61726170,0x0000006d, + 0x00040005,0x0000062b,0x61726170,0x0000006d,0x00040005,0x00000633,0x61726170,0x0000006d, + 0x00040005,0x00000634,0x61726170,0x0000006d,0x00040005,0x00000636,0x61726170,0x0000006d, + 0x00040005,0x00000637,0x61726170,0x0000006d,0x00040005,0x0000063a,0x61726170,0x0000006d, + 0x00040005,0x0000063c,0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d, + 0x00040005,0x00000648,0x61726170,0x0000006d,0x00040005,0x0000064a,0x61726170,0x0000006d, + 0x00040005,0x0000064c,0x61726170,0x0000006d,0x00040005,0x0000064e,0x61726170,0x0000006d, + 0x00040005,0x00000650,0x61726170,0x0000006d,0x00040005,0x00000652,0x61726170,0x0000006d, + 0x00040005,0x0000065f,0x61726170,0x0000006d,0x00040005,0x00000661,0x61726170,0x0000006d, + 0x00040005,0x00000663,0x61726170,0x0000006d,0x00040005,0x00000665,0x61726170,0x0000006d, + 0x00040005,0x00000667,0x61726170,0x0000006d,0x00040005,0x00000668,0x61726170,0x0000006d, + 0x00040005,0x00000675,0x61726170,0x0000006d,0x00040005,0x00000677,0x61726170,0x0000006d, + 0x00040005,0x00000679,0x61726170,0x0000006d,0x00040005,0x0000067b,0x61726170,0x0000006d, + 0x00040005,0x0000067d,0x61726170,0x0000006d,0x00040005,0x0000067e,0x61726170,0x0000006d, + 0x00040005,0x0000068b,0x61726170,0x0000006d,0x00040005,0x0000068d,0x61726170,0x0000006d, + 0x00040005,0x0000068f,0x61726170,0x0000006d,0x00040005,0x00000690,0x61726170,0x0000006d, + 0x00040005,0x00000693,0x5f627573,0x00007978,0x00040005,0x00000696,0x61726170,0x0000006d, + 0x00030005,0x00000698,0x00000078,0x00030005,0x000006a1,0x00000079,0x00040005,0x000006a9, + 0x61726170,0x0000006d,0x00040005,0x000006ab,0x61726170,0x0000006d,0x00040005,0x000006ad, + 0x61726170,0x0000006d,0x00040005,0x000006af,0x61726170,0x0000006d,0x00040005,0x000006b1, + 0x61726170,0x0000006d,0x00040005,0x000006b3,0x61726170,0x0000006d,0x00040005,0x000006b6, + 0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d,0x00040005,0x000006ba, + 0x61726170,0x0000006d,0x00040005,0x000006bc,0x61726170,0x0000006d,0x00040005,0x000006be, + 0x61726170,0x0000006d,0x00040005,0x000006bf,0x61726170,0x0000006d,0x00040005,0x000006c1, + 0x61726170,0x0000006d,0x00040005,0x000006c9,0x61726170,0x0000006d,0x00040005,0x000006cb, + 0x61726170,0x0000006d,0x00040005,0x000006cd,0x61726170,0x0000006d,0x00040005,0x000006d3, + 0x61726170,0x0000006d,0x00040005,0x000006d6,0x61726170,0x0000006d,0x00040005,0x000006d8, + 0x61726170,0x0000006d,0x00040005,0x000006da,0x61726170,0x0000006d,0x00040005,0x000006dc, + 0x61726170,0x0000006d,0x00040005,0x000006df,0x61726170,0x0000006d,0x00040005,0x000006e1, + 0x61726170,0x0000006d,0x00040005,0x000006e3,0x61726170,0x0000006d,0x00040005,0x000006e4, + 0x61726170,0x0000006d,0x00040005,0x000006e6,0x61726170,0x0000006d,0x00040005,0x000006e7, + 0x61726170,0x0000006d,0x00040005,0x000006e9,0x61726170,0x0000006d,0x00040005,0x000006ef, + 0x61726170,0x0000006d,0x00040005,0x000006f0,0x61726170,0x0000006d,0x00040005,0x000006f2, + 0x61726170,0x0000006d,0x00040005,0x000006f4,0x61726170,0x0000006d,0x00040005,0x000006f6, + 0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d,0x00040005,0x00000705, + 0x61726170,0x0000006d,0x00040005,0x00000706,0x61726170,0x0000006d,0x00040005,0x00000707, + 0x61726170,0x0000006d,0x00040005,0x00000708,0x61726170,0x0000006d,0x00040005,0x00000709, + 0x61726170,0x0000006d,0x00060005,0x0000070d,0x575f6c67,0x476b726f,0x70756f72,0x00004449, + 0x00080005,0x00000711,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564, + 0x00040005,0x00000714,0x61726170,0x0000006d,0x00040005,0x00000715,0x61726170,0x0000006d, + 0x00060005,0x0000071c,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00030047,0x0000012a, + 0x00000002,0x00050048,0x0000012a,0x00000000,0x00000023,0x00000000,0x00050048,0x0000012a, + 0x00000001,0x00000023,0x00000008,0x00050048,0x0000012a,0x00000002,0x00000023,0x00000010, + 0x00050048,0x0000012a,0x00000003,0x00000023,0x00000018,0x00050048,0x0000012a,0x00000004, + 0x00000023,0x0000001c,0x00050048,0x0000012a,0x00000005,0x00000023,0x00000020,0x00050048, + 0x0000012a,0x00000006,0x00000023,0x00000028,0x00050048,0x0000012a,0x00000007,0x00000023, + 0x0000002c,0x00050048,0x0000012a,0x00000008,0x00000023,0x00000030,0x00050048,0x0000012a, + 0x00000009,0x00000023,0x00000040,0x00050048,0x0000012a,0x0000000a,0x00000023,0x00000044, + 0x00050048,0x0000012a,0x0000000b,0x00000023,0x00000048,0x00050048,0x0000012a,0x0000000c, + 0x00000023,0x00000050,0x00050048,0x0000012a,0x0000000d,0x00000023,0x00000058,0x00050048, + 0x0000012a,0x0000000e,0x00000023,0x0000005c,0x00050048,0x0000012a,0x0000000f,0x00000023, + 0x00000060,0x00050048,0x0000012a,0x00000010,0x00000023,0x00000068,0x00050048,0x0000012a, + 0x00000011,0x00000023,0x0000006c,0x00050048,0x0000012a,0x00000012,0x00000023,0x00000070, + 0x00050048,0x0000012a,0x00000013,0x00000023,0x00000078,0x00050048,0x0000012a,0x00000014, + 0x00000023,0x00000080,0x00050048,0x0000012a,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x0000012a,0x00000016,0x00000023,0x00000090,0x00050048,0x0000012a,0x00000017,0x00000023, + 0x00000098,0x00050048,0x0000012a,0x00000018,0x00000023,0x0000009c,0x00050048,0x0000012a, + 0x00000019,0x00000023,0x000000a0,0x00050048,0x0000012a,0x0000001a,0x00000023,0x000000a8, + 0x00040047,0x0000012c,0x00000021,0x0000000f,0x00040047,0x0000012c,0x00000022,0x00000000, + 0x00030047,0x0000013d,0x00000002,0x00050048,0x0000013d,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000013d,0x00000001,0x00000023,0x00000004,0x00050048,0x0000013d,0x00000002, + 0x00000023,0x00000008,0x00040047,0x0000013f,0x00000021,0x00000010,0x00040047,0x0000013f, + 0x00000022,0x00000000,0x00040047,0x00000151,0x00000021,0x00000000,0x00040047,0x00000151, + 0x00000022,0x00000000,0x00040047,0x00000157,0x00000006,0x00000004,0x00030047,0x00000158, + 0x00000002,0x00040048,0x00000158,0x00000000,0x00000017,0x00050048,0x00000158,0x00000000, + 0x00000023,0x00000000,0x00030047,0x0000015a,0x00000017,0x00040047,0x0000015a,0x00000021, + 0x00000001,0x00040047,0x0000015a,0x00000022,0x00000000,0x00040047,0x00000169,0x00000021, + 0x00000002,0x00040047,0x00000169,0x00000022,0x00000000,0x00040047,0x00000172,0x00000021, + 0x00000003,0x00040047,0x00000172,0x00000022,0x00000000,0x00040047,0x0000017b,0x00000021, + 0x00000004,0x00040047,0x0000017b,0x00000022,0x00000000,0x00040047,0x00000184,0x00000021, + 0x00000005,0x00040047,0x00000184,0x00000022,0x00000000,0x00040047,0x0000018e,0x00000021, + 0x00000006,0x00040047,0x0000018e,0x00000022,0x00000000,0x00030047,0x00000198,0x00000017, + 0x00040047,0x00000198,0x00000021,0x00000007,0x00040047,0x00000198,0x00000022,0x00000000, + 0x00040047,0x000001a2,0x00000021,0x00000008,0x00040047,0x000001a2,0x00000022,0x00000000, + 0x00040047,0x000001ac,0x00000021,0x00000009,0x00040047,0x000001ac,0x00000022,0x00000000, + 0x00040047,0x000001b6,0x00000021,0x0000000a,0x00040047,0x000001b6,0x00000022,0x00000000, + 0x00040047,0x000001c0,0x00000021,0x0000000b,0x00040047,0x000001c0,0x00000022,0x00000000, + 0x00040047,0x000001ca,0x00000021,0x0000000c,0x00040047,0x000001ca,0x00000022,0x00000000, + 0x00040047,0x000001d4,0x00000021,0x0000000d,0x00040047,0x000001d4,0x00000022,0x00000000, + 0x00040047,0x000001de,0x00000021,0x0000000e,0x00040047,0x000001de,0x00000022,0x00000000, + 0x00040047,0x0000070d,0x0000000b,0x0000001a,0x00040047,0x00000711,0x0000000b,0x0000001d, + 0x00040047,0x0000071c,0x00000021,0x000003e8,0x00040047,0x0000071c,0x00000022,0x00000000, + 0x00040047,0x00000725,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00030016, + 0x00000013,0x00000020,0x00040020,0x00000014,0x00000007,0x00000013,0x00040021,0x00000015, + 0x00000013,0x00000014,0x00040017,0x00000019,0x00000006,0x00000002,0x00040021,0x0000001a, + 0x00000019,0x00000007,0x00040015,0x0000001e,0x00000020,0x00000001,0x00040017,0x0000001f, + 0x0000001e,0x00000002,0x00030021,0x00000020,0x0000001f,0x00030021,0x00000027,0x00000006, + 0x00030021,0x0000002c,0x00000019,0x00040020,0x0000002f,0x00000007,0x0000001f,0x00040017, + 0x00000030,0x00000013,0x00000004,0x00040021,0x00000031,0x00000030,0x0000002f,0x00040020, + 0x00000035,0x00000007,0x0000001e,0x00050021,0x00000036,0x00000002,0x00000035,0x00000007, + 0x00050021,0x0000003f,0x00000030,0x0000002f,0x00000007,0x00040020,0x00000044,0x00000007, + 0x00000030,0x00060021,0x00000045,0x00000002,0x0000002f,0x00000044,0x00000007,0x00070021, + 0x00000053,0x00000002,0x0000002f,0x00000044,0x00000007,0x00000007,0x00040021,0x0000005a, + 0x00000002,0x00000007,0x00050021,0x00000063,0x00000030,0x00000007,0x00000007,0x00060021, + 0x00000068,0x00000002,0x00000007,0x00000007,0x00000044,0x00070021,0x0000006e,0x00000030, + 0x00000044,0x00000044,0x00000044,0x00000044,0x00020014,0x00000077,0x00060021,0x00000078, + 0x00000077,0x00000007,0x00000007,0x00000007,0x00040021,0x0000007e,0x00000030,0x00000044, + 0x00040020,0x00000082,0x00000007,0x00000019,0x00080021,0x00000083,0x00000030,0x00000082, + 0x00000082,0x00000082,0x00000082,0x00000007,0x00050021,0x0000008b,0x00000030,0x00000082, + 0x00000007,0x00090021,0x0000009b,0x00000002,0x00000007,0x00000007,0x00000082,0x00000007, + 0x00000007,0x00000007,0x00070021,0x000000c4,0x00000002,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00070021,0x000000cb,0x00000002,0x00000007,0x00000007,0x00000007,0x00000007, + 0x000a0021,0x000000d2,0x00000002,0x00000007,0x00000007,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00000007,0x00080021,0x000000dc,0x00000002,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00000007,0x00090021,0x000000e4,0x00000002,0x00000082,0x00000007,0x00000007, + 0x00000007,0x00000007,0x00000082,0x00040017,0x000000ed,0x0000001e,0x00000003,0x00040020, + 0x000000ee,0x00000007,0x000000ed,0x00050021,0x000000ef,0x00000002,0x000000ee,0x00000035, + 0x0004002b,0x0000001e,0x000000fe,0x00000000,0x0004002b,0x00000013,0x00000105,0x00000000, + 0x0004002b,0x00000013,0x00000106,0x3f800000,0x0004002b,0x00000006,0x0000010a,0x00000002, + 0x0004002b,0x00000006,0x0000010b,0x00000003,0x0004002b,0x00000006,0x00000111,0x00000001, + 0x00040017,0x00000128,0x00000013,0x00000002,0x00040017,0x00000129,0x00000013,0x00000003, + 0x001d001e,0x0000012a,0x0000001f,0x0000001f,0x00000128,0x00000013,0x00000013,0x0000001f, + 0x0000001e,0x0000001e,0x00000030,0x00000013,0x0000001e,0x0000001f,0x00000128,0x0000001e, + 0x00000006,0x0000001f,0x0000001e,0x0000001e,0x0000001f,0x0000001f,0x00000129,0x00000006, + 0x00000128,0x00000013,0x0000001e,0x00000128,0x00000128,0x00040020,0x0000012b,0x00000002, + 0x0000012a,0x0004003b,0x0000012b,0x0000012c,0x00000002,0x0004002b,0x0000001e,0x0000012d, + 0x00000012,0x00040020,0x0000012e,0x00000002,0x0000001f,0x0004002b,0x0000001e,0x00000133, + 0x00000013,0x0004002b,0x0000001e,0x00000138,0x00000001,0x0005001e,0x0000013d,0x00000006, + 0x00000006,0x00000019,0x00040020,0x0000013e,0x00000002,0x0000013d,0x0004003b,0x0000013e, + 0x0000013f,0x00000002,0x00040020,0x00000140,0x00000002,0x00000006,0x0004002b,0x0000001e, + 0x00000149,0x00000002,0x00040020,0x0000014a,0x00000002,0x00000019,0x00090019,0x0000014f, + 0x00000013,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000150,0x00000000,0x0000014f,0x0004003b,0x00000150,0x00000151,0x00000000,0x0003001d, + 0x00000157,0x00000006,0x0003001e,0x00000158,0x00000157,0x00040020,0x00000159,0x0000000c, + 0x00000158,0x0004003b,0x00000159,0x0000015a,0x0000000c,0x00040020,0x0000015d,0x0000000c, + 0x00000006,0x0004002b,0x00000006,0x00000161,0x00000000,0x00090019,0x00000167,0x00000013, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000002,0x00040020,0x00000168, + 0x00000000,0x00000167,0x0004003b,0x00000168,0x00000169,0x00000000,0x0004003b,0x00000168, + 0x00000172,0x00000000,0x0004003b,0x00000168,0x0000017b,0x00000000,0x0004003b,0x00000168, + 0x00000184,0x00000000,0x0004002b,0x00000006,0x0000018a,0x00000004,0x0004003b,0x00000168, + 0x0000018e,0x00000000,0x0004002b,0x00000006,0x00000194,0x00000005,0x0004003b,0x00000168, + 0x00000198,0x00000000,0x0004002b,0x00000006,0x0000019e,0x00000006,0x0004003b,0x00000168, + 0x000001a2,0x00000000,0x0004002b,0x00000006,0x000001a8,0x00000007,0x0004003b,0x00000168, + 0x000001ac,0x00000000,0x0004002b,0x00000006,0x000001b2,0x00000008,0x0004003b,0x00000168, + 0x000001b6,0x00000000,0x0004002b,0x00000006,0x000001bc,0x00000009,0x0004003b,0x00000168, + 0x000001c0,0x00000000,0x0004002b,0x00000006,0x000001c6,0x0000000a,0x0004003b,0x00000168, + 0x000001ca,0x00000000,0x0004002b,0x00000006,0x000001d0,0x0000000b,0x0004003b,0x00000168, + 0x000001d4,0x00000000,0x0004002b,0x00000006,0x000001da,0x0000000c,0x0004003b,0x00000168, + 0x000001de,0x00000000,0x0007002c,0x00000030,0x000001e3,0x00000105,0x00000105,0x00000105, + 0x00000105,0x00040020,0x00000289,0x00000004,0x00000006,0x0004003b,0x00000289,0x0000028a, + 0x00000004,0x0004002b,0x00000006,0x00000295,0x00000010,0x0004001c,0x00000296,0x00000013, + 0x00000295,0x0004001c,0x00000297,0x00000296,0x00000295,0x00040020,0x00000298,0x00000004, + 0x00000297,0x0004003b,0x00000298,0x00000299,0x00000004,0x00040020,0x0000029c,0x00000004, + 0x00000013,0x0004003b,0x00000298,0x0000029f,0x00000004,0x0004003b,0x00000298,0x000002a4, + 0x00000004,0x0004003b,0x00000298,0x000002a9,0x00000004,0x0004002b,0x00000006,0x000002f8, + 0x00000d48,0x0004002b,0x00000006,0x000002f9,0x00000108,0x0005002c,0x00000019,0x00000348, + 0x00000161,0x00000161,0x0005002c,0x00000019,0x0000034b,0x00000161,0x00000111,0x0005002c, + 0x00000019,0x0000034e,0x00000111,0x00000161,0x0005002c,0x00000019,0x00000351,0x00000111, + 0x00000111,0x0004002b,0x00000006,0x00000396,0x00000040,0x0004002b,0x00000006,0x000003a4, + 0x00000020,0x0004001c,0x000003ae,0x00000030,0x0000018a,0x00040020,0x000003af,0x00000007, + 0x000003ae,0x0004002b,0x0000001e,0x0000042b,0x00000003,0x0004002b,0x0000001e,0x0000069c, + 0x00000006,0x0004002b,0x0000001e,0x000006a5,0x00000007,0x00040017,0x0000070b,0x00000006, + 0x00000003,0x00040020,0x0000070c,0x00000001,0x0000070b,0x0004003b,0x0000070c,0x0000070d, + 0x00000001,0x00040020,0x00000710,0x00000001,0x00000006,0x0004003b,0x00000710,0x00000711, + 0x00000001,0x0004002b,0x00000013,0x00000717,0x387fda40,0x0004002b,0x00000013,0x00000718, + 0x477fe000,0x0004002b,0x00000013,0x00000719,0x37801002,0x0002001a,0x0000071a,0x00040020, + 0x0000071b,0x00000000,0x0000071a,0x0004003b,0x0000071b,0x0000071c,0x00000000,0x0004002b, + 0x00000013,0x0000071d,0x3a83126f,0x0004002b,0x00000013,0x0000071e,0x7f7fffff,0x0004002b, + 0x00000013,0x0000071f,0x00800000,0x0004002b,0x00000006,0x00000720,0x80000000,0x0004002b, + 0x00000006,0x00000721,0x0000001f,0x0004002b,0x00000006,0x00000722,0x000003ff,0x0004002b, + 0x00000006,0x00000723,0x00000015,0x0004002b,0x00000006,0x00000724,0x00000100,0x0006002c, + 0x0000070b,0x00000725,0x00000724,0x00000111,0x00000111,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x000000ee,0x00000714,0x00000007, + 0x0004003b,0x00000035,0x00000715,0x00000007,0x0004003d,0x0000070b,0x0000070e,0x0000070d, + 0x0004007c,0x000000ed,0x0000070f,0x0000070e,0x0004003d,0x00000006,0x00000712,0x00000711, + 0x0004007c,0x0000001e,0x00000713,0x00000712,0x0003003e,0x00000714,0x0000070f,0x0003003e, + 0x00000715,0x00000713,0x00060039,0x00000002,0x00000716,0x000000f2,0x00000714,0x00000715, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x000000f4,0x00000009,0x0004003d,0x00000006, + 0x000000f5,0x0000000a,0x0004007c,0x0000001e,0x000000f6,0x000000f5,0x0004003d,0x00000006, + 0x000000f7,0x0000000b,0x0004007c,0x0000001e,0x000000f8,0x000000f7,0x000600cb,0x00000006, + 0x000000f9,0x000000f4,0x000000f6,0x000000f8,0x000200fe,0x000000f9,0x00010038,0x00050036, + 0x00000006,0x00000011,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037, + 0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x00000006,0x000000fc,0x0000000e,0x0004003d,0x00000006,0x000000fd,0x0000000f,0x0004003d, + 0x00000006,0x000000ff,0x00000010,0x0004007c,0x0000001e,0x00000100,0x000000ff,0x000700c9, + 0x00000006,0x00000101,0x000000fc,0x000000fd,0x000000fe,0x00000100,0x000200fe,0x00000101, + 0x00010038,0x00050036,0x00000013,0x00000017,0x00000000,0x00000015,0x00030037,0x00000014, + 0x00000016,0x000200f8,0x00000018,0x0004003d,0x00000013,0x00000104,0x00000016,0x0008000c, + 0x00000013,0x00000107,0x00000001,0x0000002b,0x00000104,0x00000105,0x00000106,0x000200fe, + 0x00000107,0x00010038,0x00050036,0x00000019,0x0000001c,0x00000000,0x0000001a,0x00030037, + 0x00000007,0x0000001b,0x000200f8,0x0000001d,0x0004003b,0x00000007,0x0000010c,0x00000007, + 0x0004003b,0x00000007,0x0000010e,0x00000007,0x0004003b,0x00000007,0x0000010f,0x00000007, + 0x0004003b,0x00000007,0x00000112,0x00000007,0x0004003b,0x00000007,0x00000113,0x00000007, + 0x0004003b,0x00000007,0x00000115,0x00000007,0x0004003b,0x00000007,0x00000117,0x00000007, + 0x0004003b,0x00000007,0x00000119,0x00000007,0x0004003b,0x00000007,0x0000011a,0x00000007, + 0x0004003b,0x00000007,0x0000011c,0x00000007,0x0004003b,0x00000007,0x0000011e,0x00000007, + 0x0004003b,0x00000007,0x0000011f,0x00000007,0x0004003b,0x00000007,0x00000121,0x00000007, + 0x0004003b,0x00000007,0x00000122,0x00000007,0x0004003b,0x00000007,0x00000123,0x00000007, + 0x0004003d,0x00000006,0x0000010d,0x0000001b,0x0003003e,0x0000010c,0x0000010d,0x0003003e, + 0x0000010e,0x0000010a,0x0003003e,0x0000010f,0x0000010b,0x00070039,0x00000006,0x00000110, + 0x0000000c,0x0000010c,0x0000010e,0x0000010f,0x0003003e,0x00000112,0x00000110,0x0004003d, + 0x00000006,0x00000114,0x0000001b,0x0003003e,0x00000113,0x00000114,0x0003003e,0x00000115, + 0x00000111,0x00070039,0x00000006,0x00000116,0x00000011,0x00000112,0x00000113,0x00000115, + 0x0004003d,0x00000006,0x00000118,0x0000001b,0x0003003e,0x00000117,0x00000118,0x0003003e, + 0x00000119,0x0000010b,0x0003003e,0x0000011a,0x0000010b,0x00070039,0x00000006,0x0000011b, + 0x0000000c,0x00000117,0x00000119,0x0000011a,0x0004003d,0x00000006,0x0000011d,0x0000001b, + 0x0003003e,0x0000011c,0x0000011d,0x0003003e,0x0000011e,0x00000111,0x0003003e,0x0000011f, + 0x0000010a,0x00070039,0x00000006,0x00000120,0x0000000c,0x0000011c,0x0000011e,0x0000011f, + 0x0003003e,0x00000121,0x0000011b,0x0003003e,0x00000122,0x00000120,0x0003003e,0x00000123, + 0x0000010a,0x00070039,0x00000006,0x00000124,0x00000011,0x00000121,0x00000122,0x00000123, + 0x00050050,0x00000019,0x00000125,0x00000116,0x00000124,0x000200fe,0x00000125,0x00010038, + 0x00050036,0x0000001f,0x00000021,0x00000000,0x00000020,0x000200f8,0x00000022,0x00050041, + 0x0000012e,0x0000012f,0x0000012c,0x0000012d,0x0004003d,0x0000001f,0x00000130,0x0000012f, + 0x000200fe,0x00000130,0x00010038,0x00050036,0x0000001f,0x00000023,0x00000000,0x00000020, + 0x000200f8,0x00000024,0x00050041,0x0000012e,0x00000134,0x0000012c,0x00000133,0x0004003d, + 0x0000001f,0x00000135,0x00000134,0x000200fe,0x00000135,0x00010038,0x00050036,0x0000001f, + 0x00000025,0x00000000,0x00000020,0x000200f8,0x00000026,0x00050041,0x0000012e,0x00000139, + 0x0000012c,0x00000138,0x0004003d,0x0000001f,0x0000013a,0x00000139,0x000200fe,0x0000013a, + 0x00010038,0x00050036,0x00000006,0x00000028,0x00000000,0x00000027,0x000200f8,0x00000029, + 0x00050041,0x00000140,0x00000141,0x0000013f,0x000000fe,0x0004003d,0x00000006,0x00000142, + 0x00000141,0x000200fe,0x00000142,0x00010038,0x00050036,0x00000006,0x0000002a,0x00000000, + 0x00000027,0x000200f8,0x0000002b,0x00050041,0x00000140,0x00000145,0x0000013f,0x00000138, + 0x0004003d,0x00000006,0x00000146,0x00000145,0x000200fe,0x00000146,0x00010038,0x00050036, + 0x00000019,0x0000002d,0x00000000,0x0000002c,0x000200f8,0x0000002e,0x00050041,0x0000014a, + 0x0000014b,0x0000013f,0x00000149,0x0004003d,0x00000019,0x0000014c,0x0000014b,0x000200fe, + 0x0000014c,0x00010038,0x00050036,0x00000030,0x00000033,0x00000000,0x00000031,0x00030037, + 0x0000002f,0x00000032,0x000200f8,0x00000034,0x0004003d,0x0000014f,0x00000152,0x00000151, + 0x0004003d,0x0000001f,0x00000153,0x00000032,0x0007005f,0x00000030,0x00000154,0x00000152, + 0x00000153,0x00000002,0x000000fe,0x000200fe,0x00000154,0x00010038,0x00050036,0x00000002, + 0x00000039,0x00000000,0x00000036,0x00030037,0x00000035,0x00000037,0x00030037,0x00000007, + 0x00000038,0x000200f8,0x0000003a,0x0004003d,0x0000001e,0x0000015b,0x00000037,0x0004003d, + 0x00000006,0x0000015c,0x00000038,0x00060041,0x0000015d,0x0000015e,0x0000015a,0x000000fe, + 0x0000015b,0x0003003e,0x0000015e,0x0000015c,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x0000003d,0x00000000,0x00000036,0x00030037,0x00000035,0x0000003b,0x00030037,0x00000007, + 0x0000003c,0x000200f8,0x0000003e,0x0004003d,0x0000001e,0x0000015f,0x0000003b,0x00060041, + 0x0000015d,0x00000160,0x0000015a,0x000000fe,0x0000015f,0x000700ea,0x00000006,0x00000162, + 0x00000160,0x00000111,0x00000161,0x00000111,0x0003003e,0x0000003c,0x00000162,0x000100fd, + 0x00010038,0x00050036,0x00000030,0x00000042,0x00000000,0x0000003f,0x00030037,0x0000002f, + 0x00000040,0x00030037,0x00000007,0x00000041,0x000200f8,0x00000043,0x0004003d,0x00000006, + 0x00000163,0x00000041,0x000500aa,0x00000077,0x00000164,0x00000163,0x00000161,0x000300f7, + 0x00000166,0x00000000,0x000400fa,0x00000164,0x00000165,0x00000166,0x000200f8,0x00000165, + 0x0004003d,0x00000167,0x0000016a,0x00000169,0x0004003d,0x0000001f,0x0000016b,0x00000040, + 0x00050062,0x00000030,0x0000016c,0x0000016a,0x0000016b,0x000200fe,0x0000016c,0x000200f8, + 0x00000166,0x0004003d,0x00000006,0x0000016e,0x00000041,0x000500aa,0x00000077,0x0000016f, + 0x0000016e,0x00000111,0x000300f7,0x00000171,0x00000000,0x000400fa,0x0000016f,0x00000170, + 0x00000171,0x000200f8,0x00000170,0x0004003d,0x00000167,0x00000173,0x00000172,0x0004003d, + 0x0000001f,0x00000174,0x00000040,0x00050062,0x00000030,0x00000175,0x00000173,0x00000174, + 0x000200fe,0x00000175,0x000200f8,0x00000171,0x0004003d,0x00000006,0x00000177,0x00000041, + 0x000500aa,0x00000077,0x00000178,0x00000177,0x0000010a,0x000300f7,0x0000017a,0x00000000, + 0x000400fa,0x00000178,0x00000179,0x0000017a,0x000200f8,0x00000179,0x0004003d,0x00000167, + 0x0000017c,0x0000017b,0x0004003d,0x0000001f,0x0000017d,0x00000040,0x00050062,0x00000030, + 0x0000017e,0x0000017c,0x0000017d,0x000200fe,0x0000017e,0x000200f8,0x0000017a,0x0004003d, + 0x00000006,0x00000180,0x00000041,0x000500aa,0x00000077,0x00000181,0x00000180,0x0000010b, + 0x000300f7,0x00000183,0x00000000,0x000400fa,0x00000181,0x00000182,0x00000183,0x000200f8, + 0x00000182,0x0004003d,0x00000167,0x00000185,0x00000184,0x0004003d,0x0000001f,0x00000186, + 0x00000040,0x00050062,0x00000030,0x00000187,0x00000185,0x00000186,0x000200fe,0x00000187, + 0x000200f8,0x00000183,0x0004003d,0x00000006,0x00000189,0x00000041,0x000500aa,0x00000077, + 0x0000018b,0x00000189,0x0000018a,0x000300f7,0x0000018d,0x00000000,0x000400fa,0x0000018b, + 0x0000018c,0x0000018d,0x000200f8,0x0000018c,0x0004003d,0x00000167,0x0000018f,0x0000018e, + 0x0004003d,0x0000001f,0x00000190,0x00000040,0x00050062,0x00000030,0x00000191,0x0000018f, + 0x00000190,0x000200fe,0x00000191,0x000200f8,0x0000018d,0x0004003d,0x00000006,0x00000193, + 0x00000041,0x000500aa,0x00000077,0x00000195,0x00000193,0x00000194,0x000300f7,0x00000197, + 0x00000000,0x000400fa,0x00000195,0x00000196,0x00000197,0x000200f8,0x00000196,0x0004003d, + 0x00000167,0x00000199,0x00000198,0x0004003d,0x0000001f,0x0000019a,0x00000040,0x00050062, + 0x00000030,0x0000019b,0x00000199,0x0000019a,0x000200fe,0x0000019b,0x000200f8,0x00000197, + 0x0004003d,0x00000006,0x0000019d,0x00000041,0x000500aa,0x00000077,0x0000019f,0x0000019d, + 0x0000019e,0x000300f7,0x000001a1,0x00000000,0x000400fa,0x0000019f,0x000001a0,0x000001a1, + 0x000200f8,0x000001a0,0x0004003d,0x00000167,0x000001a3,0x000001a2,0x0004003d,0x0000001f, + 0x000001a4,0x00000040,0x00050062,0x00000030,0x000001a5,0x000001a3,0x000001a4,0x000200fe, + 0x000001a5,0x000200f8,0x000001a1,0x0004003d,0x00000006,0x000001a7,0x00000041,0x000500aa, + 0x00000077,0x000001a9,0x000001a7,0x000001a8,0x000300f7,0x000001ab,0x00000000,0x000400fa, + 0x000001a9,0x000001aa,0x000001ab,0x000200f8,0x000001aa,0x0004003d,0x00000167,0x000001ad, + 0x000001ac,0x0004003d,0x0000001f,0x000001ae,0x00000040,0x00050062,0x00000030,0x000001af, + 0x000001ad,0x000001ae,0x000200fe,0x000001af,0x000200f8,0x000001ab,0x0004003d,0x00000006, + 0x000001b1,0x00000041,0x000500aa,0x00000077,0x000001b3,0x000001b1,0x000001b2,0x000300f7, + 0x000001b5,0x00000000,0x000400fa,0x000001b3,0x000001b4,0x000001b5,0x000200f8,0x000001b4, + 0x0004003d,0x00000167,0x000001b7,0x000001b6,0x0004003d,0x0000001f,0x000001b8,0x00000040, + 0x00050062,0x00000030,0x000001b9,0x000001b7,0x000001b8,0x000200fe,0x000001b9,0x000200f8, + 0x000001b5,0x0004003d,0x00000006,0x000001bb,0x00000041,0x000500aa,0x00000077,0x000001bd, + 0x000001bb,0x000001bc,0x000300f7,0x000001bf,0x00000000,0x000400fa,0x000001bd,0x000001be, + 0x000001bf,0x000200f8,0x000001be,0x0004003d,0x00000167,0x000001c1,0x000001c0,0x0004003d, + 0x0000001f,0x000001c2,0x00000040,0x00050062,0x00000030,0x000001c3,0x000001c1,0x000001c2, + 0x000200fe,0x000001c3,0x000200f8,0x000001bf,0x0004003d,0x00000006,0x000001c5,0x00000041, + 0x000500aa,0x00000077,0x000001c7,0x000001c5,0x000001c6,0x000300f7,0x000001c9,0x00000000, + 0x000400fa,0x000001c7,0x000001c8,0x000001c9,0x000200f8,0x000001c8,0x0004003d,0x00000167, + 0x000001cb,0x000001ca,0x0004003d,0x0000001f,0x000001cc,0x00000040,0x00050062,0x00000030, + 0x000001cd,0x000001cb,0x000001cc,0x000200fe,0x000001cd,0x000200f8,0x000001c9,0x0004003d, + 0x00000006,0x000001cf,0x00000041,0x000500aa,0x00000077,0x000001d1,0x000001cf,0x000001d0, + 0x000300f7,0x000001d3,0x00000000,0x000400fa,0x000001d1,0x000001d2,0x000001d3,0x000200f8, + 0x000001d2,0x0004003d,0x00000167,0x000001d5,0x000001d4,0x0004003d,0x0000001f,0x000001d6, + 0x00000040,0x00050062,0x00000030,0x000001d7,0x000001d5,0x000001d6,0x000200fe,0x000001d7, + 0x000200f8,0x000001d3,0x0004003d,0x00000006,0x000001d9,0x00000041,0x000500aa,0x00000077, + 0x000001db,0x000001d9,0x000001da,0x000300f7,0x000001dd,0x00000000,0x000400fa,0x000001db, + 0x000001dc,0x000001dd,0x000200f8,0x000001dc,0x0004003d,0x00000167,0x000001df,0x000001de, + 0x0004003d,0x0000001f,0x000001e0,0x00000040,0x00050062,0x00000030,0x000001e1,0x000001df, + 0x000001e0,0x000200fe,0x000001e1,0x000200f8,0x000001dd,0x000200fe,0x000001e3,0x00010038, + 0x00050036,0x00000002,0x00000049,0x00000000,0x00000045,0x00030037,0x0000002f,0x00000046, + 0x00030037,0x00000044,0x00000047,0x00030037,0x00000007,0x00000048,0x000200f8,0x0000004a, + 0x0004003d,0x00000006,0x000001e6,0x00000048,0x000500aa,0x00000077,0x000001e7,0x000001e6, + 0x00000161,0x000300f7,0x000001e9,0x00000000,0x000400fa,0x000001e7,0x000001e8,0x000001e9, + 0x000200f8,0x000001e8,0x0004003d,0x00000167,0x000001ea,0x00000169,0x0004003d,0x0000001f, + 0x000001eb,0x00000046,0x0004003d,0x00000030,0x000001ec,0x00000047,0x00040063,0x000001ea, + 0x000001eb,0x000001ec,0x000200f9,0x000001e9,0x000200f8,0x000001e9,0x0004003d,0x00000006, + 0x000001ed,0x00000048,0x000500aa,0x00000077,0x000001ee,0x000001ed,0x00000111,0x000300f7, + 0x000001f0,0x00000000,0x000400fa,0x000001ee,0x000001ef,0x000001f0,0x000200f8,0x000001ef, + 0x0004003d,0x00000167,0x000001f1,0x00000172,0x0004003d,0x0000001f,0x000001f2,0x00000046, + 0x0004003d,0x00000030,0x000001f3,0x00000047,0x00040063,0x000001f1,0x000001f2,0x000001f3, + 0x000200f9,0x000001f0,0x000200f8,0x000001f0,0x0004003d,0x00000006,0x000001f4,0x00000048, + 0x000500aa,0x00000077,0x000001f5,0x000001f4,0x0000010a,0x000300f7,0x000001f7,0x00000000, + 0x000400fa,0x000001f5,0x000001f6,0x000001f7,0x000200f8,0x000001f6,0x0004003d,0x00000167, + 0x000001f8,0x0000017b,0x0004003d,0x0000001f,0x000001f9,0x00000046,0x0004003d,0x00000030, + 0x000001fa,0x00000047,0x00040063,0x000001f8,0x000001f9,0x000001fa,0x000200f9,0x000001f7, + 0x000200f8,0x000001f7,0x0004003d,0x00000006,0x000001fb,0x00000048,0x000500aa,0x00000077, + 0x000001fc,0x000001fb,0x0000010b,0x000300f7,0x000001fe,0x00000000,0x000400fa,0x000001fc, + 0x000001fd,0x000001fe,0x000200f8,0x000001fd,0x0004003d,0x00000167,0x000001ff,0x00000184, + 0x0004003d,0x0000001f,0x00000200,0x00000046,0x0004003d,0x00000030,0x00000201,0x00000047, + 0x00040063,0x000001ff,0x00000200,0x00000201,0x000200f9,0x000001fe,0x000200f8,0x000001fe, + 0x0004003d,0x00000006,0x00000202,0x00000048,0x000500aa,0x00000077,0x00000203,0x00000202, + 0x0000018a,0x000300f7,0x00000205,0x00000000,0x000400fa,0x00000203,0x00000204,0x00000205, + 0x000200f8,0x00000204,0x0004003d,0x00000167,0x00000206,0x0000018e,0x0004003d,0x0000001f, + 0x00000207,0x00000046,0x0004003d,0x00000030,0x00000208,0x00000047,0x00040063,0x00000206, + 0x00000207,0x00000208,0x000200f9,0x00000205,0x000200f8,0x00000205,0x0004003d,0x00000006, + 0x00000209,0x00000048,0x000500aa,0x00000077,0x0000020a,0x00000209,0x00000194,0x000300f7, + 0x0000020c,0x00000000,0x000400fa,0x0000020a,0x0000020b,0x0000020c,0x000200f8,0x0000020b, + 0x0004003d,0x00000167,0x0000020d,0x00000198,0x0004003d,0x0000001f,0x0000020e,0x00000046, + 0x0004003d,0x00000030,0x0000020f,0x00000047,0x00040063,0x0000020d,0x0000020e,0x0000020f, + 0x000200f9,0x0000020c,0x000200f8,0x0000020c,0x0004003d,0x00000006,0x00000210,0x00000048, + 0x000500aa,0x00000077,0x00000211,0x00000210,0x0000019e,0x000300f7,0x00000213,0x00000000, + 0x000400fa,0x00000211,0x00000212,0x00000213,0x000200f8,0x00000212,0x0004003d,0x00000167, + 0x00000214,0x000001a2,0x0004003d,0x0000001f,0x00000215,0x00000046,0x0004003d,0x00000030, + 0x00000216,0x00000047,0x00040063,0x00000214,0x00000215,0x00000216,0x000200f9,0x00000213, + 0x000200f8,0x00000213,0x0004003d,0x00000006,0x00000217,0x00000048,0x000500aa,0x00000077, + 0x00000218,0x00000217,0x000001a8,0x000300f7,0x0000021a,0x00000000,0x000400fa,0x00000218, + 0x00000219,0x0000021a,0x000200f8,0x00000219,0x0004003d,0x00000167,0x0000021b,0x000001ac, + 0x0004003d,0x0000001f,0x0000021c,0x00000046,0x0004003d,0x00000030,0x0000021d,0x00000047, + 0x00040063,0x0000021b,0x0000021c,0x0000021d,0x000200f9,0x0000021a,0x000200f8,0x0000021a, + 0x0004003d,0x00000006,0x0000021e,0x00000048,0x000500aa,0x00000077,0x0000021f,0x0000021e, + 0x000001b2,0x000300f7,0x00000221,0x00000000,0x000400fa,0x0000021f,0x00000220,0x00000221, + 0x000200f8,0x00000220,0x0004003d,0x00000167,0x00000222,0x000001b6,0x0004003d,0x0000001f, + 0x00000223,0x00000046,0x0004003d,0x00000030,0x00000224,0x00000047,0x00040063,0x00000222, + 0x00000223,0x00000224,0x000200f9,0x00000221,0x000200f8,0x00000221,0x0004003d,0x00000006, + 0x00000225,0x00000048,0x000500aa,0x00000077,0x00000226,0x00000225,0x000001bc,0x000300f7, + 0x00000228,0x00000000,0x000400fa,0x00000226,0x00000227,0x00000228,0x000200f8,0x00000227, + 0x0004003d,0x00000167,0x00000229,0x000001c0,0x0004003d,0x0000001f,0x0000022a,0x00000046, + 0x0004003d,0x00000030,0x0000022b,0x00000047,0x00040063,0x00000229,0x0000022a,0x0000022b, + 0x000200f9,0x00000228,0x000200f8,0x00000228,0x0004003d,0x00000006,0x0000022c,0x00000048, + 0x000500aa,0x00000077,0x0000022d,0x0000022c,0x000001c6,0x000300f7,0x0000022f,0x00000000, + 0x000400fa,0x0000022d,0x0000022e,0x0000022f,0x000200f8,0x0000022e,0x0004003d,0x00000167, + 0x00000230,0x000001ca,0x0004003d,0x0000001f,0x00000231,0x00000046,0x0004003d,0x00000030, + 0x00000232,0x00000047,0x00040063,0x00000230,0x00000231,0x00000232,0x000200f9,0x0000022f, + 0x000200f8,0x0000022f,0x0004003d,0x00000006,0x00000233,0x00000048,0x000500aa,0x00000077, + 0x00000234,0x00000233,0x000001d0,0x000300f7,0x00000236,0x00000000,0x000400fa,0x00000234, + 0x00000235,0x00000236,0x000200f8,0x00000235,0x0004003d,0x00000167,0x00000237,0x000001d4, + 0x0004003d,0x0000001f,0x00000238,0x00000046,0x0004003d,0x00000030,0x00000239,0x00000047, + 0x00040063,0x00000237,0x00000238,0x00000239,0x000200f9,0x00000236,0x000200f8,0x00000236, + 0x0004003d,0x00000006,0x0000023a,0x00000048,0x000500aa,0x00000077,0x0000023b,0x0000023a, + 0x000001da,0x000300f7,0x0000023d,0x00000000,0x000400fa,0x0000023b,0x0000023c,0x0000023d, + 0x000200f8,0x0000023c,0x0004003d,0x00000167,0x0000023e,0x000001de,0x0004003d,0x0000001f, + 0x0000023f,0x00000046,0x0004003d,0x00000030,0x00000240,0x00000047,0x00040063,0x0000023e, + 0x0000023f,0x00000240,0x000200f9,0x0000023d,0x000200f8,0x0000023d,0x000100fd,0x00010038, + 0x00050036,0x00000030,0x0000004d,0x00000000,0x0000003f,0x00030037,0x0000002f,0x0000004b, + 0x00030037,0x00000007,0x0000004c,0x000200f8,0x0000004e,0x0004003b,0x00000044,0x00000241, + 0x00000007,0x0004003b,0x0000002f,0x00000242,0x00000007,0x0004003b,0x00000014,0x0000024d, + 0x00000007,0x0004003d,0x0000001f,0x00000243,0x0000004b,0x0003003e,0x00000242,0x00000243, + 0x00050039,0x00000030,0x00000244,0x00000033,0x00000242,0x00040039,0x0000001f,0x00000245, + 0x00000025,0x00050051,0x0000001e,0x00000246,0x00000245,0x00000000,0x000500ad,0x00000077, + 0x00000247,0x00000246,0x000000fe,0x000600a9,0x00000013,0x00000248,0x00000247,0x00000106, + 0x00000105,0x0005008e,0x00000030,0x00000249,0x00000244,0x00000248,0x0003003e,0x00000241, + 0x00000249,0x00050041,0x00000014,0x0000024a,0x00000241,0x0000010b,0x0004003d,0x00000013, + 0x0000024b,0x0000024a,0x00050083,0x00000013,0x0000024c,0x00000106,0x0000024b,0x0003003e, + 0x0000024d,0x0000024c,0x00050039,0x00000013,0x0000024e,0x00000017,0x0000024d,0x00050041, + 0x00000014,0x0000024f,0x00000241,0x0000010b,0x0003003e,0x0000024f,0x0000024e,0x00050041, + 0x00000035,0x00000250,0x0000004b,0x00000161,0x0004003d,0x0000001e,0x00000251,0x00000250, + 0x00040039,0x0000001f,0x00000252,0x00000021,0x00050051,0x0000001e,0x00000253,0x00000252, + 0x00000000,0x000500b1,0x00000077,0x00000254,0x00000251,0x00000253,0x000400a8,0x00000077, + 0x00000255,0x00000254,0x000300f7,0x00000257,0x00000000,0x000400fa,0x00000255,0x00000256, + 0x00000257,0x000200f8,0x00000256,0x00050041,0x00000035,0x00000258,0x0000004b,0x00000161, + 0x0004003d,0x0000001e,0x00000259,0x00000258,0x00040039,0x0000001f,0x0000025a,0x00000023, + 0x00050051,0x0000001e,0x0000025b,0x0000025a,0x00000000,0x00040039,0x0000001f,0x0000025c, + 0x00000021,0x00050051,0x0000001e,0x0000025d,0x0000025c,0x00000000,0x00050080,0x0000001e, + 0x0000025e,0x0000025b,0x0000025d,0x000500af,0x00000077,0x0000025f,0x00000259,0x0000025e, + 0x000200f9,0x00000257,0x000200f8,0x00000257,0x000700f5,0x00000077,0x00000260,0x00000254, + 0x0000004e,0x0000025f,0x00000256,0x000400a8,0x00000077,0x00000261,0x00000260,0x000300f7, + 0x00000263,0x00000000,0x000400fa,0x00000261,0x00000262,0x00000263,0x000200f8,0x00000262, + 0x00050041,0x00000035,0x00000264,0x0000004b,0x00000111,0x0004003d,0x0000001e,0x00000265, + 0x00000264,0x00040039,0x0000001f,0x00000266,0x00000021,0x00050051,0x0000001e,0x00000267, + 0x00000266,0x00000001,0x000500b1,0x00000077,0x00000268,0x00000265,0x00000267,0x000200f9, + 0x00000263,0x000200f8,0x00000263,0x000700f5,0x00000077,0x00000269,0x00000260,0x00000257, + 0x00000268,0x00000262,0x000400a8,0x00000077,0x0000026a,0x00000269,0x000300f7,0x0000026c, + 0x00000000,0x000400fa,0x0000026a,0x0000026b,0x0000026c,0x000200f8,0x0000026b,0x00050041, + 0x00000035,0x0000026d,0x0000004b,0x00000111,0x0004003d,0x0000001e,0x0000026e,0x0000026d, + 0x00040039,0x0000001f,0x0000026f,0x00000023,0x00050051,0x0000001e,0x00000270,0x0000026f, + 0x00000001,0x00040039,0x0000001f,0x00000271,0x00000021,0x00050051,0x0000001e,0x00000272, + 0x00000271,0x00000001,0x00050080,0x0000001e,0x00000273,0x00000270,0x00000272,0x000500af, + 0x00000077,0x00000274,0x0000026e,0x00000273,0x000200f9,0x0000026c,0x000200f8,0x0000026c, + 0x000700f5,0x00000077,0x00000275,0x00000269,0x00000263,0x00000274,0x0000026b,0x000300f7, + 0x00000277,0x00000000,0x000400fa,0x00000275,0x00000276,0x00000277,0x000200f8,0x00000276, + 0x00050041,0x00000014,0x00000278,0x00000241,0x0000010b,0x0003003e,0x00000278,0x00000105, + 0x000200f9,0x00000277,0x000200f8,0x00000277,0x0004003d,0x00000030,0x00000279,0x00000241, + 0x000200fe,0x00000279,0x00010038,0x00050036,0x00000030,0x00000051,0x00000000,0x0000003f, + 0x00030037,0x0000002f,0x0000004f,0x00030037,0x00000007,0x00000050,0x000200f8,0x00000052, + 0x0004003b,0x0000002f,0x0000027c,0x00000007,0x0004003b,0x00000007,0x0000027e,0x00000007, + 0x0004003d,0x0000001f,0x0000027d,0x0000004f,0x0003003e,0x0000027c,0x0000027d,0x0003003e, + 0x0000027e,0x00000194,0x00060039,0x00000030,0x0000027f,0x00000042,0x0000027c,0x0000027e, + 0x000200fe,0x0000027f,0x00010038,0x00050036,0x00000002,0x00000058,0x00000000,0x00000053, + 0x00030037,0x0000002f,0x00000054,0x00030037,0x00000044,0x00000055,0x00030037,0x00000007, + 0x00000056,0x00030037,0x00000007,0x00000057,0x000200f8,0x00000059,0x0004003b,0x0000002f, + 0x00000282,0x00000007,0x0004003b,0x00000044,0x00000284,0x00000007,0x0004003b,0x00000007, + 0x00000286,0x00000007,0x0004003d,0x0000001f,0x00000283,0x00000054,0x0003003e,0x00000282, + 0x00000283,0x0004003d,0x00000030,0x00000285,0x00000055,0x0003003e,0x00000284,0x00000285, + 0x0004003d,0x00000006,0x00000287,0x00000056,0x0003003e,0x00000286,0x00000287,0x00070039, + 0x00000002,0x00000288,0x00000049,0x00000282,0x00000284,0x00000286,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000005c,0x00000000,0x0000005a,0x00030037,0x00000007,0x0000005b, + 0x000200f8,0x0000005d,0x0004003b,0x00000035,0x0000028b,0x00000007,0x0004003b,0x00000007, + 0x0000028c,0x00000007,0x0003003e,0x0000028b,0x000000fe,0x00060039,0x00000002,0x0000028d, + 0x0000003d,0x0000028b,0x0000028c,0x0004003d,0x00000006,0x0000028e,0x0000028c,0x0003003e, + 0x0000028a,0x0000028e,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000005e,0x00000000, + 0x00000027,0x000200f8,0x0000005f,0x0004003d,0x00000006,0x0000028f,0x0000028a,0x000200fe, + 0x0000028f,0x00010038,0x00050036,0x00000002,0x00000061,0x00000000,0x0000005a,0x00030037, + 0x00000007,0x00000060,0x000200f8,0x00000062,0x0004003b,0x00000035,0x00000292,0x00000007, + 0x0004003b,0x00000007,0x00000293,0x00000007,0x0003003e,0x00000292,0x000000fe,0x0003003e, + 0x00000293,0x00000161,0x00060039,0x00000002,0x00000294,0x00000039,0x00000292,0x00000293, + 0x000100fd,0x00010038,0x00050036,0x00000030,0x00000066,0x00000000,0x00000063,0x00030037, + 0x00000007,0x00000064,0x00030037,0x00000007,0x00000065,0x000200f8,0x00000067,0x0004003d, + 0x00000006,0x0000029a,0x00000064,0x0004003d,0x00000006,0x0000029b,0x00000065,0x00060041, + 0x0000029c,0x0000029d,0x00000299,0x0000029a,0x0000029b,0x0004003d,0x00000013,0x0000029e, + 0x0000029d,0x0004003d,0x00000006,0x000002a0,0x00000064,0x0004003d,0x00000006,0x000002a1, + 0x00000065,0x00060041,0x0000029c,0x000002a2,0x0000029f,0x000002a0,0x000002a1,0x0004003d, + 0x00000013,0x000002a3,0x000002a2,0x0004003d,0x00000006,0x000002a5,0x00000064,0x0004003d, + 0x00000006,0x000002a6,0x00000065,0x00060041,0x0000029c,0x000002a7,0x000002a4,0x000002a5, + 0x000002a6,0x0004003d,0x00000013,0x000002a8,0x000002a7,0x0004003d,0x00000006,0x000002aa, + 0x00000064,0x0004003d,0x00000006,0x000002ab,0x00000065,0x00060041,0x0000029c,0x000002ac, + 0x000002a9,0x000002aa,0x000002ab,0x0004003d,0x00000013,0x000002ad,0x000002ac,0x00070050, + 0x00000030,0x000002ae,0x0000029e,0x000002a3,0x000002a8,0x000002ad,0x000200fe,0x000002ae, + 0x00010038,0x00050036,0x00000002,0x0000006c,0x00000000,0x00000068,0x00030037,0x00000007, + 0x00000069,0x00030037,0x00000007,0x0000006a,0x00030037,0x00000044,0x0000006b,0x000200f8, + 0x0000006d,0x0004003d,0x00000006,0x000002b1,0x00000069,0x0004003d,0x00000006,0x000002b2, + 0x0000006a,0x00050041,0x00000014,0x000002b3,0x0000006b,0x00000161,0x0004003d,0x00000013, + 0x000002b4,0x000002b3,0x00060041,0x0000029c,0x000002b5,0x00000299,0x000002b1,0x000002b2, + 0x0003003e,0x000002b5,0x000002b4,0x0004003d,0x00000006,0x000002b6,0x00000069,0x0004003d, + 0x00000006,0x000002b7,0x0000006a,0x00050041,0x00000014,0x000002b8,0x0000006b,0x00000111, + 0x0004003d,0x00000013,0x000002b9,0x000002b8,0x00060041,0x0000029c,0x000002ba,0x0000029f, + 0x000002b6,0x000002b7,0x0003003e,0x000002ba,0x000002b9,0x0004003d,0x00000006,0x000002bb, + 0x00000069,0x0004003d,0x00000006,0x000002bc,0x0000006a,0x00050041,0x00000014,0x000002bd, + 0x0000006b,0x0000010a,0x0004003d,0x00000013,0x000002be,0x000002bd,0x00060041,0x0000029c, + 0x000002bf,0x000002a4,0x000002bb,0x000002bc,0x0003003e,0x000002bf,0x000002be,0x0004003d, + 0x00000006,0x000002c0,0x00000069,0x0004003d,0x00000006,0x000002c1,0x0000006a,0x00050041, + 0x00000014,0x000002c2,0x0000006b,0x0000010b,0x0004003d,0x00000013,0x000002c3,0x000002c2, + 0x00060041,0x0000029c,0x000002c4,0x000002a9,0x000002c0,0x000002c1,0x0003003e,0x000002c4, + 0x000002c3,0x000100fd,0x00010038,0x00050036,0x00000030,0x00000073,0x00000000,0x0000006e, + 0x00030037,0x00000044,0x0000006f,0x00030037,0x00000044,0x00000070,0x00030037,0x00000044, + 0x00000071,0x00030037,0x00000044,0x00000072,0x000200f8,0x00000074,0x0004003b,0x00000044, + 0x000002c5,0x00000007,0x0004003b,0x00000014,0x000002cf,0x00000007,0x00050041,0x00000014, + 0x000002c6,0x0000006f,0x0000010b,0x0004003d,0x00000013,0x000002c7,0x000002c6,0x00050041, + 0x00000014,0x000002c8,0x00000070,0x0000010b,0x0004003d,0x00000013,0x000002c9,0x000002c8, + 0x00050041,0x00000014,0x000002ca,0x00000071,0x0000010b,0x0004003d,0x00000013,0x000002cb, + 0x000002ca,0x00050041,0x00000014,0x000002cc,0x00000072,0x0000010b,0x0004003d,0x00000013, + 0x000002cd,0x000002cc,0x00070050,0x00000030,0x000002ce,0x000002c7,0x000002c9,0x000002cb, + 0x000002cd,0x0003003e,0x000002c5,0x000002ce,0x00050041,0x00000014,0x000002d0,0x000002c5, + 0x00000161,0x0004003d,0x00000013,0x000002d1,0x000002d0,0x00050041,0x00000014,0x000002d2, + 0x000002c5,0x00000111,0x0004003d,0x00000013,0x000002d3,0x000002d2,0x00050081,0x00000013, + 0x000002d4,0x000002d1,0x000002d3,0x00050041,0x00000014,0x000002d5,0x000002c5,0x0000010a, + 0x0004003d,0x00000013,0x000002d6,0x000002d5,0x00050081,0x00000013,0x000002d7,0x000002d4, + 0x000002d6,0x00050041,0x00000014,0x000002d8,0x000002c5,0x0000010b,0x0004003d,0x00000013, + 0x000002d9,0x000002d8,0x00050081,0x00000013,0x000002da,0x000002d7,0x000002d9,0x0003003e, + 0x000002cf,0x000002da,0x0004003d,0x00000013,0x000002db,0x000002cf,0x000500b4,0x00000077, + 0x000002dc,0x000002db,0x00000105,0x000300f7,0x000002de,0x00000000,0x000400fa,0x000002dc, + 0x000002dd,0x000002de,0x000200f8,0x000002dd,0x000200fe,0x000001e3,0x000200f8,0x000002de, + 0x0004003d,0x00000030,0x000002e0,0x0000006f,0x00050041,0x00000014,0x000002e1,0x000002c5, + 0x00000161,0x0004003d,0x00000013,0x000002e2,0x000002e1,0x0005008e,0x00000030,0x000002e3, + 0x000002e0,0x000002e2,0x0004003d,0x00000030,0x000002e4,0x00000070,0x00050041,0x00000014, + 0x000002e5,0x000002c5,0x00000111,0x0004003d,0x00000013,0x000002e6,0x000002e5,0x0005008e, + 0x00000030,0x000002e7,0x000002e4,0x000002e6,0x00050081,0x00000030,0x000002e8,0x000002e3, + 0x000002e7,0x0004003d,0x00000030,0x000002e9,0x00000071,0x00050041,0x00000014,0x000002ea, + 0x000002c5,0x0000010a,0x0004003d,0x00000013,0x000002eb,0x000002ea,0x0005008e,0x00000030, + 0x000002ec,0x000002e9,0x000002eb,0x00050081,0x00000030,0x000002ed,0x000002e8,0x000002ec, + 0x0004003d,0x00000030,0x000002ee,0x00000072,0x00050041,0x00000014,0x000002ef,0x000002c5, + 0x0000010b,0x0004003d,0x00000013,0x000002f0,0x000002ef,0x0005008e,0x00000030,0x000002f1, + 0x000002ee,0x000002f0,0x00050081,0x00000030,0x000002f2,0x000002ed,0x000002f1,0x0004003d, + 0x00000013,0x000002f3,0x000002cf,0x00070050,0x00000030,0x000002f4,0x000002f3,0x000002f3, + 0x000002f3,0x000002f3,0x00050088,0x00000030,0x000002f5,0x000002f2,0x000002f4,0x000200fe, + 0x000002f5,0x00010038,0x00050036,0x00000002,0x00000075,0x00000000,0x00000003,0x000200f8, + 0x00000076,0x000300e1,0x0000010a,0x000002f8,0x000400e0,0x0000010a,0x0000010a,0x000002f9, + 0x000100fd,0x00010038,0x00050036,0x00000077,0x0000007c,0x00000000,0x00000078,0x00030037, + 0x00000007,0x00000079,0x00030037,0x00000007,0x0000007a,0x00030037,0x00000007,0x0000007b, + 0x000200f8,0x0000007d,0x0004003b,0x00000007,0x000002fe,0x00000007,0x0004003d,0x00000006, + 0x000002fa,0x0000007a,0x000500aa,0x00000077,0x000002fb,0x000002fa,0x00000161,0x000300f7, + 0x000002fd,0x00000000,0x000400fa,0x000002fb,0x000002fc,0x000002fd,0x000200f8,0x000002fc, + 0x0004003d,0x00000006,0x000002ff,0x0000007b,0x0003003e,0x000002fe,0x000002ff,0x00050039, + 0x00000002,0x00000300,0x0000005c,0x000002fe,0x000200f9,0x000002fd,0x000200f8,0x000002fd, + 0x00040039,0x00000002,0x00000301,0x00000075,0x00040039,0x00000006,0x00000302,0x0000005e, + 0x0004003d,0x00000006,0x00000303,0x00000079,0x00050082,0x00000006,0x00000304,0x00000303, + 0x00000111,0x000500ab,0x00000077,0x00000305,0x00000302,0x00000304,0x000200fe,0x00000305, + 0x00010038,0x00050036,0x00000030,0x00000080,0x00000000,0x0000007e,0x00030037,0x00000044, + 0x0000007f,0x000200f8,0x00000081,0x0004003b,0x00000044,0x00000308,0x00000007,0x0004003b, + 0x00000044,0x0000030a,0x00000007,0x0004003b,0x00000044,0x0000030d,0x00000007,0x0004003b, + 0x00000044,0x00000310,0x00000007,0x0004003b,0x00000044,0x00000313,0x00000007,0x0004003b, + 0x00000044,0x00000315,0x00000007,0x0004003b,0x00000044,0x00000317,0x00000007,0x0004003b, + 0x00000044,0x00000319,0x00000007,0x0004003d,0x00000030,0x00000309,0x0000007f,0x0003003e, + 0x00000308,0x00000309,0x0004003d,0x00000030,0x0000030b,0x0000007f,0x0006016e,0x00000030, + 0x0000030c,0x0000010b,0x0000030b,0x00000161,0x0003003e,0x0000030a,0x0000030c,0x0004003d, + 0x00000030,0x0000030e,0x0000007f,0x0006016e,0x00000030,0x0000030f,0x0000010b,0x0000030e, + 0x00000111,0x0003003e,0x0000030d,0x0000030f,0x0004003d,0x00000030,0x00000311,0x0000007f, + 0x0006016e,0x00000030,0x00000312,0x0000010b,0x00000311,0x0000010a,0x0003003e,0x00000310, + 0x00000312,0x0004003d,0x00000030,0x00000314,0x00000308,0x0003003e,0x00000313,0x00000314, + 0x0004003d,0x00000030,0x00000316,0x0000030a,0x0003003e,0x00000315,0x00000316,0x0004003d, + 0x00000030,0x00000318,0x0000030d,0x0003003e,0x00000317,0x00000318,0x0004003d,0x00000030, + 0x0000031a,0x00000310,0x0003003e,0x00000319,0x0000031a,0x00080039,0x00000030,0x0000031b, + 0x00000073,0x00000313,0x00000315,0x00000317,0x00000319,0x000200fe,0x0000031b,0x00010038, + 0x00050036,0x00000030,0x00000089,0x00000000,0x00000083,0x00030037,0x00000082,0x00000084, + 0x00030037,0x00000082,0x00000085,0x00030037,0x00000082,0x00000086,0x00030037,0x00000082, + 0x00000087,0x00030037,0x00000007,0x00000088,0x000200f8,0x0000008a,0x0004003b,0x00000044, + 0x00000320,0x00000007,0x0004003b,0x0000002f,0x00000323,0x00000007,0x0004003b,0x00000007, + 0x00000324,0x00000007,0x0004003b,0x00000044,0x00000327,0x00000007,0x0004003b,0x0000002f, + 0x0000032a,0x00000007,0x0004003b,0x00000007,0x0000032b,0x00000007,0x0004003b,0x00000044, + 0x0000032e,0x00000007,0x0004003b,0x0000002f,0x00000331,0x00000007,0x0004003b,0x00000007, + 0x00000332,0x00000007,0x0004003b,0x00000044,0x00000335,0x00000007,0x0004003b,0x0000002f, + 0x00000338,0x00000007,0x0004003b,0x00000007,0x00000339,0x00000007,0x0004003b,0x00000044, + 0x0000033c,0x00000007,0x0004003b,0x00000044,0x0000033e,0x00000007,0x0004003b,0x00000044, + 0x00000340,0x00000007,0x0004003b,0x00000044,0x00000342,0x00000007,0x0004003d,0x00000019, + 0x00000321,0x00000084,0x0004007c,0x0000001f,0x00000322,0x00000321,0x0003003e,0x00000323, + 0x00000322,0x0004003d,0x00000006,0x00000325,0x00000088,0x0003003e,0x00000324,0x00000325, + 0x00060039,0x00000030,0x00000326,0x00000051,0x00000323,0x00000324,0x0003003e,0x00000320, + 0x00000326,0x0004003d,0x00000019,0x00000328,0x00000085,0x0004007c,0x0000001f,0x00000329, + 0x00000328,0x0003003e,0x0000032a,0x00000329,0x0004003d,0x00000006,0x0000032c,0x00000088, + 0x0003003e,0x0000032b,0x0000032c,0x00060039,0x00000030,0x0000032d,0x00000051,0x0000032a, + 0x0000032b,0x0003003e,0x00000327,0x0000032d,0x0004003d,0x00000019,0x0000032f,0x00000086, + 0x0004007c,0x0000001f,0x00000330,0x0000032f,0x0003003e,0x00000331,0x00000330,0x0004003d, + 0x00000006,0x00000333,0x00000088,0x0003003e,0x00000332,0x00000333,0x00060039,0x00000030, + 0x00000334,0x00000051,0x00000331,0x00000332,0x0003003e,0x0000032e,0x00000334,0x0004003d, + 0x00000019,0x00000336,0x00000087,0x0004007c,0x0000001f,0x00000337,0x00000336,0x0003003e, + 0x00000338,0x00000337,0x0004003d,0x00000006,0x0000033a,0x00000088,0x0003003e,0x00000339, + 0x0000033a,0x00060039,0x00000030,0x0000033b,0x00000051,0x00000338,0x00000339,0x0003003e, + 0x00000335,0x0000033b,0x0004003d,0x00000030,0x0000033d,0x00000320,0x0003003e,0x0000033c, + 0x0000033d,0x0004003d,0x00000030,0x0000033f,0x00000327,0x0003003e,0x0000033e,0x0000033f, + 0x0004003d,0x00000030,0x00000341,0x0000032e,0x0003003e,0x00000340,0x00000341,0x0004003d, + 0x00000030,0x00000343,0x00000335,0x0003003e,0x00000342,0x00000343,0x00080039,0x00000030, + 0x00000344,0x00000073,0x0000033c,0x0000033e,0x00000340,0x00000342,0x000200fe,0x00000344, + 0x00010038,0x00050036,0x00000030,0x0000008e,0x00000000,0x0000008b,0x00030037,0x00000082, + 0x0000008c,0x00030037,0x00000007,0x0000008d,0x000200f8,0x0000008f,0x0004003b,0x00000082, + 0x00000353,0x00000007,0x0004003b,0x00000082,0x00000354,0x00000007,0x0004003b,0x00000082, + 0x00000355,0x00000007,0x0004003b,0x00000082,0x00000356,0x00000007,0x0004003b,0x00000007, + 0x00000357,0x00000007,0x0004003d,0x00000019,0x00000347,0x0000008c,0x00050080,0x00000019, + 0x00000349,0x00000347,0x00000348,0x0004003d,0x00000019,0x0000034a,0x0000008c,0x00050080, + 0x00000019,0x0000034c,0x0000034a,0x0000034b,0x0004003d,0x00000019,0x0000034d,0x0000008c, + 0x00050080,0x00000019,0x0000034f,0x0000034d,0x0000034e,0x0004003d,0x00000019,0x00000350, + 0x0000008c,0x00050080,0x00000019,0x00000352,0x00000350,0x00000351,0x0003003e,0x00000353, + 0x00000349,0x0003003e,0x00000354,0x0000034c,0x0003003e,0x00000355,0x0000034f,0x0003003e, + 0x00000356,0x00000352,0x0004003d,0x00000006,0x00000358,0x0000008d,0x0003003e,0x00000357, + 0x00000358,0x00090039,0x00000030,0x00000359,0x00000089,0x00000353,0x00000354,0x00000355, + 0x00000356,0x00000357,0x000200fe,0x00000359,0x00010038,0x00050036,0x00000030,0x00000095, + 0x00000000,0x00000083,0x00030037,0x00000082,0x00000090,0x00030037,0x00000082,0x00000091, + 0x00030037,0x00000082,0x00000092,0x00030037,0x00000082,0x00000093,0x00030037,0x00000007, + 0x00000094,0x000200f8,0x00000096,0x0004003b,0x00000044,0x0000035c,0x00000007,0x0004003b, + 0x0000002f,0x0000035f,0x00000007,0x0004003b,0x00000007,0x00000360,0x00000007,0x0004003b, + 0x00000044,0x00000363,0x00000007,0x0004003b,0x0000002f,0x00000366,0x00000007,0x0004003b, + 0x00000007,0x00000367,0x00000007,0x0004003b,0x00000044,0x0000036a,0x00000007,0x0004003b, + 0x0000002f,0x0000036d,0x00000007,0x0004003b,0x00000007,0x0000036e,0x00000007,0x0004003b, + 0x00000044,0x00000371,0x00000007,0x0004003b,0x0000002f,0x00000374,0x00000007,0x0004003b, + 0x00000007,0x00000375,0x00000007,0x0004003b,0x00000044,0x00000378,0x00000007,0x0004003b, + 0x00000044,0x0000037a,0x00000007,0x0004003b,0x00000044,0x0000037c,0x00000007,0x0004003b, + 0x00000044,0x0000037e,0x00000007,0x0004003d,0x00000019,0x0000035d,0x00000090,0x0004007c, + 0x0000001f,0x0000035e,0x0000035d,0x0003003e,0x0000035f,0x0000035e,0x0004003d,0x00000006, + 0x00000361,0x00000094,0x0003003e,0x00000360,0x00000361,0x00060039,0x00000030,0x00000362, + 0x0000004d,0x0000035f,0x00000360,0x0003003e,0x0000035c,0x00000362,0x0004003d,0x00000019, + 0x00000364,0x00000091,0x0004007c,0x0000001f,0x00000365,0x00000364,0x0003003e,0x00000366, + 0x00000365,0x0004003d,0x00000006,0x00000368,0x00000094,0x0003003e,0x00000367,0x00000368, + 0x00060039,0x00000030,0x00000369,0x0000004d,0x00000366,0x00000367,0x0003003e,0x00000363, + 0x00000369,0x0004003d,0x00000019,0x0000036b,0x00000092,0x0004007c,0x0000001f,0x0000036c, + 0x0000036b,0x0003003e,0x0000036d,0x0000036c,0x0004003d,0x00000006,0x0000036f,0x00000094, + 0x0003003e,0x0000036e,0x0000036f,0x00060039,0x00000030,0x00000370,0x0000004d,0x0000036d, + 0x0000036e,0x0003003e,0x0000036a,0x00000370,0x0004003d,0x00000019,0x00000372,0x00000093, + 0x0004007c,0x0000001f,0x00000373,0x00000372,0x0003003e,0x00000374,0x00000373,0x0004003d, + 0x00000006,0x00000376,0x00000094,0x0003003e,0x00000375,0x00000376,0x00060039,0x00000030, + 0x00000377,0x0000004d,0x00000374,0x00000375,0x0003003e,0x00000371,0x00000377,0x0004003d, + 0x00000030,0x00000379,0x0000035c,0x0003003e,0x00000378,0x00000379,0x0004003d,0x00000030, + 0x0000037b,0x00000363,0x0003003e,0x0000037a,0x0000037b,0x0004003d,0x00000030,0x0000037d, + 0x0000036a,0x0003003e,0x0000037c,0x0000037d,0x0004003d,0x00000030,0x0000037f,0x00000371, + 0x0003003e,0x0000037e,0x0000037f,0x00080039,0x00000030,0x00000380,0x00000073,0x00000378, + 0x0000037a,0x0000037c,0x0000037e,0x000200fe,0x00000380,0x00010038,0x00050036,0x00000030, + 0x00000099,0x00000000,0x0000008b,0x00030037,0x00000082,0x00000097,0x00030037,0x00000007, + 0x00000098,0x000200f8,0x0000009a,0x0004003b,0x00000082,0x0000038b,0x00000007,0x0004003b, + 0x00000082,0x0000038c,0x00000007,0x0004003b,0x00000082,0x0000038d,0x00000007,0x0004003b, + 0x00000082,0x0000038e,0x00000007,0x0004003b,0x00000007,0x0000038f,0x00000007,0x0004003d, + 0x00000019,0x00000383,0x00000097,0x00050080,0x00000019,0x00000384,0x00000383,0x00000348, + 0x0004003d,0x00000019,0x00000385,0x00000097,0x00050080,0x00000019,0x00000386,0x00000385, + 0x0000034b,0x0004003d,0x00000019,0x00000387,0x00000097,0x00050080,0x00000019,0x00000388, + 0x00000387,0x0000034e,0x0004003d,0x00000019,0x00000389,0x00000097,0x00050080,0x00000019, + 0x0000038a,0x00000389,0x00000351,0x0003003e,0x0000038b,0x00000384,0x0003003e,0x0000038c, + 0x00000386,0x0003003e,0x0000038d,0x00000388,0x0003003e,0x0000038e,0x0000038a,0x0004003d, + 0x00000006,0x00000390,0x00000098,0x0003003e,0x0000038f,0x00000390,0x00090039,0x00000030, + 0x00000391,0x00000095,0x0000038b,0x0000038c,0x0000038d,0x0000038e,0x0000038f,0x000200fe, + 0x00000391,0x00010038,0x00050036,0x00000002,0x000000a2,0x00000000,0x0000009b,0x00030037, + 0x00000007,0x0000009c,0x00030037,0x00000007,0x0000009d,0x00030037,0x00000082,0x0000009e, + 0x00030037,0x00000007,0x0000009f,0x00030037,0x00000007,0x000000a0,0x00030037,0x00000007, + 0x000000a1,0x000200f8,0x000000a3,0x0004003b,0x0000002f,0x00000394,0x00000007,0x0004003b, + 0x0000002f,0x000003a2,0x00000007,0x0004003b,0x000003af,0x000003b0,0x00000007,0x0004003b, + 0x00000082,0x000003b3,0x00000007,0x0004003b,0x00000007,0x000003b4,0x00000007,0x0004003b, + 0x0000002f,0x000003b8,0x00000007,0x0004003b,0x00000044,0x000003ba,0x00000007,0x0004003b, + 0x00000007,0x000003bd,0x00000007,0x0004003b,0x00000007,0x000003be,0x00000007,0x0004003b, + 0x00000082,0x000003db,0x00000007,0x0004003b,0x00000007,0x000003dc,0x00000007,0x0004003b, + 0x0000002f,0x000003e0,0x00000007,0x0004003b,0x00000044,0x000003e2,0x00000007,0x0004003b, + 0x00000007,0x000003e5,0x00000007,0x0004003b,0x00000007,0x000003e6,0x00000007,0x0004003b, + 0x00000082,0x00000403,0x00000007,0x0004003b,0x00000007,0x00000404,0x00000007,0x0004003b, + 0x0000002f,0x00000408,0x00000007,0x0004003b,0x00000044,0x0000040a,0x00000007,0x0004003b, + 0x00000007,0x0000040d,0x00000007,0x0004003b,0x00000007,0x0000040e,0x00000007,0x0004003b, + 0x00000082,0x0000042e,0x00000007,0x0004003b,0x00000007,0x0000042f,0x00000007,0x0004003b, + 0x0000002f,0x00000433,0x00000007,0x0004003b,0x00000044,0x00000435,0x00000007,0x0004003b, + 0x00000007,0x00000438,0x00000007,0x0004003b,0x00000007,0x00000439,0x00000007,0x0004003b, + 0x00000044,0x00000441,0x00000007,0x0004003b,0x00000044,0x00000446,0x00000007,0x0004003b, + 0x00000044,0x0000044b,0x00000007,0x0004003b,0x00000044,0x00000450,0x00000007,0x0004003b, + 0x0000002f,0x00000466,0x00000007,0x0004003b,0x00000044,0x00000467,0x00000007,0x0004003b, + 0x00000007,0x0000046a,0x00000007,0x0004003b,0x00000007,0x0000046b,0x00000007,0x0004003b, + 0x00000007,0x00000472,0x00000007,0x0004003b,0x00000007,0x00000473,0x00000007,0x0004003b, + 0x00000044,0x00000474,0x00000007,0x0004003b,0x0000002f,0x00000485,0x00000007,0x0004003b, + 0x00000044,0x00000486,0x00000007,0x0004003b,0x00000007,0x00000489,0x00000007,0x0004003b, + 0x00000007,0x0000048a,0x00000007,0x0004003b,0x00000007,0x00000492,0x00000007,0x0004003b, + 0x00000007,0x00000493,0x00000007,0x0004003b,0x00000044,0x00000494,0x00000007,0x0004003b, + 0x0000002f,0x000004a5,0x00000007,0x0004003b,0x00000044,0x000004a6,0x00000007,0x0004003b, + 0x00000007,0x000004a9,0x00000007,0x0004003b,0x00000007,0x000004aa,0x00000007,0x0004003b, + 0x00000007,0x000004b2,0x00000007,0x0004003b,0x00000007,0x000004b3,0x00000007,0x0004003b, + 0x00000044,0x000004b4,0x00000007,0x0004003b,0x0000002f,0x000004c6,0x00000007,0x0004003b, + 0x00000044,0x000004c7,0x00000007,0x0004003b,0x00000007,0x000004ca,0x00000007,0x0004003b, + 0x00000007,0x000004cb,0x00000007,0x0004003b,0x00000007,0x000004d4,0x00000007,0x0004003b, + 0x00000007,0x000004d5,0x00000007,0x0004003b,0x00000044,0x000004d6,0x00000007,0x0004003d, + 0x00000019,0x00000395,0x0000009e,0x00050050,0x00000019,0x00000397,0x00000396,0x00000396, + 0x00050084,0x00000019,0x00000398,0x00000395,0x00000397,0x0004007c,0x0000001f,0x00000399, + 0x00000398,0x0004003d,0x00000006,0x0000039a,0x0000009c,0x00050084,0x00000006,0x0000039b, + 0x0000039a,0x0000010a,0x0004007c,0x0000001e,0x0000039c,0x0000039b,0x0004003d,0x00000006, + 0x0000039d,0x0000009d,0x00050084,0x00000006,0x0000039e,0x0000039d,0x0000010a,0x0004007c, + 0x0000001e,0x0000039f,0x0000039e,0x00050050,0x0000001f,0x000003a0,0x0000039c,0x0000039f, + 0x00050080,0x0000001f,0x000003a1,0x00000399,0x000003a0,0x0003003e,0x00000394,0x000003a1, + 0x0004003d,0x00000019,0x000003a3,0x0000009e,0x00050050,0x00000019,0x000003a5,0x000003a4, + 0x000003a4,0x00050084,0x00000019,0x000003a6,0x000003a3,0x000003a5,0x0004007c,0x0000001f, + 0x000003a7,0x000003a6,0x0004003d,0x00000006,0x000003a8,0x0000009c,0x0004007c,0x0000001e, + 0x000003a9,0x000003a8,0x0004003d,0x00000006,0x000003aa,0x0000009d,0x0004007c,0x0000001e, + 0x000003ab,0x000003aa,0x00050050,0x0000001f,0x000003ac,0x000003a9,0x000003ab,0x00050080, + 0x0000001f,0x000003ad,0x000003a7,0x000003ac,0x0003003e,0x000003a2,0x000003ad,0x0004003d, + 0x0000001f,0x000003b1,0x00000394,0x0004007c,0x00000019,0x000003b2,0x000003b1,0x0003003e, + 0x000003b3,0x000003b2,0x0004003d,0x00000006,0x000003b5,0x000000a1,0x0003003e,0x000003b4, + 0x000003b5,0x00060039,0x00000030,0x000003b6,0x00000099,0x000003b3,0x000003b4,0x00050041, + 0x00000044,0x000003b7,0x000003b0,0x000000fe,0x0003003e,0x000003b7,0x000003b6,0x0004003d, + 0x0000001f,0x000003b9,0x000003a2,0x0003003e,0x000003b8,0x000003b9,0x00050041,0x00000044, + 0x000003bb,0x000003b0,0x000000fe,0x0004003d,0x00000030,0x000003bc,0x000003bb,0x0003003e, + 0x000003ba,0x000003bc,0x0003003e,0x000003bd,0x00000161,0x0004003d,0x00000006,0x000003bf, + 0x000000a1,0x0003003e,0x000003be,0x000003bf,0x00080039,0x00000002,0x000003c0,0x00000058, + 0x000003b8,0x000003ba,0x000003bd,0x000003be,0x0004003d,0x00000019,0x000003c1,0x0000009e, + 0x00050050,0x00000019,0x000003c2,0x00000396,0x00000396,0x00050084,0x00000019,0x000003c3, + 0x000003c1,0x000003c2,0x0004007c,0x0000001f,0x000003c4,0x000003c3,0x0004003d,0x00000006, + 0x000003c5,0x0000009c,0x00050084,0x00000006,0x000003c6,0x000003c5,0x0000010a,0x00050080, + 0x00000006,0x000003c7,0x000003c6,0x000003a4,0x0004007c,0x0000001e,0x000003c8,0x000003c7, + 0x0004003d,0x00000006,0x000003c9,0x0000009d,0x00050084,0x00000006,0x000003ca,0x000003c9, + 0x0000010a,0x0004007c,0x0000001e,0x000003cb,0x000003ca,0x00050050,0x0000001f,0x000003cc, + 0x000003c8,0x000003cb,0x00050080,0x0000001f,0x000003cd,0x000003c4,0x000003cc,0x0003003e, + 0x00000394,0x000003cd,0x0004003d,0x00000019,0x000003ce,0x0000009e,0x00050050,0x00000019, + 0x000003cf,0x000003a4,0x000003a4,0x00050084,0x00000019,0x000003d0,0x000003ce,0x000003cf, + 0x0004007c,0x0000001f,0x000003d1,0x000003d0,0x0004003d,0x00000006,0x000003d2,0x0000009c, + 0x00050080,0x00000006,0x000003d3,0x000003d2,0x00000295,0x0004007c,0x0000001e,0x000003d4, + 0x000003d3,0x0004003d,0x00000006,0x000003d5,0x0000009d,0x0004007c,0x0000001e,0x000003d6, + 0x000003d5,0x00050050,0x0000001f,0x000003d7,0x000003d4,0x000003d6,0x00050080,0x0000001f, + 0x000003d8,0x000003d1,0x000003d7,0x0003003e,0x000003a2,0x000003d8,0x0004003d,0x0000001f, + 0x000003d9,0x00000394,0x0004007c,0x00000019,0x000003da,0x000003d9,0x0003003e,0x000003db, + 0x000003da,0x0004003d,0x00000006,0x000003dd,0x000000a1,0x0003003e,0x000003dc,0x000003dd, + 0x00060039,0x00000030,0x000003de,0x00000099,0x000003db,0x000003dc,0x00050041,0x00000044, + 0x000003df,0x000003b0,0x00000138,0x0003003e,0x000003df,0x000003de,0x0004003d,0x0000001f, + 0x000003e1,0x000003a2,0x0003003e,0x000003e0,0x000003e1,0x00050041,0x00000044,0x000003e3, + 0x000003b0,0x00000138,0x0004003d,0x00000030,0x000003e4,0x000003e3,0x0003003e,0x000003e2, + 0x000003e4,0x0003003e,0x000003e5,0x00000161,0x0004003d,0x00000006,0x000003e7,0x000000a1, + 0x0003003e,0x000003e6,0x000003e7,0x00080039,0x00000002,0x000003e8,0x00000058,0x000003e0, + 0x000003e2,0x000003e5,0x000003e6,0x0004003d,0x00000019,0x000003e9,0x0000009e,0x00050050, + 0x00000019,0x000003ea,0x00000396,0x00000396,0x00050084,0x00000019,0x000003eb,0x000003e9, + 0x000003ea,0x0004007c,0x0000001f,0x000003ec,0x000003eb,0x0004003d,0x00000006,0x000003ed, + 0x0000009c,0x00050084,0x00000006,0x000003ee,0x000003ed,0x0000010a,0x0004007c,0x0000001e, + 0x000003ef,0x000003ee,0x0004003d,0x00000006,0x000003f0,0x0000009d,0x00050084,0x00000006, + 0x000003f1,0x000003f0,0x0000010a,0x00050080,0x00000006,0x000003f2,0x000003f1,0x000003a4, + 0x0004007c,0x0000001e,0x000003f3,0x000003f2,0x00050050,0x0000001f,0x000003f4,0x000003ef, + 0x000003f3,0x00050080,0x0000001f,0x000003f5,0x000003ec,0x000003f4,0x0003003e,0x00000394, + 0x000003f5,0x0004003d,0x00000019,0x000003f6,0x0000009e,0x00050050,0x00000019,0x000003f7, + 0x000003a4,0x000003a4,0x00050084,0x00000019,0x000003f8,0x000003f6,0x000003f7,0x0004007c, + 0x0000001f,0x000003f9,0x000003f8,0x0004003d,0x00000006,0x000003fa,0x0000009c,0x0004007c, + 0x0000001e,0x000003fb,0x000003fa,0x0004003d,0x00000006,0x000003fc,0x0000009d,0x00050080, + 0x00000006,0x000003fd,0x000003fc,0x00000295,0x0004007c,0x0000001e,0x000003fe,0x000003fd, + 0x00050050,0x0000001f,0x000003ff,0x000003fb,0x000003fe,0x00050080,0x0000001f,0x00000400, + 0x000003f9,0x000003ff,0x0003003e,0x000003a2,0x00000400,0x0004003d,0x0000001f,0x00000401, + 0x00000394,0x0004007c,0x00000019,0x00000402,0x00000401,0x0003003e,0x00000403,0x00000402, + 0x0004003d,0x00000006,0x00000405,0x000000a1,0x0003003e,0x00000404,0x00000405,0x00060039, + 0x00000030,0x00000406,0x00000099,0x00000403,0x00000404,0x00050041,0x00000044,0x00000407, + 0x000003b0,0x00000149,0x0003003e,0x00000407,0x00000406,0x0004003d,0x0000001f,0x00000409, + 0x000003a2,0x0003003e,0x00000408,0x00000409,0x00050041,0x00000044,0x0000040b,0x000003b0, + 0x00000149,0x0004003d,0x00000030,0x0000040c,0x0000040b,0x0003003e,0x0000040a,0x0000040c, + 0x0003003e,0x0000040d,0x00000161,0x0004003d,0x00000006,0x0000040f,0x000000a1,0x0003003e, + 0x0000040e,0x0000040f,0x00080039,0x00000002,0x00000410,0x00000058,0x00000408,0x0000040a, + 0x0000040d,0x0000040e,0x0004003d,0x00000019,0x00000411,0x0000009e,0x00050050,0x00000019, + 0x00000412,0x00000396,0x00000396,0x00050084,0x00000019,0x00000413,0x00000411,0x00000412, + 0x0004007c,0x0000001f,0x00000414,0x00000413,0x0004003d,0x00000006,0x00000415,0x0000009c, + 0x00050084,0x00000006,0x00000416,0x00000415,0x0000010a,0x00050080,0x00000006,0x00000417, + 0x00000416,0x000003a4,0x0004007c,0x0000001e,0x00000418,0x00000417,0x0004003d,0x00000006, + 0x00000419,0x0000009d,0x00050084,0x00000006,0x0000041a,0x00000419,0x0000010a,0x00050080, + 0x00000006,0x0000041b,0x0000041a,0x000003a4,0x0004007c,0x0000001e,0x0000041c,0x0000041b, + 0x00050050,0x0000001f,0x0000041d,0x00000418,0x0000041c,0x00050080,0x0000001f,0x0000041e, + 0x00000414,0x0000041d,0x0003003e,0x00000394,0x0000041e,0x0004003d,0x00000019,0x0000041f, + 0x0000009e,0x00050050,0x00000019,0x00000420,0x000003a4,0x000003a4,0x00050084,0x00000019, + 0x00000421,0x0000041f,0x00000420,0x0004007c,0x0000001f,0x00000422,0x00000421,0x0004003d, + 0x00000006,0x00000423,0x0000009c,0x00050080,0x00000006,0x00000424,0x00000423,0x00000295, + 0x0004007c,0x0000001e,0x00000425,0x00000424,0x0004003d,0x00000006,0x00000426,0x0000009d, + 0x00050080,0x00000006,0x00000427,0x00000426,0x00000295,0x0004007c,0x0000001e,0x00000428, + 0x00000427,0x00050050,0x0000001f,0x00000429,0x00000425,0x00000428,0x00050080,0x0000001f, + 0x0000042a,0x00000422,0x00000429,0x0003003e,0x000003a2,0x0000042a,0x0004003d,0x0000001f, + 0x0000042c,0x00000394,0x0004007c,0x00000019,0x0000042d,0x0000042c,0x0003003e,0x0000042e, + 0x0000042d,0x0004003d,0x00000006,0x00000430,0x000000a1,0x0003003e,0x0000042f,0x00000430, + 0x00060039,0x00000030,0x00000431,0x00000099,0x0000042e,0x0000042f,0x00050041,0x00000044, + 0x00000432,0x000003b0,0x0000042b,0x0003003e,0x00000432,0x00000431,0x0004003d,0x0000001f, + 0x00000434,0x000003a2,0x0003003e,0x00000433,0x00000434,0x00050041,0x00000044,0x00000436, + 0x000003b0,0x0000042b,0x0004003d,0x00000030,0x00000437,0x00000436,0x0003003e,0x00000435, + 0x00000437,0x0003003e,0x00000438,0x00000161,0x0004003d,0x00000006,0x0000043a,0x000000a1, + 0x0003003e,0x00000439,0x0000043a,0x00080039,0x00000002,0x0000043b,0x00000058,0x00000433, + 0x00000435,0x00000438,0x00000439,0x0004003d,0x00000006,0x0000043c,0x000000a0,0x000500b2, + 0x00000077,0x0000043d,0x0000043c,0x00000111,0x000300f7,0x0000043f,0x00000000,0x000400fa, + 0x0000043d,0x0000043e,0x0000043f,0x000200f8,0x0000043e,0x000100fd,0x000200f8,0x0000043f, + 0x00050041,0x00000044,0x00000442,0x000003b0,0x000000fe,0x0004003d,0x00000030,0x00000443, + 0x00000442,0x0003003e,0x00000441,0x00000443,0x00050039,0x00000030,0x00000444,0x00000080, + 0x00000441,0x00050041,0x00000044,0x00000445,0x000003b0,0x000000fe,0x0003003e,0x00000445, + 0x00000444,0x00050041,0x00000044,0x00000447,0x000003b0,0x00000138,0x0004003d,0x00000030, + 0x00000448,0x00000447,0x0003003e,0x00000446,0x00000448,0x00050039,0x00000030,0x00000449, + 0x00000080,0x00000446,0x00050041,0x00000044,0x0000044a,0x000003b0,0x00000138,0x0003003e, + 0x0000044a,0x00000449,0x00050041,0x00000044,0x0000044c,0x000003b0,0x00000149,0x0004003d, + 0x00000030,0x0000044d,0x0000044c,0x0003003e,0x0000044b,0x0000044d,0x00050039,0x00000030, + 0x0000044e,0x00000080,0x0000044b,0x00050041,0x00000044,0x0000044f,0x000003b0,0x00000149, + 0x0003003e,0x0000044f,0x0000044e,0x00050041,0x00000044,0x00000451,0x000003b0,0x0000042b, + 0x0004003d,0x00000030,0x00000452,0x00000451,0x0003003e,0x00000450,0x00000452,0x00050039, + 0x00000030,0x00000453,0x00000080,0x00000450,0x00050041,0x00000044,0x00000454,0x000003b0, + 0x0000042b,0x0003003e,0x00000454,0x00000453,0x0004003d,0x00000006,0x00000455,0x0000009f, + 0x00050089,0x00000006,0x00000456,0x00000455,0x0000018a,0x000500aa,0x00000077,0x00000457, + 0x00000456,0x00000161,0x000300f7,0x00000459,0x00000000,0x000400fa,0x00000457,0x00000458, + 0x00000459,0x000200f8,0x00000458,0x0004003d,0x00000019,0x0000045a,0x0000009e,0x00050050, + 0x00000019,0x0000045b,0x00000295,0x00000295,0x00050084,0x00000019,0x0000045c,0x0000045a, + 0x0000045b,0x0004007c,0x0000001f,0x0000045d,0x0000045c,0x0004003d,0x00000006,0x0000045e, + 0x0000009c,0x00050086,0x00000006,0x0000045f,0x0000045e,0x0000010a,0x0004007c,0x0000001e, + 0x00000460,0x0000045f,0x0004003d,0x00000006,0x00000461,0x0000009d,0x00050086,0x00000006, + 0x00000462,0x00000461,0x0000010a,0x0004007c,0x0000001e,0x00000463,0x00000462,0x00050050, + 0x0000001f,0x00000464,0x00000460,0x00000463,0x00050080,0x0000001f,0x00000465,0x0000045d, + 0x00000464,0x0003003e,0x00000466,0x00000465,0x00050041,0x00000044,0x00000468,0x000003b0, + 0x000000fe,0x0004003d,0x00000030,0x00000469,0x00000468,0x0003003e,0x00000467,0x00000469, + 0x0003003e,0x0000046a,0x00000111,0x0004003d,0x00000006,0x0000046c,0x000000a1,0x0003003e, + 0x0000046b,0x0000046c,0x00080039,0x00000002,0x0000046d,0x00000058,0x00000466,0x00000467, + 0x0000046a,0x0000046b,0x0004003d,0x00000006,0x0000046e,0x0000009c,0x00050086,0x00000006, + 0x0000046f,0x0000046e,0x0000010a,0x0004003d,0x00000006,0x00000470,0x0000009d,0x00050086, + 0x00000006,0x00000471,0x00000470,0x0000010a,0x0003003e,0x00000472,0x0000046f,0x0003003e, + 0x00000473,0x00000471,0x00050041,0x00000044,0x00000475,0x000003b0,0x000000fe,0x0004003d, + 0x00000030,0x00000476,0x00000475,0x0003003e,0x00000474,0x00000476,0x00070039,0x00000002, + 0x00000477,0x0000006c,0x00000472,0x00000473,0x00000474,0x0004003d,0x00000019,0x00000478, + 0x0000009e,0x00050050,0x00000019,0x00000479,0x00000295,0x00000295,0x00050084,0x00000019, + 0x0000047a,0x00000478,0x00000479,0x0004007c,0x0000001f,0x0000047b,0x0000047a,0x0004003d, + 0x00000006,0x0000047c,0x0000009c,0x00050086,0x00000006,0x0000047d,0x0000047c,0x0000010a, + 0x00050080,0x00000006,0x0000047e,0x0000047d,0x000001b2,0x0004007c,0x0000001e,0x0000047f, + 0x0000047e,0x0004003d,0x00000006,0x00000480,0x0000009d,0x00050086,0x00000006,0x00000481, + 0x00000480,0x0000010a,0x0004007c,0x0000001e,0x00000482,0x00000481,0x00050050,0x0000001f, + 0x00000483,0x0000047f,0x00000482,0x00050080,0x0000001f,0x00000484,0x0000047b,0x00000483, + 0x0003003e,0x00000485,0x00000484,0x00050041,0x00000044,0x00000487,0x000003b0,0x00000138, + 0x0004003d,0x00000030,0x00000488,0x00000487,0x0003003e,0x00000486,0x00000488,0x0003003e, + 0x00000489,0x00000111,0x0004003d,0x00000006,0x0000048b,0x000000a1,0x0003003e,0x0000048a, + 0x0000048b,0x00080039,0x00000002,0x0000048c,0x00000058,0x00000485,0x00000486,0x00000489, + 0x0000048a,0x0004003d,0x00000006,0x0000048d,0x0000009c,0x00050086,0x00000006,0x0000048e, + 0x0000048d,0x0000010a,0x00050080,0x00000006,0x0000048f,0x0000048e,0x000001b2,0x0004003d, + 0x00000006,0x00000490,0x0000009d,0x00050086,0x00000006,0x00000491,0x00000490,0x0000010a, + 0x0003003e,0x00000492,0x0000048f,0x0003003e,0x00000493,0x00000491,0x00050041,0x00000044, + 0x00000495,0x000003b0,0x00000138,0x0004003d,0x00000030,0x00000496,0x00000495,0x0003003e, + 0x00000494,0x00000496,0x00070039,0x00000002,0x00000497,0x0000006c,0x00000492,0x00000493, + 0x00000494,0x0004003d,0x00000019,0x00000498,0x0000009e,0x00050050,0x00000019,0x00000499, + 0x00000295,0x00000295,0x00050084,0x00000019,0x0000049a,0x00000498,0x00000499,0x0004007c, + 0x0000001f,0x0000049b,0x0000049a,0x0004003d,0x00000006,0x0000049c,0x0000009c,0x00050086, + 0x00000006,0x0000049d,0x0000049c,0x0000010a,0x0004007c,0x0000001e,0x0000049e,0x0000049d, + 0x0004003d,0x00000006,0x0000049f,0x0000009d,0x00050086,0x00000006,0x000004a0,0x0000049f, + 0x0000010a,0x00050080,0x00000006,0x000004a1,0x000004a0,0x000001b2,0x0004007c,0x0000001e, + 0x000004a2,0x000004a1,0x00050050,0x0000001f,0x000004a3,0x0000049e,0x000004a2,0x00050080, + 0x0000001f,0x000004a4,0x0000049b,0x000004a3,0x0003003e,0x000004a5,0x000004a4,0x00050041, + 0x00000044,0x000004a7,0x000003b0,0x00000149,0x0004003d,0x00000030,0x000004a8,0x000004a7, + 0x0003003e,0x000004a6,0x000004a8,0x0003003e,0x000004a9,0x00000111,0x0004003d,0x00000006, + 0x000004ab,0x000000a1,0x0003003e,0x000004aa,0x000004ab,0x00080039,0x00000002,0x000004ac, + 0x00000058,0x000004a5,0x000004a6,0x000004a9,0x000004aa,0x0004003d,0x00000006,0x000004ad, + 0x0000009c,0x00050086,0x00000006,0x000004ae,0x000004ad,0x0000010a,0x0004003d,0x00000006, + 0x000004af,0x0000009d,0x00050086,0x00000006,0x000004b0,0x000004af,0x0000010a,0x00050080, + 0x00000006,0x000004b1,0x000004b0,0x000001b2,0x0003003e,0x000004b2,0x000004ae,0x0003003e, + 0x000004b3,0x000004b1,0x00050041,0x00000044,0x000004b5,0x000003b0,0x00000149,0x0004003d, + 0x00000030,0x000004b6,0x000004b5,0x0003003e,0x000004b4,0x000004b6,0x00070039,0x00000002, + 0x000004b7,0x0000006c,0x000004b2,0x000004b3,0x000004b4,0x0004003d,0x00000019,0x000004b8, + 0x0000009e,0x00050050,0x00000019,0x000004b9,0x00000295,0x00000295,0x00050084,0x00000019, + 0x000004ba,0x000004b8,0x000004b9,0x0004007c,0x0000001f,0x000004bb,0x000004ba,0x0004003d, + 0x00000006,0x000004bc,0x0000009c,0x00050086,0x00000006,0x000004bd,0x000004bc,0x0000010a, + 0x00050080,0x00000006,0x000004be,0x000004bd,0x000001b2,0x0004007c,0x0000001e,0x000004bf, + 0x000004be,0x0004003d,0x00000006,0x000004c0,0x0000009d,0x00050086,0x00000006,0x000004c1, + 0x000004c0,0x0000010a,0x00050080,0x00000006,0x000004c2,0x000004c1,0x000001b2,0x0004007c, + 0x0000001e,0x000004c3,0x000004c2,0x00050050,0x0000001f,0x000004c4,0x000004bf,0x000004c3, + 0x00050080,0x0000001f,0x000004c5,0x000004bb,0x000004c4,0x0003003e,0x000004c6,0x000004c5, + 0x00050041,0x00000044,0x000004c8,0x000003b0,0x0000042b,0x0004003d,0x00000030,0x000004c9, + 0x000004c8,0x0003003e,0x000004c7,0x000004c9,0x0003003e,0x000004ca,0x00000111,0x0004003d, + 0x00000006,0x000004cc,0x000000a1,0x0003003e,0x000004cb,0x000004cc,0x00080039,0x00000002, + 0x000004cd,0x00000058,0x000004c6,0x000004c7,0x000004ca,0x000004cb,0x0004003d,0x00000006, + 0x000004ce,0x0000009c,0x00050086,0x00000006,0x000004cf,0x000004ce,0x0000010a,0x00050080, + 0x00000006,0x000004d0,0x000004cf,0x000001b2,0x0004003d,0x00000006,0x000004d1,0x0000009d, + 0x00050086,0x00000006,0x000004d2,0x000004d1,0x0000010a,0x00050080,0x00000006,0x000004d3, + 0x000004d2,0x000001b2,0x0003003e,0x000004d4,0x000004d0,0x0003003e,0x000004d5,0x000004d3, + 0x00050041,0x00000044,0x000004d7,0x000003b0,0x0000042b,0x0004003d,0x00000030,0x000004d8, + 0x000004d7,0x0003003e,0x000004d6,0x000004d8,0x00070039,0x00000002,0x000004d9,0x0000006c, + 0x000004d4,0x000004d5,0x000004d6,0x000200f9,0x00000459,0x000200f8,0x00000459,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000aa,0x00000000,0x0000009b,0x00030037,0x00000007, + 0x000000a4,0x00030037,0x00000007,0x000000a5,0x00030037,0x00000082,0x000000a6,0x00030037, + 0x00000007,0x000000a7,0x00030037,0x00000007,0x000000a8,0x00030037,0x00000007,0x000000a9, + 0x000200f8,0x000000ab,0x0004003b,0x00000007,0x000004da,0x00000007,0x0004003b,0x00000007, + 0x000004dc,0x00000007,0x0004003b,0x00000082,0x000004de,0x00000007,0x0004003b,0x00000007, + 0x000004e0,0x00000007,0x0004003b,0x00000007,0x000004e2,0x00000007,0x0004003b,0x00000007, + 0x000004e4,0x00000007,0x0004003d,0x00000006,0x000004db,0x000000a4,0x0003003e,0x000004da, + 0x000004db,0x0004003d,0x00000006,0x000004dd,0x000000a5,0x0003003e,0x000004dc,0x000004dd, + 0x0004003d,0x00000019,0x000004df,0x000000a6,0x0003003e,0x000004de,0x000004df,0x0004003d, + 0x00000006,0x000004e1,0x000000a7,0x0003003e,0x000004e0,0x000004e1,0x0004003d,0x00000006, + 0x000004e3,0x000000a8,0x0003003e,0x000004e2,0x000004e3,0x0004003d,0x00000006,0x000004e5, + 0x000000a9,0x0003003e,0x000004e4,0x000004e5,0x000a0039,0x00000002,0x000004e6,0x000000a2, + 0x000004da,0x000004dc,0x000004de,0x000004e0,0x000004e2,0x000004e4,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000b2,0x00000000,0x0000009b,0x00030037,0x00000007,0x000000ac, + 0x00030037,0x00000007,0x000000ad,0x00030037,0x00000082,0x000000ae,0x00030037,0x00000007, + 0x000000af,0x00030037,0x00000007,0x000000b0,0x00030037,0x00000007,0x000000b1,0x000200f8, + 0x000000b3,0x0004003b,0x00000044,0x000004e7,0x00000007,0x0004003b,0x00000007,0x000004e8, + 0x00000007,0x0004003b,0x00000007,0x000004ea,0x00000007,0x0004003b,0x00000044,0x000004ed, + 0x00000007,0x0004003b,0x0000002f,0x00000501,0x00000007,0x0004003b,0x00000044,0x00000502, + 0x00000007,0x0004003b,0x00000007,0x00000504,0x00000007,0x0004003b,0x00000007,0x00000506, + 0x00000007,0x0004003b,0x00000007,0x0000050e,0x00000007,0x0004003b,0x00000007,0x0000050f, + 0x00000007,0x0004003b,0x00000044,0x00000511,0x00000007,0x0004003d,0x00000006,0x000004e9, + 0x000000ac,0x0003003e,0x000004e8,0x000004e9,0x0004003d,0x00000006,0x000004eb,0x000000ad, + 0x0003003e,0x000004ea,0x000004eb,0x00060039,0x00000030,0x000004ec,0x00000066,0x000004e8, + 0x000004ea,0x0003003e,0x000004e7,0x000004ec,0x0004003d,0x00000030,0x000004ee,0x000004e7, + 0x0003003e,0x000004ed,0x000004ee,0x00050039,0x00000030,0x000004ef,0x00000080,0x000004ed, + 0x0003003e,0x000004e7,0x000004ef,0x0004003d,0x00000006,0x000004f0,0x000000af,0x00050089, + 0x00000006,0x000004f1,0x000004f0,0x0000018a,0x000500aa,0x00000077,0x000004f2,0x000004f1, + 0x00000161,0x000300f7,0x000004f4,0x00000000,0x000400fa,0x000004f2,0x000004f3,0x000004f4, + 0x000200f8,0x000004f3,0x0004003d,0x00000019,0x000004f5,0x000000ae,0x00050050,0x00000019, + 0x000004f6,0x000001b2,0x000001b2,0x00050084,0x00000019,0x000004f7,0x000004f5,0x000004f6, + 0x0004007c,0x0000001f,0x000004f8,0x000004f7,0x0004003d,0x00000006,0x000004f9,0x000000ac, + 0x00050086,0x00000006,0x000004fa,0x000004f9,0x0000010a,0x0004007c,0x0000001e,0x000004fb, + 0x000004fa,0x0004003d,0x00000006,0x000004fc,0x000000ad,0x00050086,0x00000006,0x000004fd, + 0x000004fc,0x0000010a,0x0004007c,0x0000001e,0x000004fe,0x000004fd,0x00050050,0x0000001f, + 0x000004ff,0x000004fb,0x000004fe,0x00050080,0x0000001f,0x00000500,0x000004f8,0x000004ff, + 0x0003003e,0x00000501,0x00000500,0x0004003d,0x00000030,0x00000503,0x000004e7,0x0003003e, + 0x00000502,0x00000503,0x0004003d,0x00000006,0x00000505,0x000000b0,0x0003003e,0x00000504, + 0x00000505,0x0004003d,0x00000006,0x00000507,0x000000b1,0x0003003e,0x00000506,0x00000507, + 0x00080039,0x00000002,0x00000508,0x00000058,0x00000501,0x00000502,0x00000504,0x00000506, + 0x0004003d,0x00000006,0x00000509,0x000000ac,0x0004003d,0x00000006,0x0000050a,0x000000ad, + 0x00050086,0x00000006,0x0000050b,0x0000050a,0x0000010a,0x00050089,0x00000006,0x0000050c, + 0x0000050b,0x0000010a,0x00050080,0x00000006,0x0000050d,0x00000509,0x0000050c,0x0003003e, + 0x0000050e,0x0000050d,0x0004003d,0x00000006,0x00000510,0x000000ad,0x0003003e,0x0000050f, + 0x00000510,0x0004003d,0x00000030,0x00000512,0x000004e7,0x0003003e,0x00000511,0x00000512, + 0x00070039,0x00000002,0x00000513,0x0000006c,0x0000050e,0x0000050f,0x00000511,0x000200f9, + 0x000004f4,0x000200f8,0x000004f4,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000ba, + 0x00000000,0x0000009b,0x00030037,0x00000007,0x000000b4,0x00030037,0x00000007,0x000000b5, + 0x00030037,0x00000082,0x000000b6,0x00030037,0x00000007,0x000000b7,0x00030037,0x00000007, + 0x000000b8,0x00030037,0x00000007,0x000000b9,0x000200f8,0x000000bb,0x0004003b,0x00000044, + 0x00000518,0x00000007,0x0004003b,0x00000007,0x00000520,0x00000007,0x0004003b,0x00000007, + 0x00000521,0x00000007,0x0004003b,0x00000044,0x00000523,0x00000007,0x0004003b,0x0000002f, + 0x00000537,0x00000007,0x0004003b,0x00000044,0x00000538,0x00000007,0x0004003b,0x00000007, + 0x0000053a,0x00000007,0x0004003b,0x00000007,0x0000053c,0x00000007,0x0004003b,0x00000007, + 0x00000546,0x00000007,0x0004003b,0x00000007,0x00000547,0x00000007,0x0004003b,0x00000044, + 0x00000548,0x00000007,0x0004003d,0x00000006,0x00000514,0x000000b7,0x000500b0,0x00000077, + 0x00000515,0x00000514,0x00000396,0x000300f7,0x00000517,0x00000000,0x000400fa,0x00000515, + 0x00000516,0x00000517,0x000200f8,0x00000516,0x0004003d,0x00000006,0x00000519,0x000000b4, + 0x00050084,0x00000006,0x0000051a,0x00000519,0x0000010a,0x0004003d,0x00000006,0x0000051b, + 0x000000b5,0x00050089,0x00000006,0x0000051c,0x0000051b,0x0000010a,0x00050080,0x00000006, + 0x0000051d,0x0000051a,0x0000051c,0x0004003d,0x00000006,0x0000051e,0x000000b5,0x00050084, + 0x00000006,0x0000051f,0x0000051e,0x0000010a,0x0003003e,0x00000520,0x0000051d,0x0003003e, + 0x00000521,0x0000051f,0x00060039,0x00000030,0x00000522,0x00000066,0x00000520,0x00000521, + 0x0003003e,0x00000518,0x00000522,0x0004003d,0x00000030,0x00000524,0x00000518,0x0003003e, + 0x00000523,0x00000524,0x00050039,0x00000030,0x00000525,0x00000080,0x00000523,0x0003003e, + 0x00000518,0x00000525,0x0004003d,0x00000006,0x00000526,0x000000b7,0x00050089,0x00000006, + 0x00000527,0x00000526,0x0000018a,0x000500aa,0x00000077,0x00000528,0x00000527,0x00000161, + 0x000300f7,0x0000052a,0x00000000,0x000400fa,0x00000528,0x00000529,0x0000052a,0x000200f8, + 0x00000529,0x0004003d,0x00000019,0x0000052b,0x000000b6,0x00050050,0x00000019,0x0000052c, + 0x0000018a,0x0000018a,0x00050084,0x00000019,0x0000052d,0x0000052b,0x0000052c,0x0004007c, + 0x0000001f,0x0000052e,0x0000052d,0x0004003d,0x00000006,0x0000052f,0x000000b4,0x00050086, + 0x00000006,0x00000530,0x0000052f,0x0000010a,0x0004007c,0x0000001e,0x00000531,0x00000530, + 0x0004003d,0x00000006,0x00000532,0x000000b5,0x00050086,0x00000006,0x00000533,0x00000532, + 0x0000010a,0x0004007c,0x0000001e,0x00000534,0x00000533,0x00050050,0x0000001f,0x00000535, + 0x00000531,0x00000534,0x00050080,0x0000001f,0x00000536,0x0000052e,0x00000535,0x0003003e, + 0x00000537,0x00000536,0x0004003d,0x00000030,0x00000539,0x00000518,0x0003003e,0x00000538, + 0x00000539,0x0004003d,0x00000006,0x0000053b,0x000000b8,0x0003003e,0x0000053a,0x0000053b, + 0x0004003d,0x00000006,0x0000053d,0x000000b9,0x0003003e,0x0000053c,0x0000053d,0x00080039, + 0x00000002,0x0000053e,0x00000058,0x00000537,0x00000538,0x0000053a,0x0000053c,0x0004003d, + 0x00000006,0x0000053f,0x000000b4,0x00050084,0x00000006,0x00000540,0x0000053f,0x0000010a, + 0x0004003d,0x00000006,0x00000541,0x000000b5,0x00050086,0x00000006,0x00000542,0x00000541, + 0x0000010a,0x00050080,0x00000006,0x00000543,0x00000540,0x00000542,0x0004003d,0x00000006, + 0x00000544,0x000000b5,0x00050084,0x00000006,0x00000545,0x00000544,0x0000010a,0x0003003e, + 0x00000546,0x00000543,0x0003003e,0x00000547,0x00000545,0x0004003d,0x00000030,0x00000549, + 0x00000518,0x0003003e,0x00000548,0x00000549,0x00070039,0x00000002,0x0000054a,0x0000006c, + 0x00000546,0x00000547,0x00000548,0x000200f9,0x0000052a,0x000200f8,0x0000052a,0x000200f9, + 0x00000517,0x000200f8,0x00000517,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000c2, + 0x00000000,0x0000009b,0x00030037,0x00000007,0x000000bc,0x00030037,0x00000007,0x000000bd, + 0x00030037,0x00000082,0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007, + 0x000000c0,0x00030037,0x00000007,0x000000c1,0x000200f8,0x000000c3,0x0004003b,0x00000044, + 0x0000054f,0x00000007,0x0004003b,0x00000007,0x00000556,0x00000007,0x0004003b,0x00000007, + 0x00000557,0x00000007,0x0004003b,0x00000044,0x00000559,0x00000007,0x0004003b,0x0000002f, + 0x0000056d,0x00000007,0x0004003b,0x00000044,0x0000056e,0x00000007,0x0004003b,0x00000007, + 0x00000570,0x00000007,0x0004003b,0x00000007,0x00000572,0x00000007,0x0004003b,0x00000007, + 0x00000579,0x00000007,0x0004003b,0x00000007,0x0000057a,0x00000007,0x0004003b,0x00000044, + 0x0000057b,0x00000007,0x0004003d,0x00000006,0x0000054b,0x000000bf,0x000500b0,0x00000077, + 0x0000054c,0x0000054b,0x00000295,0x000300f7,0x0000054e,0x00000000,0x000400fa,0x0000054c, + 0x0000054d,0x0000054e,0x000200f8,0x0000054d,0x0004003d,0x00000006,0x00000550,0x000000bc, + 0x00050084,0x00000006,0x00000551,0x00000550,0x0000018a,0x0004003d,0x00000006,0x00000552, + 0x000000bd,0x00050080,0x00000006,0x00000553,0x00000551,0x00000552,0x0004003d,0x00000006, + 0x00000554,0x000000bd,0x00050084,0x00000006,0x00000555,0x00000554,0x0000018a,0x0003003e, + 0x00000556,0x00000553,0x0003003e,0x00000557,0x00000555,0x00060039,0x00000030,0x00000558, + 0x00000066,0x00000556,0x00000557,0x0003003e,0x0000054f,0x00000558,0x0004003d,0x00000030, + 0x0000055a,0x0000054f,0x0003003e,0x00000559,0x0000055a,0x00050039,0x00000030,0x0000055b, + 0x00000080,0x00000559,0x0003003e,0x0000054f,0x0000055b,0x0004003d,0x00000006,0x0000055c, + 0x000000bf,0x00050089,0x00000006,0x0000055d,0x0000055c,0x0000018a,0x000500aa,0x00000077, + 0x0000055e,0x0000055d,0x00000161,0x000300f7,0x00000560,0x00000000,0x000400fa,0x0000055e, + 0x0000055f,0x00000560,0x000200f8,0x0000055f,0x0004003d,0x00000019,0x00000561,0x000000be, + 0x00050050,0x00000019,0x00000562,0x0000010a,0x0000010a,0x00050084,0x00000019,0x00000563, + 0x00000561,0x00000562,0x0004007c,0x0000001f,0x00000564,0x00000563,0x0004003d,0x00000006, + 0x00000565,0x000000bc,0x00050086,0x00000006,0x00000566,0x00000565,0x0000010a,0x0004007c, + 0x0000001e,0x00000567,0x00000566,0x0004003d,0x00000006,0x00000568,0x000000bd,0x00050086, + 0x00000006,0x00000569,0x00000568,0x0000010a,0x0004007c,0x0000001e,0x0000056a,0x00000569, + 0x00050050,0x0000001f,0x0000056b,0x00000567,0x0000056a,0x00050080,0x0000001f,0x0000056c, + 0x00000564,0x0000056b,0x0003003e,0x0000056d,0x0000056c,0x0004003d,0x00000030,0x0000056f, + 0x0000054f,0x0003003e,0x0000056e,0x0000056f,0x0004003d,0x00000006,0x00000571,0x000000c0, + 0x0003003e,0x00000570,0x00000571,0x0004003d,0x00000006,0x00000573,0x000000c1,0x0003003e, + 0x00000572,0x00000573,0x00080039,0x00000002,0x00000574,0x00000058,0x0000056d,0x0000056e, + 0x00000570,0x00000572,0x0004003d,0x00000006,0x00000575,0x000000bc,0x00050086,0x00000006, + 0x00000576,0x00000575,0x0000010a,0x0004003d,0x00000006,0x00000577,0x000000bd,0x00050080, + 0x00000006,0x00000578,0x00000576,0x00000577,0x0003003e,0x00000579,0x00000578,0x0003003e, + 0x0000057a,0x00000161,0x0004003d,0x00000030,0x0000057c,0x0000054f,0x0003003e,0x0000057b, + 0x0000057c,0x00070039,0x00000002,0x0000057d,0x0000006c,0x00000579,0x0000057a,0x0000057b, + 0x000200f9,0x00000560,0x000200f8,0x00000560,0x000200f9,0x0000054e,0x000200f8,0x0000054e, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000c9,0x00000000,0x000000c4,0x00030037, + 0x00000082,0x000000c5,0x00030037,0x00000007,0x000000c6,0x00030037,0x00000007,0x000000c7, + 0x00030037,0x00000007,0x000000c8,0x000200f8,0x000000ca,0x0004003b,0x00000044,0x00000582, + 0x00000007,0x0004003b,0x00000007,0x00000583,0x00000007,0x0004003b,0x00000007,0x00000585, + 0x00000007,0x0004003b,0x00000044,0x00000587,0x00000007,0x0004003b,0x0000002f,0x00000591, + 0x00000007,0x0004003b,0x00000044,0x00000592,0x00000007,0x0004003b,0x00000007,0x00000594, + 0x00000007,0x0004003b,0x00000007,0x00000596,0x00000007,0x0004003d,0x00000006,0x0000057e, + 0x000000c6,0x000500b0,0x00000077,0x0000057f,0x0000057e,0x0000018a,0x000300f7,0x00000581, + 0x00000000,0x000400fa,0x0000057f,0x00000580,0x00000581,0x000200f8,0x00000580,0x0004003d, + 0x00000006,0x00000584,0x000000c6,0x0003003e,0x00000583,0x00000584,0x0003003e,0x00000585, + 0x00000161,0x00060039,0x00000030,0x00000586,0x00000066,0x00000583,0x00000585,0x0003003e, + 0x00000582,0x00000586,0x0004003d,0x00000030,0x00000588,0x00000582,0x0003003e,0x00000587, + 0x00000588,0x00050039,0x00000030,0x00000589,0x00000080,0x00000587,0x0003003e,0x00000582, + 0x00000589,0x0004003d,0x00000006,0x0000058a,0x000000c6,0x00050089,0x00000006,0x0000058b, + 0x0000058a,0x0000018a,0x000500aa,0x00000077,0x0000058c,0x0000058b,0x00000161,0x000300f7, + 0x0000058e,0x00000000,0x000400fa,0x0000058c,0x0000058d,0x0000058e,0x000200f8,0x0000058d, + 0x0004003d,0x00000019,0x0000058f,0x000000c5,0x0004007c,0x0000001f,0x00000590,0x0000058f, + 0x0003003e,0x00000591,0x00000590,0x0004003d,0x00000030,0x00000593,0x00000582,0x0003003e, + 0x00000592,0x00000593,0x0004003d,0x00000006,0x00000595,0x000000c7,0x0003003e,0x00000594, + 0x00000595,0x0004003d,0x00000006,0x00000597,0x000000c8,0x0003003e,0x00000596,0x00000597, + 0x00080039,0x00000002,0x00000598,0x00000058,0x00000591,0x00000592,0x00000594,0x00000596, + 0x000200f9,0x0000058e,0x000200f8,0x0000058e,0x000200f9,0x00000581,0x000200f8,0x00000581, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d0,0x00000000,0x000000cb,0x00030037, + 0x00000007,0x000000cc,0x00030037,0x00000007,0x000000cd,0x00030037,0x00000007,0x000000ce, + 0x00030037,0x00000007,0x000000cf,0x000200f8,0x000000d1,0x0004003b,0x0000002f,0x00000599, + 0x00000007,0x0004003b,0x0000002f,0x000005a3,0x00000007,0x0004003b,0x00000044,0x000005ad, + 0x00000007,0x0004003b,0x00000082,0x000005b0,0x00000007,0x0004003b,0x00000007,0x000005b1, + 0x00000007,0x0004003b,0x0000002f,0x000005b4,0x00000007,0x0004003b,0x00000044,0x000005b6, + 0x00000007,0x0004003b,0x00000007,0x000005b8,0x00000007,0x0004003b,0x00000007,0x000005b9, + 0x00000007,0x0004003b,0x00000044,0x000005ce,0x00000007,0x0004003b,0x00000082,0x000005d1, + 0x00000007,0x0004003b,0x00000007,0x000005d2,0x00000007,0x0004003b,0x0000002f,0x000005d5, + 0x00000007,0x0004003b,0x00000044,0x000005d7,0x00000007,0x0004003b,0x00000007,0x000005d9, + 0x00000007,0x0004003b,0x00000007,0x000005da,0x00000007,0x0004003b,0x00000044,0x000005ef, + 0x00000007,0x0004003b,0x00000082,0x000005f2,0x00000007,0x0004003b,0x00000007,0x000005f3, + 0x00000007,0x0004003b,0x0000002f,0x000005f6,0x00000007,0x0004003b,0x00000044,0x000005f8, + 0x00000007,0x0004003b,0x00000007,0x000005fa,0x00000007,0x0004003b,0x00000007,0x000005fb, + 0x00000007,0x0004003b,0x00000044,0x00000610,0x00000007,0x0004003b,0x00000082,0x00000613, + 0x00000007,0x0004003b,0x00000007,0x00000614,0x00000007,0x0004003b,0x0000002f,0x00000617, + 0x00000007,0x0004003b,0x00000044,0x00000619,0x00000007,0x0004003b,0x00000007,0x0000061b, + 0x00000007,0x0004003b,0x00000007,0x0000061c,0x00000007,0x0004003b,0x00000044,0x00000624, + 0x00000007,0x0004003b,0x00000044,0x00000625,0x00000007,0x0004003b,0x00000044,0x00000627, + 0x00000007,0x0004003b,0x00000044,0x00000629,0x00000007,0x0004003b,0x00000044,0x0000062b, + 0x00000007,0x0004003b,0x0000002f,0x00000633,0x00000007,0x0004003b,0x00000044,0x00000634, + 0x00000007,0x0004003b,0x00000007,0x00000636,0x00000007,0x0004003b,0x00000007,0x00000637, + 0x00000007,0x0004003b,0x00000007,0x0000063a,0x00000007,0x0004003b,0x00000007,0x0000063c, + 0x00000007,0x0004003b,0x00000044,0x0000063e,0x00000007,0x0004003d,0x00000006,0x0000059a, + 0x000000cc,0x00050084,0x00000006,0x0000059b,0x0000059a,0x0000018a,0x00050080,0x00000006, + 0x0000059c,0x0000059b,0x00000161,0x0004007c,0x0000001e,0x0000059d,0x0000059c,0x0004003d, + 0x00000006,0x0000059e,0x000000cd,0x00050084,0x00000006,0x0000059f,0x0000059e,0x0000018a, + 0x00050080,0x00000006,0x000005a0,0x0000059f,0x00000161,0x0004007c,0x0000001e,0x000005a1, + 0x000005a0,0x00050050,0x0000001f,0x000005a2,0x0000059d,0x000005a1,0x0003003e,0x00000599, + 0x000005a2,0x0004003d,0x00000006,0x000005a4,0x000000cc,0x00050084,0x00000006,0x000005a5, + 0x000005a4,0x0000010a,0x00050080,0x00000006,0x000005a6,0x000005a5,0x00000161,0x0004007c, + 0x0000001e,0x000005a7,0x000005a6,0x0004003d,0x00000006,0x000005a8,0x000000cd,0x00050084, + 0x00000006,0x000005a9,0x000005a8,0x0000010a,0x00050080,0x00000006,0x000005aa,0x000005a9, + 0x00000161,0x0004007c,0x0000001e,0x000005ab,0x000005aa,0x00050050,0x0000001f,0x000005ac, + 0x000005a7,0x000005ab,0x0003003e,0x000005a3,0x000005ac,0x0004003d,0x0000001f,0x000005ae, + 0x00000599,0x0004007c,0x00000019,0x000005af,0x000005ae,0x0003003e,0x000005b0,0x000005af, + 0x0004003d,0x00000006,0x000005b2,0x000000cf,0x0003003e,0x000005b1,0x000005b2,0x00060039, + 0x00000030,0x000005b3,0x0000008e,0x000005b0,0x000005b1,0x0003003e,0x000005ad,0x000005b3, + 0x0004003d,0x0000001f,0x000005b5,0x000005a3,0x0003003e,0x000005b4,0x000005b5,0x0004003d, + 0x00000030,0x000005b7,0x000005ad,0x0003003e,0x000005b6,0x000005b7,0x0003003e,0x000005b8, + 0x0000019e,0x0004003d,0x00000006,0x000005ba,0x000000cf,0x0003003e,0x000005b9,0x000005ba, + 0x00080039,0x00000002,0x000005bb,0x00000058,0x000005b4,0x000005b6,0x000005b8,0x000005b9, + 0x0004003d,0x00000006,0x000005bc,0x000000cc,0x00050084,0x00000006,0x000005bd,0x000005bc, + 0x0000018a,0x00050080,0x00000006,0x000005be,0x000005bd,0x0000010a,0x0004007c,0x0000001e, + 0x000005bf,0x000005be,0x0004003d,0x00000006,0x000005c0,0x000000cd,0x00050084,0x00000006, + 0x000005c1,0x000005c0,0x0000018a,0x00050080,0x00000006,0x000005c2,0x000005c1,0x00000161, + 0x0004007c,0x0000001e,0x000005c3,0x000005c2,0x00050050,0x0000001f,0x000005c4,0x000005bf, + 0x000005c3,0x0003003e,0x00000599,0x000005c4,0x0004003d,0x00000006,0x000005c5,0x000000cc, + 0x00050084,0x00000006,0x000005c6,0x000005c5,0x0000010a,0x00050080,0x00000006,0x000005c7, + 0x000005c6,0x00000111,0x0004007c,0x0000001e,0x000005c8,0x000005c7,0x0004003d,0x00000006, + 0x000005c9,0x000000cd,0x00050084,0x00000006,0x000005ca,0x000005c9,0x0000010a,0x00050080, + 0x00000006,0x000005cb,0x000005ca,0x00000161,0x0004007c,0x0000001e,0x000005cc,0x000005cb, + 0x00050050,0x0000001f,0x000005cd,0x000005c8,0x000005cc,0x0003003e,0x000005a3,0x000005cd, + 0x0004003d,0x0000001f,0x000005cf,0x00000599,0x0004007c,0x00000019,0x000005d0,0x000005cf, + 0x0003003e,0x000005d1,0x000005d0,0x0004003d,0x00000006,0x000005d3,0x000000cf,0x0003003e, + 0x000005d2,0x000005d3,0x00060039,0x00000030,0x000005d4,0x0000008e,0x000005d1,0x000005d2, + 0x0003003e,0x000005ce,0x000005d4,0x0004003d,0x0000001f,0x000005d6,0x000005a3,0x0003003e, + 0x000005d5,0x000005d6,0x0004003d,0x00000030,0x000005d8,0x000005ce,0x0003003e,0x000005d7, + 0x000005d8,0x0003003e,0x000005d9,0x0000019e,0x0004003d,0x00000006,0x000005db,0x000000cf, + 0x0003003e,0x000005da,0x000005db,0x00080039,0x00000002,0x000005dc,0x00000058,0x000005d5, + 0x000005d7,0x000005d9,0x000005da,0x0004003d,0x00000006,0x000005dd,0x000000cc,0x00050084, + 0x00000006,0x000005de,0x000005dd,0x0000018a,0x00050080,0x00000006,0x000005df,0x000005de, + 0x00000161,0x0004007c,0x0000001e,0x000005e0,0x000005df,0x0004003d,0x00000006,0x000005e1, + 0x000000cd,0x00050084,0x00000006,0x000005e2,0x000005e1,0x0000018a,0x00050080,0x00000006, + 0x000005e3,0x000005e2,0x0000010a,0x0004007c,0x0000001e,0x000005e4,0x000005e3,0x00050050, + 0x0000001f,0x000005e5,0x000005e0,0x000005e4,0x0003003e,0x00000599,0x000005e5,0x0004003d, + 0x00000006,0x000005e6,0x000000cc,0x00050084,0x00000006,0x000005e7,0x000005e6,0x0000010a, + 0x00050080,0x00000006,0x000005e8,0x000005e7,0x00000161,0x0004007c,0x0000001e,0x000005e9, + 0x000005e8,0x0004003d,0x00000006,0x000005ea,0x000000cd,0x00050084,0x00000006,0x000005eb, + 0x000005ea,0x0000010a,0x00050080,0x00000006,0x000005ec,0x000005eb,0x00000111,0x0004007c, + 0x0000001e,0x000005ed,0x000005ec,0x00050050,0x0000001f,0x000005ee,0x000005e9,0x000005ed, + 0x0003003e,0x000005a3,0x000005ee,0x0004003d,0x0000001f,0x000005f0,0x00000599,0x0004007c, + 0x00000019,0x000005f1,0x000005f0,0x0003003e,0x000005f2,0x000005f1,0x0004003d,0x00000006, + 0x000005f4,0x000000cf,0x0003003e,0x000005f3,0x000005f4,0x00060039,0x00000030,0x000005f5, + 0x0000008e,0x000005f2,0x000005f3,0x0003003e,0x000005ef,0x000005f5,0x0004003d,0x0000001f, + 0x000005f7,0x000005a3,0x0003003e,0x000005f6,0x000005f7,0x0004003d,0x00000030,0x000005f9, + 0x000005ef,0x0003003e,0x000005f8,0x000005f9,0x0003003e,0x000005fa,0x0000019e,0x0004003d, + 0x00000006,0x000005fc,0x000000cf,0x0003003e,0x000005fb,0x000005fc,0x00080039,0x00000002, + 0x000005fd,0x00000058,0x000005f6,0x000005f8,0x000005fa,0x000005fb,0x0004003d,0x00000006, + 0x000005fe,0x000000cc,0x00050084,0x00000006,0x000005ff,0x000005fe,0x0000018a,0x00050080, + 0x00000006,0x00000600,0x000005ff,0x0000010a,0x0004007c,0x0000001e,0x00000601,0x00000600, + 0x0004003d,0x00000006,0x00000602,0x000000cd,0x00050084,0x00000006,0x00000603,0x00000602, + 0x0000018a,0x00050080,0x00000006,0x00000604,0x00000603,0x0000010a,0x0004007c,0x0000001e, + 0x00000605,0x00000604,0x00050050,0x0000001f,0x00000606,0x00000601,0x00000605,0x0003003e, + 0x00000599,0x00000606,0x0004003d,0x00000006,0x00000607,0x000000cc,0x00050084,0x00000006, + 0x00000608,0x00000607,0x0000010a,0x00050080,0x00000006,0x00000609,0x00000608,0x00000111, + 0x0004007c,0x0000001e,0x0000060a,0x00000609,0x0004003d,0x00000006,0x0000060b,0x000000cd, + 0x00050084,0x00000006,0x0000060c,0x0000060b,0x0000010a,0x00050080,0x00000006,0x0000060d, + 0x0000060c,0x00000111,0x0004007c,0x0000001e,0x0000060e,0x0000060d,0x00050050,0x0000001f, + 0x0000060f,0x0000060a,0x0000060e,0x0003003e,0x000005a3,0x0000060f,0x0004003d,0x0000001f, + 0x00000611,0x00000599,0x0004007c,0x00000019,0x00000612,0x00000611,0x0003003e,0x00000613, + 0x00000612,0x0004003d,0x00000006,0x00000615,0x000000cf,0x0003003e,0x00000614,0x00000615, + 0x00060039,0x00000030,0x00000616,0x0000008e,0x00000613,0x00000614,0x0003003e,0x00000610, + 0x00000616,0x0004003d,0x0000001f,0x00000618,0x000005a3,0x0003003e,0x00000617,0x00000618, + 0x0004003d,0x00000030,0x0000061a,0x00000610,0x0003003e,0x00000619,0x0000061a,0x0003003e, + 0x0000061b,0x0000019e,0x0004003d,0x00000006,0x0000061d,0x000000cf,0x0003003e,0x0000061c, + 0x0000061d,0x00080039,0x00000002,0x0000061e,0x00000058,0x00000617,0x00000619,0x0000061b, + 0x0000061c,0x0004003d,0x00000006,0x0000061f,0x000000ce,0x000500b2,0x00000077,0x00000620, + 0x0000061f,0x000001a8,0x000300f7,0x00000622,0x00000000,0x000400fa,0x00000620,0x00000621, + 0x00000622,0x000200f8,0x00000621,0x000100fd,0x000200f8,0x00000622,0x0004003d,0x00000030, + 0x00000626,0x000005ad,0x0003003e,0x00000625,0x00000626,0x0004003d,0x00000030,0x00000628, + 0x000005ce,0x0003003e,0x00000627,0x00000628,0x0004003d,0x00000030,0x0000062a,0x000005ef, + 0x0003003e,0x00000629,0x0000062a,0x0004003d,0x00000030,0x0000062c,0x00000610,0x0003003e, + 0x0000062b,0x0000062c,0x00080039,0x00000030,0x0000062d,0x00000073,0x00000625,0x00000627, + 0x00000629,0x0000062b,0x0003003e,0x00000624,0x0000062d,0x0004003d,0x00000006,0x0000062e, + 0x000000cc,0x0004007c,0x0000001e,0x0000062f,0x0000062e,0x0004003d,0x00000006,0x00000630, + 0x000000cd,0x0004007c,0x0000001e,0x00000631,0x00000630,0x00050050,0x0000001f,0x00000632, + 0x0000062f,0x00000631,0x0003003e,0x00000633,0x00000632,0x0004003d,0x00000030,0x00000635, + 0x00000624,0x0003003e,0x00000634,0x00000635,0x0003003e,0x00000636,0x000001a8,0x0004003d, + 0x00000006,0x00000638,0x000000cf,0x0003003e,0x00000637,0x00000638,0x00080039,0x00000002, + 0x00000639,0x00000058,0x00000633,0x00000634,0x00000636,0x00000637,0x0004003d,0x00000006, + 0x0000063b,0x000000cc,0x0003003e,0x0000063a,0x0000063b,0x0004003d,0x00000006,0x0000063d, + 0x000000cd,0x0003003e,0x0000063c,0x0000063d,0x0004003d,0x00000030,0x0000063f,0x00000624, + 0x0003003e,0x0000063e,0x0000063f,0x00070039,0x00000002,0x00000640,0x0000006c,0x0000063a, + 0x0000063c,0x0000063e,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000da,0x00000000, + 0x000000d2,0x00030037,0x00000007,0x000000d3,0x00030037,0x00000007,0x000000d4,0x00030037, + 0x00000082,0x000000d5,0x00030037,0x00000007,0x000000d6,0x00030037,0x00000007,0x000000d7, + 0x00030037,0x00000007,0x000000d8,0x00030037,0x00000007,0x000000d9,0x000200f8,0x000000db, + 0x0004003b,0x00000007,0x00000648,0x00000007,0x0004003b,0x00000007,0x0000064a,0x00000007, + 0x0004003b,0x00000082,0x0000064c,0x00000007,0x0004003b,0x00000007,0x0000064e,0x00000007, + 0x0004003b,0x00000007,0x00000650,0x00000007,0x0004003b,0x00000007,0x00000652,0x00000007, + 0x0004003b,0x00000007,0x0000065f,0x00000007,0x0004003b,0x00000007,0x00000661,0x00000007, + 0x0004003b,0x00000082,0x00000663,0x00000007,0x0004003b,0x00000007,0x00000665,0x00000007, + 0x0004003b,0x00000007,0x00000667,0x00000007,0x0004003b,0x00000007,0x00000668,0x00000007, + 0x0004003b,0x00000007,0x00000675,0x00000007,0x0004003b,0x00000007,0x00000677,0x00000007, + 0x0004003b,0x00000082,0x00000679,0x00000007,0x0004003b,0x00000007,0x0000067b,0x00000007, + 0x0004003b,0x00000007,0x0000067d,0x00000007,0x0004003b,0x00000007,0x0000067e,0x00000007, + 0x0004003b,0x00000082,0x0000068b,0x00000007,0x0004003b,0x00000007,0x0000068d,0x00000007, + 0x0004003b,0x00000007,0x0000068f,0x00000007,0x0004003b,0x00000007,0x00000690,0x00000007, + 0x0004003d,0x00000006,0x00000641,0x000000d8,0x0004003d,0x00000006,0x00000642,0x000000d7, + 0x000500b2,0x00000077,0x00000643,0x00000641,0x00000642,0x000300f7,0x00000645,0x00000000, + 0x000400fa,0x00000643,0x00000644,0x00000645,0x000200f8,0x00000644,0x000100fd,0x000200f8, + 0x00000645,0x00040039,0x00000002,0x00000647,0x00000075,0x0004003d,0x00000006,0x00000649, + 0x000000d3,0x0003003e,0x00000648,0x00000649,0x0004003d,0x00000006,0x0000064b,0x000000d4, + 0x0003003e,0x0000064a,0x0000064b,0x0004003d,0x00000019,0x0000064d,0x000000d5,0x0003003e, + 0x0000064c,0x0000064d,0x0004003d,0x00000006,0x0000064f,0x000000d6,0x0003003e,0x0000064e, + 0x0000064f,0x0004003d,0x00000006,0x00000651,0x000000d7,0x0003003e,0x00000650,0x00000651, + 0x0004003d,0x00000006,0x00000653,0x000000d9,0x0003003e,0x00000652,0x00000653,0x000a0039, + 0x00000002,0x00000654,0x000000b2,0x00000648,0x0000064a,0x0000064c,0x0000064e,0x00000650, + 0x00000652,0x0004003d,0x00000006,0x00000655,0x000000d8,0x0004003d,0x00000006,0x00000656, + 0x000000d7,0x00050080,0x00000006,0x00000657,0x00000656,0x00000111,0x000500b2,0x00000077, + 0x00000658,0x00000655,0x00000657,0x000300f7,0x0000065a,0x00000000,0x000400fa,0x00000658, + 0x00000659,0x0000065a,0x000200f8,0x00000659,0x000100fd,0x000200f8,0x0000065a,0x00040039, + 0x00000002,0x0000065c,0x00000075,0x0004003d,0x00000006,0x0000065d,0x000000d7,0x00050080, + 0x00000006,0x0000065e,0x0000065d,0x00000111,0x0004003d,0x00000006,0x00000660,0x000000d3, + 0x0003003e,0x0000065f,0x00000660,0x0004003d,0x00000006,0x00000662,0x000000d4,0x0003003e, + 0x00000661,0x00000662,0x0004003d,0x00000019,0x00000664,0x000000d5,0x0003003e,0x00000663, + 0x00000664,0x0004003d,0x00000006,0x00000666,0x000000d6,0x0003003e,0x00000665,0x00000666, + 0x0003003e,0x00000667,0x0000065e,0x0004003d,0x00000006,0x00000669,0x000000d9,0x0003003e, + 0x00000668,0x00000669,0x000a0039,0x00000002,0x0000066a,0x000000ba,0x0000065f,0x00000661, + 0x00000663,0x00000665,0x00000667,0x00000668,0x0004003d,0x00000006,0x0000066b,0x000000d8, + 0x0004003d,0x00000006,0x0000066c,0x000000d7,0x00050080,0x00000006,0x0000066d,0x0000066c, + 0x0000010a,0x000500b2,0x00000077,0x0000066e,0x0000066b,0x0000066d,0x000300f7,0x00000670, + 0x00000000,0x000400fa,0x0000066e,0x0000066f,0x00000670,0x000200f8,0x0000066f,0x000100fd, + 0x000200f8,0x00000670,0x00040039,0x00000002,0x00000672,0x00000075,0x0004003d,0x00000006, + 0x00000673,0x000000d7,0x00050080,0x00000006,0x00000674,0x00000673,0x0000010a,0x0004003d, + 0x00000006,0x00000676,0x000000d3,0x0003003e,0x00000675,0x00000676,0x0004003d,0x00000006, + 0x00000678,0x000000d4,0x0003003e,0x00000677,0x00000678,0x0004003d,0x00000019,0x0000067a, + 0x000000d5,0x0003003e,0x00000679,0x0000067a,0x0004003d,0x00000006,0x0000067c,0x000000d6, + 0x0003003e,0x0000067b,0x0000067c,0x0003003e,0x0000067d,0x00000674,0x0004003d,0x00000006, + 0x0000067f,0x000000d9,0x0003003e,0x0000067e,0x0000067f,0x000a0039,0x00000002,0x00000680, + 0x000000c2,0x00000675,0x00000677,0x00000679,0x0000067b,0x0000067d,0x0000067e,0x0004003d, + 0x00000006,0x00000681,0x000000d8,0x0004003d,0x00000006,0x00000682,0x000000d7,0x00050080, + 0x00000006,0x00000683,0x00000682,0x0000010b,0x000500b2,0x00000077,0x00000684,0x00000681, + 0x00000683,0x000300f7,0x00000686,0x00000000,0x000400fa,0x00000684,0x00000685,0x00000686, + 0x000200f8,0x00000685,0x000100fd,0x000200f8,0x00000686,0x00040039,0x00000002,0x00000688, + 0x00000075,0x0004003d,0x00000006,0x00000689,0x000000d7,0x00050080,0x00000006,0x0000068a, + 0x00000689,0x0000010b,0x0004003d,0x00000019,0x0000068c,0x000000d5,0x0003003e,0x0000068b, + 0x0000068c,0x0004003d,0x00000006,0x0000068e,0x000000d6,0x0003003e,0x0000068d,0x0000068e, + 0x0003003e,0x0000068f,0x0000068a,0x0004003d,0x00000006,0x00000691,0x000000d9,0x0003003e, + 0x00000690,0x00000691,0x00080039,0x00000002,0x00000692,0x000000c9,0x0000068b,0x0000068d, + 0x0000068f,0x00000690,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000e2,0x00000000, + 0x000000dc,0x00030037,0x00000082,0x000000dd,0x00030037,0x00000007,0x000000de,0x00030037, + 0x00000007,0x000000df,0x00030037,0x00000007,0x000000e0,0x00030037,0x00000007,0x000000e1, + 0x000200f8,0x000000e3,0x0004003b,0x00000082,0x00000693,0x00000007,0x0004003b,0x00000007, + 0x00000696,0x00000007,0x0004003b,0x00000007,0x00000698,0x00000007,0x0004003b,0x00000007, + 0x000006a1,0x00000007,0x0004003b,0x00000007,0x000006a9,0x00000007,0x0004003b,0x00000007, + 0x000006ab,0x00000007,0x0004003b,0x00000082,0x000006ad,0x00000007,0x0004003b,0x00000007, + 0x000006af,0x00000007,0x0004003b,0x00000007,0x000006b1,0x00000007,0x0004003b,0x00000007, + 0x000006b3,0x00000007,0x0004003b,0x00000007,0x000006b6,0x00000007,0x0004003b,0x00000007, + 0x000006b8,0x00000007,0x0004003b,0x00000082,0x000006ba,0x00000007,0x0004003b,0x00000007, + 0x000006bc,0x00000007,0x0004003b,0x00000007,0x000006be,0x00000007,0x0004003b,0x00000007, + 0x000006bf,0x00000007,0x0004003b,0x00000007,0x000006c1,0x00000007,0x0004003b,0x00000007, + 0x000006c9,0x00000007,0x0004003b,0x00000007,0x000006cb,0x00000007,0x0004003b,0x00000007, + 0x000006cd,0x00000007,0x0004003b,0x00000007,0x000006d3,0x00000007,0x0004003b,0x00000007, + 0x000006d6,0x00000007,0x0004003b,0x00000007,0x000006d8,0x00000007,0x0004003b,0x00000007, + 0x000006da,0x00000007,0x0004003b,0x00000007,0x000006dc,0x00000007,0x0004003b,0x00000007, + 0x000006df,0x00000007,0x0004003b,0x00000007,0x000006e1,0x00000007,0x0004003b,0x00000082, + 0x000006e3,0x00000007,0x0004003b,0x00000007,0x000006e4,0x00000007,0x0004003b,0x00000007, + 0x000006e6,0x00000007,0x0004003b,0x00000007,0x000006e7,0x00000007,0x0004003b,0x00000007, + 0x000006e9,0x00000007,0x0004003d,0x00000006,0x00000694,0x000000de,0x00050089,0x00000006, + 0x00000695,0x00000694,0x00000396,0x0003003e,0x00000696,0x00000695,0x00050039,0x00000019, + 0x00000697,0x0000001c,0x00000696,0x0003003e,0x00000693,0x00000697,0x00050041,0x00000007, + 0x00000699,0x00000693,0x00000161,0x0004003d,0x00000006,0x0000069a,0x00000699,0x0004003d, + 0x00000006,0x0000069b,0x000000de,0x000500c2,0x00000006,0x0000069d,0x0000069b,0x0000069c, + 0x00050089,0x00000006,0x0000069e,0x0000069d,0x0000010a,0x00050084,0x00000006,0x0000069f, + 0x000001b2,0x0000069e,0x00050080,0x00000006,0x000006a0,0x0000069a,0x0000069f,0x0003003e, + 0x00000698,0x000006a0,0x00050041,0x00000007,0x000006a2,0x00000693,0x00000111,0x0004003d, + 0x00000006,0x000006a3,0x000006a2,0x0004003d,0x00000006,0x000006a4,0x000000de,0x000500c2, + 0x00000006,0x000006a6,0x000006a4,0x000006a5,0x00050084,0x00000006,0x000006a7,0x000001b2, + 0x000006a6,0x00050080,0x00000006,0x000006a8,0x000006a3,0x000006a7,0x0003003e,0x000006a1, + 0x000006a8,0x0004003d,0x00000006,0x000006aa,0x00000698,0x0003003e,0x000006a9,0x000006aa, + 0x0004003d,0x00000006,0x000006ac,0x000006a1,0x0003003e,0x000006ab,0x000006ac,0x0004003d, + 0x00000019,0x000006ae,0x000000dd,0x0003003e,0x000006ad,0x000006ae,0x0004003d,0x00000006, + 0x000006b0,0x000000de,0x0003003e,0x000006af,0x000006b0,0x0004003d,0x00000006,0x000006b2, + 0x000000df,0x0003003e,0x000006b1,0x000006b2,0x0004003d,0x00000006,0x000006b4,0x000000e1, + 0x0003003e,0x000006b3,0x000006b4,0x000a0039,0x00000002,0x000006b5,0x000000aa,0x000006a9, + 0x000006ab,0x000006ad,0x000006af,0x000006b1,0x000006b3,0x0004003d,0x00000006,0x000006b7, + 0x00000698,0x0003003e,0x000006b6,0x000006b7,0x0004003d,0x00000006,0x000006b9,0x000006a1, + 0x0003003e,0x000006b8,0x000006b9,0x0004003d,0x00000019,0x000006bb,0x000000dd,0x0003003e, + 0x000006ba,0x000006bb,0x0004003d,0x00000006,0x000006bd,0x000000de,0x0003003e,0x000006bc, + 0x000006bd,0x0003003e,0x000006be,0x0000010a,0x0004003d,0x00000006,0x000006c0,0x000000df, + 0x0003003e,0x000006bf,0x000006c0,0x0004003d,0x00000006,0x000006c2,0x000000e1,0x0003003e, + 0x000006c1,0x000006c2,0x000b0039,0x00000002,0x000006c3,0x000000da,0x000006b6,0x000006b8, + 0x000006ba,0x000006bc,0x000006be,0x000006bf,0x000006c1,0x0004003d,0x00000006,0x000006c4, + 0x000000df,0x000500b2,0x00000077,0x000006c5,0x000006c4,0x0000019e,0x000300f7,0x000006c7, + 0x00000000,0x000400fa,0x000006c5,0x000006c6,0x000006c7,0x000200f8,0x000006c6,0x000100fd, + 0x000200f8,0x000006c7,0x0004003d,0x00000006,0x000006ca,0x000000e0,0x0003003e,0x000006c9, + 0x000006ca,0x0004003d,0x00000006,0x000006cc,0x000000de,0x0003003e,0x000006cb,0x000006cc, + 0x0004003d,0x00000006,0x000006ce,0x000000e1,0x0003003e,0x000006cd,0x000006ce,0x00070039, + 0x00000077,0x000006cf,0x0000007c,0x000006c9,0x000006cb,0x000006cd,0x000300f7,0x000006d1, + 0x00000000,0x000400fa,0x000006cf,0x000006d0,0x000006d1,0x000200f8,0x000006d0,0x000100fd, + 0x000200f8,0x000006d1,0x0004003d,0x00000006,0x000006d4,0x000000e1,0x0003003e,0x000006d3, + 0x000006d4,0x00050039,0x00000002,0x000006d5,0x00000061,0x000006d3,0x0004003d,0x00000006, + 0x000006d7,0x00000698,0x0003003e,0x000006d6,0x000006d7,0x0004003d,0x00000006,0x000006d9, + 0x000006a1,0x0003003e,0x000006d8,0x000006d9,0x0004003d,0x00000006,0x000006db,0x000000df, + 0x0003003e,0x000006da,0x000006db,0x0004003d,0x00000006,0x000006dd,0x000000e1,0x0003003e, + 0x000006dc,0x000006dd,0x00080039,0x00000002,0x000006de,0x000000d0,0x000006d6,0x000006d8, + 0x000006da,0x000006dc,0x0004003d,0x00000006,0x000006e0,0x00000698,0x0003003e,0x000006df, + 0x000006e0,0x0004003d,0x00000006,0x000006e2,0x000006a1,0x0003003e,0x000006e1,0x000006e2, + 0x0003003e,0x000006e3,0x00000348,0x0004003d,0x00000006,0x000006e5,0x000000de,0x0003003e, + 0x000006e4,0x000006e5,0x0003003e,0x000006e6,0x000001b2,0x0004003d,0x00000006,0x000006e8, + 0x000000df,0x0003003e,0x000006e7,0x000006e8,0x0004003d,0x00000006,0x000006ea,0x000000e1, + 0x0003003e,0x000006e9,0x000006ea,0x000b0039,0x00000002,0x000006eb,0x000000da,0x000006df, + 0x000006e1,0x000006e3,0x000006e4,0x000006e6,0x000006e7,0x000006e9,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000eb,0x00000000,0x000000e4,0x00030037,0x00000082,0x000000e5, + 0x00030037,0x00000007,0x000000e6,0x00030037,0x00000007,0x000000e7,0x00030037,0x00000007, + 0x000000e8,0x00030037,0x00000007,0x000000e9,0x00030037,0x00000082,0x000000ea,0x000200f8, + 0x000000ec,0x0004003b,0x00000082,0x000006ef,0x00000007,0x0004003b,0x00000007,0x000006f0, + 0x00000007,0x0004003b,0x00000007,0x000006f2,0x00000007,0x0004003b,0x00000007,0x000006f4, + 0x00000007,0x0004003b,0x00000007,0x000006f6,0x00000007,0x0004003d,0x00000019,0x000006ec, + 0x000000e5,0x0004003d,0x00000019,0x000006ed,0x000000ea,0x00050080,0x00000019,0x000006ee, + 0x000006ec,0x000006ed,0x0003003e,0x000006ef,0x000006ee,0x0004003d,0x00000006,0x000006f1, + 0x000000e6,0x0003003e,0x000006f0,0x000006f1,0x0004003d,0x00000006,0x000006f3,0x000000e7, + 0x0003003e,0x000006f2,0x000006f3,0x0004003d,0x00000006,0x000006f5,0x000000e8,0x0003003e, + 0x000006f4,0x000006f5,0x0004003d,0x00000006,0x000006f7,0x000000e9,0x0003003e,0x000006f6, + 0x000006f7,0x00090039,0x00000002,0x000006f8,0x000000e2,0x000006ef,0x000006f0,0x000006f2, + 0x000006f4,0x000006f6,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f2,0x00000000, + 0x000000ef,0x00030037,0x000000ee,0x000000f0,0x00030037,0x00000035,0x000000f1,0x000200f8, + 0x000000f3,0x0004003b,0x00000082,0x00000704,0x00000007,0x0004003b,0x00000007,0x00000705, + 0x00000007,0x0004003b,0x00000007,0x00000706,0x00000007,0x0004003b,0x00000007,0x00000707, + 0x00000007,0x0004003b,0x00000007,0x00000708,0x00000007,0x0004003b,0x00000082,0x00000709, + 0x00000007,0x0004003d,0x000000ed,0x000006f9,0x000000f0,0x0007004f,0x0000001f,0x000006fa, + 0x000006f9,0x000006f9,0x00000000,0x00000001,0x0004007c,0x00000019,0x000006fb,0x000006fa, + 0x0004003d,0x0000001e,0x000006fc,0x000000f1,0x0004007c,0x00000006,0x000006fd,0x000006fc, + 0x00040039,0x00000006,0x000006fe,0x00000028,0x00040039,0x00000006,0x000006ff,0x0000002a, + 0x00050041,0x00000035,0x00000700,0x000000f0,0x0000010a,0x0004003d,0x0000001e,0x00000701, + 0x00000700,0x0004007c,0x00000006,0x00000702,0x00000701,0x00040039,0x00000019,0x00000703, + 0x0000002d,0x0003003e,0x00000704,0x000006fb,0x0003003e,0x00000705,0x000006fd,0x0003003e, + 0x00000706,0x000006fe,0x0003003e,0x00000707,0x000006ff,0x0003003e,0x00000708,0x00000702, + 0x0003003e,0x00000709,0x00000703,0x000a0039,0x00000002,0x0000070a,0x000000eb,0x00000704, + 0x00000705,0x00000706,0x00000707,0x00000708,0x00000709,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h b/gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h new file mode 100644 index 000000000..faf6f6c6a --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h @@ -0,0 +1,1260 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_INTERPOLATE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000622,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000038,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000613, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c,0x726f665f,0x7474616d, + 0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005, + 0x0000000b,0x41786666,0x6f6c4673,0x75287461,0x00003b31,0x00030005,0x0000000a,0x00000078, + 0x00070005,0x00000011,0x42786666,0x64616f72,0x74736163,0x31662832,0x0000003b,0x00040005, + 0x00000010,0x756c6176,0x00000065,0x00070005,0x00000016,0x42786666,0x64616f72,0x74736163, + 0x31662833,0x0000003b,0x00040005,0x00000015,0x756c6176,0x00000065,0x00070005,0x0000001c, + 0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000019,0x00000078, + 0x00030005,0x0000001a,0x00000079,0x00030005,0x0000001b,0x00000074,0x00070005,0x00000023, + 0x4c786666,0x28707265,0x3b336676,0x3b336676,0x003b3166,0x00030005,0x00000020,0x00000078, + 0x00030005,0x00000021,0x00000079,0x00030005,0x00000022,0x00000074,0x00060005,0x00000027, + 0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x00000026,0x00000078,0x00070005, + 0x0000002c,0x53786666,0x72757461,0x28657461,0x3b326676,0x00000000,0x00030005,0x0000002b, + 0x00000078,0x00070005,0x00000030,0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000, + 0x00030005,0x0000002f,0x00000078,0x00060005,0x00000033,0x46786666,0x74636172,0x32667628, + 0x0000003b,0x00030005,0x00000032,0x00000078,0x00070005,0x00000037,0x55786666,0x6361706e, + 0x3233466b,0x3b317528,0x00000000,0x00030005,0x00000036,0x00000075,0x00060005,0x0000003c, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x0000003a,0x00000078,0x00030005, + 0x0000003b,0x00000079,0x00060005,0x00000040,0x4d786666,0x66287861,0x31663b31,0x0000003b, + 0x00030005,0x0000003e,0x00000078,0x00030005,0x0000003f,0x00000079,0x00060005,0x00000044, + 0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000042,0x00000078,0x00030005, + 0x00000043,0x00000079,0x000a0005,0x0000004a,0x5a786666,0x4f6f7265,0x6553656e,0x7463656c, + 0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005,0x00000047,0x00000078,0x00030005, + 0x00000048,0x00000079,0x00030005,0x00000049,0x0000007a,0x00080005,0x0000004d,0x5a786666, + 0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366,0x00030005,0x0000004c,0x00000078, + 0x00080005,0x00000050,0x4c786666,0x61656e69,0x6f724672,0x2851506d,0x3b336676,0x00000000, + 0x00040005,0x0000004f,0x756c6176,0x00000065,0x00080005,0x00000053,0x4c786666,0x61656e69, + 0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005,0x00000052,0x756c6176,0x00000065, + 0x00080005,0x00000058,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00002865, + 0x00080005,0x0000005a,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00002865, + 0x00050005,0x0000005c,0x646e6552,0x69537265,0x0028657a,0x00060005,0x0000005e,0x70736944, + 0x5379616c,0x28657a69,0x00000000,0x00070005,0x00000060,0x4f746547,0x63697470,0x6c466c61, + 0x6953776f,0x0028657a,0x00080005,0x00000062,0x4f746547,0x63697470,0x6c466c61,0x6953776f, + 0x2832657a,0x00000000,0x00070005,0x00000064,0x4d746547,0x65527861,0x7265646e,0x657a6953, + 0x00000028,0x00090005,0x00000067,0x6b636142,0x66667542,0x72547265,0x66736e61,0x75467265, + 0x6974636e,0x00286e6f,0x00060005,0x0000006a,0x4c6e694d,0x6e696d75,0x65636e61,0x00000028, + 0x00060005,0x0000006c,0x4c78614d,0x6e696d75,0x65636e61,0x00000028,0x00090005,0x00000071, + 0x64616f4c,0x76657250,0x73756f69,0x6b636142,0x66667562,0x76287265,0x003b3269,0x00040005, + 0x00000070,0x50785069,0x0000736f,0x00090005,0x00000074,0x64616f4c,0x72727543,0x42746e65, + 0x626b6361,0x65666675,0x69762872,0x00003b32,0x00040005,0x00000073,0x50785069,0x0000736f, + 0x00090005,0x00000079,0x706d6153,0x6944656c,0x63636f73,0x6973756c,0x614d6e6f,0x76286b73, + 0x003b3266,0x00030005,0x00000078,0x00765566,0x00080005,0x0000007e,0x64616f4c,0x656d6147, + 0x6c656946,0x28764d64,0x3b326976,0x00000000,0x00050005,0x0000007d,0x53785069,0x6c706d61, + 0x00000065,0x00090005,0x00000081,0x64616f4c,0x6974704f,0x466c6163,0x46776f6c,0x646c6569, + 0x7628764d,0x003b3269,0x00050005,0x00000080,0x53785069,0x6c706d61,0x00000065,0x000a0005, + 0x00000088,0x64616f4c,0x61706e49,0x69746e69,0x7950676e,0x696d6172,0x31692864,0x3275763b, + 0x0000003b,0x00050005,0x00000086,0x4c70696d,0x6c657665,0x00000000,0x00050005,0x00000087, + 0x49785069,0x7475706e,0x00000000,0x00060005,0x0000008c,0x64616f4c,0x6e756f43,0x28726574, + 0x003b3169,0x00040005,0x0000008b,0x50785069,0x0000736f,0x00090005,0x0000008e,0x6d617246, + 0x646e4965,0x69537865,0x4c65636e,0x52747361,0x74657365,0x00000028,0x000c0005,0x00000094, + 0x726f7453,0x61724665,0x6e69656d,0x70726574,0x74616c6f,0x4f6e6f69,0x75707475,0x69762874, + 0x66763b32,0x00003b34,0x00040005,0x00000092,0x50785069,0x0000736f,0x00030005,0x00000093, + 0x006c6176,0x00090005,0x0000009a,0x73786666,0x42475263,0x694c6f54,0x7261656e,0x33667628, + 0x3b31663b,0x003b3166,0x00040005,0x00000097,0x756c6176,0x00000065,0x00060005,0x00000098, + 0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x00000099,0x4c78616d,0x6e696d75, + 0x65636e61,0x00000000,0x00070005,0x0000009d,0x52776152,0x6f544247,0x656e694c,0x76287261, + 0x003b3366,0x00040005,0x0000009c,0x77615266,0x00626752,0x00080005,0x000000a2,0x696c6942, + 0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000,0x00060006,0x000000a2,0x00000000, + 0x66664f69,0x73746573,0x00000000,0x00060006,0x000000a2,0x00000001,0x69655766,0x73746867, + 0x00000000,0x00060006,0x000000a2,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005, + 0x000000a6,0x42746547,0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676, + 0x3b326976,0x00000000,0x00030005,0x000000a4,0x00765566,0x00040005,0x000000a5,0x7a695369, + 0x00000065,0x00070005,0x000000ac,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269, + 0x00030005,0x000000aa,0x00736f70,0x00040005,0x000000ab,0x657a6973,0x00000000,0x00060005, + 0x000000b0,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x000000af,0x00765566, + 0x00080005,0x000000b6,0x6e497349,0x74636552,0x32697628,0x3269763b,0x3269763b,0x0000003b, + 0x00030005,0x000000b3,0x00736f70,0x00050005,0x000000b4,0x63655269,0x726f4374,0x0072656e, + 0x00050005,0x000000b5,0x63655269,0x7a695374,0x00000065,0x00080005,0x000000bb,0x6d726f4e, + 0x7a696c61,0x6f446465,0x76283374,0x763b3366,0x003b3366,0x00030005,0x000000b9,0x00003076, + 0x00030005,0x000000ba,0x00003176,0x00070005,0x000000bd,0x74636556,0x6946726f,0x45646c65, + 0x7972746e,0x00000000,0x00070006,0x000000bd,0x00000000,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00080006,0x000000bd,0x00000001,0x67694875,0x69725068,0x7469726f,0x63614679, + 0x00726f74,0x00080006,0x000000bd,0x00000002,0x776f4c75,0x6f697250,0x79746972,0x74636146, + 0x0000726f,0x00050006,0x000000bd,0x00000003,0x6c615662,0x00006469,0x00060006,0x000000bd, + 0x00000004,0x69725062,0x7972616d,0x00000000,0x00060006,0x000000bd,0x00000005,0x63655362, + 0x61646e6f,0x00007972,0x00060006,0x000000bd,0x00000006,0x506e4962,0x746e6961,0x00006465, + 0x00060006,0x000000bd,0x00000007,0x6c655666,0x7469636f,0x00000079,0x00060006,0x000000bd, + 0x00000008,0x67654e62,0x7374754f,0x00656469,0x00060006,0x000000bd,0x00000009,0x736f5062, + 0x7374754f,0x00656469,0x00080005,0x000000bf,0x5677654e,0x6f746365,0x65694672,0x6e45646c, + 0x28797274,0x00000000,0x000b0005,0x000000c3,0x6b636150,0x65566465,0x726f7463,0x6c656946, + 0x746e4564,0x73497972,0x6d697250,0x28797261,0x003b3175,0x00050005,0x000000c2,0x6b636170, + 0x6e456465,0x00797274,0x00180005,0x000000c9,0x61706e55,0x65566b63,0x726f7463,0x6c656946, + 0x746e4564,0x73656972,0x32757628,0x7274733b,0x2d746375,0x74636556,0x6946726f,0x45646c65, + 0x7972746e,0x3266762d,0x2d31662d,0x622d3166,0x31622d31,0x2d31622d,0x662d3162,0x31622d31, + 0x3131622d,0x0000003b,0x00040005,0x000000c7,0x6b636170,0x00006465,0x00050005,0x000000c8, + 0x6c456676,0x6e656d65,0x00000074,0x000c0005,0x000000cf,0x706d6f43,0x4d657475,0x706e4976, + 0x746e6961,0x4c676e69,0x6c657665,0x32667628,0x3b31693b,0x3b326976,0x00000000,0x00030005, + 0x000000cc,0x00765566,0x00050005,0x000000cd,0x70694d69,0x6576654c,0x0000006c,0x00050005, + 0x000000ce,0x78655469,0x657a6953,0x00000000,0x00180005,0x000000d4,0x64616f4c,0x61706e49, + 0x65746e69,0x6d614764,0x65694665,0x764d646c,0x32667628,0x7274733b,0x2d746375,0x74636556, + 0x6946726f,0x45646c65,0x7972746e,0x3266762d,0x2d31662d,0x622d3166,0x31622d31,0x2d31622d, + 0x662d3162,0x31622d31,0x3131622d,0x0000003b,0x00030005,0x000000d2,0x00765566,0x00050005, + 0x000000d3,0x6c456676,0x6e656d65,0x00000074,0x001a0005,0x000000d8,0x706d6153,0x704f656c, + 0x61636974,0x6f6c466c,0x746f4d77,0x566e6f69,0x6f746365,0x65694672,0x7628646c,0x733b3266, + 0x63757274,0x65562d74,0x726f7463,0x6c656946,0x746e4564,0x762d7972,0x662d3266,0x31662d31, + 0x2d31622d,0x622d3162,0x31622d31,0x2d31662d,0x622d3162,0x003b3131,0x00030005,0x000000d6, + 0x00765566,0x00050005,0x000000d7,0x6c456676,0x6e656d65,0x00000074,0x00090005,0x000000da, + 0x65746e49,0x6c6f7072,0x6f697461,0x756f536e,0x43656372,0x726f6c6f,0x00000000,0x00050006, + 0x000000da,0x00000000,0x77615266,0x00000000,0x00050006,0x000000da,0x00000001,0x6e694c66, + 0x00726165,0x00080006,0x000000da,0x00000002,0x6c694266,0x61656e69,0x69655772,0x53746867, + 0x00006d75,0x000a0005,0x000000dc,0x4977654e,0x7265746e,0x616c6f70,0x6e6f6974,0x72756f53, + 0x6f436563,0x28726f6c,0x00000000,0x000c0005,0x000000e4,0x706d6153,0x6554656c,0x72757478, + 0x6c694265,0x61656e69,0x31622872,0x3266763b,0x3266763b,0x3269763b,0x0000003b,0x00050005, + 0x000000e0,0x75437369,0x6e657272,0x00000074,0x00030005,0x000000e1,0x00765566,0x00060005, + 0x000000e2,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00040005,0x000000e3,0x53786574, + 0x00657a69,0x000a0005,0x000000e9,0x61647075,0x6e496574,0x6e696150,0x676e6974,0x67696557, + 0x66287468,0x31663b31,0x0000003b,0x00070005,0x000000e7,0x506e4966,0x746e6961,0x57676e69, + 0x68676965,0x00000074,0x00040005,0x000000e8,0x63614666,0x00726f74,0x000c0005,0x000000ef, + 0x706d6f63,0x49657475,0x7265746e,0x616c6f70,0x43646574,0x726f6c6f,0x32757628,0x3366763b, + 0x3b31663b,0x00000000,0x00040005,0x000000ec,0x50785069,0x0000736f,0x00070005,0x000000ed, + 0x746e4966,0x6f707265,0x6574616c,0x6c6f4364,0x0000726f,0x00070005,0x000000ee,0x506e4966, + 0x746e6961,0x57676e69,0x68676965,0x00000074,0x000a0005,0x000000f3,0x706d6f63,0x46657475, + 0x656d6172,0x65746e69,0x6c6f7072,0x6f697461,0x6976286e,0x00003b32,0x00040005,0x000000f2, + 0x50785069,0x0000736f,0x00040005,0x00000115,0x61726170,0x0000006d,0x00040005,0x00000117, + 0x61726170,0x0000006d,0x00040005,0x0000011d,0x61726170,0x0000006d,0x00040005,0x0000011f, + 0x61726170,0x0000006d,0x00030005,0x0000013b,0x00000072,0x00040005,0x0000014b,0x61726170, + 0x0000006d,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x00000150,0x61726170, + 0x0000006d,0x00030005,0x00000154,0x00000070,0x00040005,0x00000157,0x61726170,0x0000006d, + 0x00040005,0x0000015c,0x61726170,0x0000006d,0x00040005,0x0000015f,0x61726170,0x0000006d, + 0x00040005,0x00000162,0x61726170,0x0000006d,0x00040005,0x00000165,0x61726170,0x0000006d, + 0x00040005,0x0000016c,0x61726170,0x0000006d,0x00030005,0x00000171,0x0000006a,0x00030005, + 0x00000176,0x0000006b,0x00040005,0x0000017e,0x61726170,0x0000006d,0x00040005,0x0000018e, + 0x61726170,0x0000006d,0x00040005,0x0000018f,0x61726170,0x0000006d,0x00040005,0x00000190, + 0x61726170,0x0000006d,0x00040005,0x00000194,0x49466263,0x0000745f,0x00060006,0x00000194, + 0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006,0x00000194,0x00000001,0x70736964, + 0x5379616c,0x00657a69,0x00070006,0x00000194,0x00000002,0x70736964,0x5379616c,0x52657a69, + 0x00007063,0x00060006,0x00000194,0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006, + 0x00000194,0x00000004,0x656d6163,0x61466172,0x00000072,0x00080006,0x00000194,0x00000005, + 0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a,0x00050006,0x00000194,0x00000006, + 0x65646f4d,0x00000000,0x00050006,0x00000194,0x00000007,0x65736572,0x00000074,0x00080006, + 0x00000194,0x00000008,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006, + 0x00000194,0x00000009,0x746c6564,0x6d695461,0x00000065,0x00090006,0x00000194,0x0000000a, + 0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006,0x00000194, + 0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x00000194, + 0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006,0x00000194, + 0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006, + 0x00000194,0x0000000e,0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006,0x00000194, + 0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065,0x00090006,0x00000194,0x00000010, + 0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x00000194, + 0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000,0x00090006,0x00000194,0x00000012, + 0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006,0x00000194, + 0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006, + 0x00000194,0x00000014,0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x00000194, + 0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f, + 0x00070006,0x00000194,0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006, + 0x00000194,0x00000017,0x6e615466,0x666c6148,0x00564f46,0x00050006,0x00000194,0x00000018, + 0x6461705f,0x00000031,0x00050006,0x00000194,0x00000019,0x74694a66,0x00726574,0x00080006, + 0x00000194,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005, + 0x00000196,0x49466263,0x00000000,0x00070005,0x000001ac,0x74704f69,0x6c616369,0x776f6c46, + 0x657a6953,0x00000000,0x000a0005,0x000001dc,0x72705f72,0x6f697665,0x695f7375,0x7265746e, + 0x616c6f70,0x6e6f6974,0x756f735f,0x00656372,0x000a0005,0x000001e3,0x75635f72,0x6e657272, + 0x6e695f74,0x70726574,0x74616c6f,0x5f6e6f69,0x72756f73,0x00006563,0x00070005,0x000001ea, + 0x69645f72,0x63636f73,0x6973756c,0x6d5f6e6f,0x006b7361,0x00060005,0x000001ee,0x694c5f73, + 0x7261656e,0x6d616c43,0x00000070,0x00040005,0x000001f6,0x6b636170,0x00586465,0x000a0005, + 0x000001f9,0x61675f72,0x6d5f656d,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x785f646c, + 0x00000000,0x00040005,0x000001ff,0x6b636170,0x00596465,0x000a0005,0x00000200,0x61675f72, + 0x6d5f656d,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x795f646c,0x00000000,0x00040005, + 0x0000020a,0x6b636170,0x00586465,0x000c0005,0x0000020b,0x706f5f72,0x61636974,0x6c665f6c, + 0x6d5f776f,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x785f646c,0x00000000,0x00040005, + 0x00000210,0x6b636170,0x00596465,0x000c0005,0x00000211,0x706f5f72,0x61636974,0x6c665f6c, + 0x6d5f776f,0x6f69746f,0x65765f6e,0x726f7463,0x6569665f,0x795f646c,0x00000000,0x00080005, + 0x0000021b,0x6e695f72,0x6e696170,0x676e6974,0x7279705f,0x64696d61,0x00000000,0x000a0005, + 0x00000224,0x6d617246,0x746e4965,0x6f707265,0x6974616c,0x6f436e6f,0x65746e75,0x745f7372, + 0x00000000,0x00050006,0x00000224,0x00000000,0x61746164,0x00000000,0x00050005,0x00000226, + 0x6f635f72,0x65746e75,0x00007372,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00050005, + 0x00000233,0x6f5f7772,0x75707475,0x00000074,0x00030005,0x00000237,0x00000070,0x00040005, + 0x0000023c,0x61726170,0x0000006d,0x00040005,0x00000244,0x61726170,0x0000006d,0x00050005, + 0x0000024e,0x6e694c66,0x52726165,0x00006267,0x00040005,0x0000024f,0x61726170,0x0000006d, + 0x00040005,0x00000253,0x61726170,0x0000006d,0x00040005,0x0000025d,0x61726170,0x0000006d, + 0x00040005,0x0000025f,0x61726170,0x0000006d,0x00040005,0x00000260,0x61726170,0x0000006d, + 0x00050005,0x00000267,0x53785066,0x6c706d61,0x00000065,0x00040005,0x00000270,0x61746164, + 0x00000000,0x00040005,0x00000276,0x46785066,0x00636172,0x00040005,0x00000277,0x61726170, + 0x0000006d,0x00050005,0x000002e7,0x78614d66,0x676e654c,0x00006874,0x00040005,0x000002ea, + 0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170,0x0000006d,0x00030005,0x000002fd, + 0x00656676,0x00040005,0x0000032d,0x61726170,0x0000006d,0x00040005,0x00000347,0x61726170, + 0x0000006d,0x00040005,0x0000034d,0x61726170,0x0000006d,0x00060005,0x00000354,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x00000355,0x61726170,0x0000006d,0x00040005, + 0x00000357,0x61726170,0x0000006d,0x00040005,0x00000359,0x6d755366,0x00000000,0x00040005, + 0x0000035a,0x6c6f4366,0x0000726f,0x00060005,0x0000035e,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x00000366,0x66664f69,0x00746573,0x00050005,0x0000036a,0x6d615369, + 0x50656c70,0x0000736f,0x00040005,0x0000036f,0x61726170,0x0000006d,0x00040005,0x00000371, + 0x61726170,0x0000006d,0x00040005,0x00000375,0x6d615366,0x00656c70,0x00040005,0x00000378, + 0x61726170,0x0000006d,0x00040005,0x00000379,0x61726170,0x0000006d,0x00060005,0x0000037b, + 0x69725066,0x7469726f,0x63614679,0x00726f74,0x00060005,0x0000037e,0x6c615666,0x764d6469, + 0x74636146,0x0000726f,0x00060005,0x00000383,0x6d615366,0x57656c70,0x68676965,0x00000074, + 0x00050005,0x0000039f,0x53785069,0x6c706d61,0x00000065,0x00070005,0x000003a5,0x6b636170, + 0x61476465,0x6946656d,0x4d646c65,0x00000076,0x00040005,0x000003a6,0x61726170,0x0000006d, + 0x00040005,0x000003a9,0x61726170,0x0000006d,0x00040005,0x000003ab,0x61726170,0x0000006d, + 0x00050005,0x000003b3,0x78655469,0x657a6953,0x00000000,0x00070005,0x000003b5,0x506e4966, + 0x746e6961,0x65566465,0x726f7463,0x00000000,0x00050005,0x000003b6,0x70694d69,0x6576654c, + 0x0000006c,0x00040005,0x000003cb,0x61726170,0x0000006d,0x00040005,0x000003df,0x61726170, + 0x0000006d,0x00040005,0x000003e7,0x61726170,0x0000006d,0x00060005,0x000003ef,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000003f4,0x61726170,0x0000006d,0x00040005, + 0x000003f6,0x61726170,0x0000006d,0x00050005,0x000003f9,0x69655766,0x53746867,0x00006d75, + 0x00060005,0x000003fa,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x00000402, + 0x66664f69,0x00746573,0x00050005,0x00000406,0x6d615369,0x50656c70,0x0000736f,0x00040005, + 0x0000040f,0x61726170,0x0000006d,0x00040005,0x00000411,0x61726170,0x0000006d,0x00040005, + 0x00000415,0x69655766,0x00746867,0x00060005,0x00000419,0x56664f66,0x6f746365,0x6d615372, + 0x00656c70,0x00070005,0x0000041b,0x6b636170,0x704f6465,0x61636974,0x6f6c466c,0x00764d77, + 0x00040005,0x0000041c,0x61726170,0x0000006d,0x00040005,0x00000422,0x61726170,0x0000006d, + 0x00040005,0x00000423,0x61726170,0x0000006d,0x00040005,0x0000045b,0x61726170,0x0000006d, + 0x00040005,0x00000463,0x61726170,0x0000006d,0x00030005,0x0000046c,0x00000063,0x00040005, + 0x00000474,0x75736572,0x0000746c,0x00060005,0x00000476,0x70655266,0x656a6f72,0x64657463, + 0x00007655,0x00060005,0x0000047a,0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005, + 0x0000047b,0x61726170,0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00040005, + 0x00000480,0x6c6f4366,0x0000726f,0x00050005,0x00000481,0x69655766,0x53746867,0x00006d75, + 0x00060005,0x00000482,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x0000048a, + 0x66664f69,0x00746573,0x00050005,0x0000048e,0x6d615369,0x50656c70,0x0000736f,0x00040005, + 0x00000495,0x61726170,0x0000006d,0x00040005,0x00000497,0x61726170,0x0000006d,0x00040005, + 0x00000498,0x61726170,0x0000006d,0x00040005,0x0000049c,0x69655766,0x00746867,0x00040005, + 0x000004a3,0x61726170,0x0000006d,0x00040005,0x000004ab,0x61726170,0x0000006d,0x00040005, + 0x000004c4,0x61726170,0x0000006d,0x00040005,0x000004cd,0x61726170,0x0000006d,0x00040005, + 0x000004cf,0x61726170,0x0000006d,0x00040005,0x000004d2,0x61726170,0x0000006d,0x00080005, + 0x000004d4,0x49765566,0x746e496e,0x6f707265,0x6974616c,0x65526e6f,0x00007463,0x00070005, + 0x000004df,0x49765566,0x7263536e,0x536e6565,0x65636170,0x00000000,0x00090005,0x000004e7, + 0x55724c66,0x496e4976,0x7265746e,0x616c6f70,0x6e6f6974,0x74636552,0x00000000,0x00070005, + 0x000004ef,0x4c765566,0x65747465,0x786f4272,0x6c616353,0x00000065,0x00040005,0x000004f5, + 0x656d6167,0x0000764d,0x00040005,0x000004f6,0x61726170,0x0000006d,0x00040005,0x000004f8, + 0x61726170,0x0000006d,0x00040005,0x000004fb,0x764d666f,0x00000000,0x00040005,0x000004fc, + 0x61726170,0x0000006d,0x00040005,0x000004fe,0x61726170,0x0000006d,0x00070005,0x00000501, + 0x73694466,0x6c63636f,0x6f697375,0x6361466e,0x00726f74,0x00040005,0x00000502,0x61726170, + 0x0000006d,0x00040005,0x00000505,0x61726170,0x0000006d,0x00060005,0x0000050b,0x65725066, + 0x6c6f4376,0x6147726f,0x0000656d,0x00040005,0x00000511,0x61726170,0x0000006d,0x00040005, + 0x00000512,0x61726170,0x0000006d,0x00040005,0x00000514,0x61726170,0x0000006d,0x00040005, + 0x00000515,0x61726170,0x0000006d,0x00060005,0x00000517,0x72754366,0x6c6f4372,0x6147726f, + 0x0000656d,0x00040005,0x0000051e,0x61726170,0x0000006d,0x00040005,0x0000051f,0x61726170, + 0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000522,0x61726170, + 0x0000006d,0x00060005,0x00000524,0x65725066,0x6c6f4376,0x464f726f,0x00000000,0x00040005, + 0x0000052a,0x61726170,0x0000006d,0x00040005,0x0000052b,0x61726170,0x0000006d,0x00040005, + 0x0000052d,0x61726170,0x0000006d,0x00040005,0x0000052e,0x61726170,0x0000006d,0x00060005, + 0x00000530,0x72754366,0x6c6f4372,0x464f726f,0x00000000,0x00040005,0x00000537,0x61726170, + 0x0000006d,0x00040005,0x00000538,0x61726170,0x0000006d,0x00040005,0x0000053a,0x61726170, + 0x0000006d,0x00040005,0x0000053b,0x61726170,0x0000006d,0x00070005,0x0000053d,0x73694466, + 0x6c63636f,0x64656475,0x74636146,0x0000726f,0x00040005,0x00000553,0x61726170,0x0000006d, + 0x00040005,0x00000555,0x61726170,0x0000006d,0x00030005,0x00000558,0x00000074,0x00040005, + 0x00000565,0x61726170,0x0000006d,0x00040005,0x00000568,0x61726170,0x0000006d,0x00040005, + 0x0000056b,0x61726170,0x0000006d,0x00040005,0x0000056e,0x61726170,0x0000006d,0x00040005, + 0x00000570,0x61726170,0x0000006d,0x00040005,0x00000573,0x61726170,0x0000006d,0x00040005, + 0x00000578,0x61726170,0x0000006d,0x00030005,0x00000594,0x0054666f,0x00040005,0x000005a7, + 0x6f43666f,0x00726f6c,0x00040005,0x000005a8,0x61726170,0x0000006d,0x00040005,0x000005ab, + 0x61726170,0x0000006d,0x00040005,0x000005ae,0x61726170,0x0000006d,0x00040005,0x000005b1, + 0x5f464f66,0x006d6953,0x00050005,0x000005b7,0x6d614766,0x69535f65,0x0000006d,0x00040005, + 0x000005bd,0x61726170,0x0000006d,0x00040005,0x000005be,0x61726170,0x0000006d,0x00040005, + 0x000005c1,0x61726170,0x0000006d,0x00040005,0x000005c4,0x61726170,0x0000006d,0x00040005, + 0x000005c5,0x61726170,0x0000006d,0x00040005,0x000005c6,0x61726170,0x0000006d,0x00050005, + 0x000005c8,0x6d614766,0x42764d65,0x00736169,0x00040005,0x000005ca,0x61726170,0x0000006d, + 0x00040005,0x000005cb,0x61726170,0x0000006d,0x00040005,0x000005cf,0x61726170,0x0000006d, + 0x00040005,0x000005d1,0x61726170,0x0000006d,0x00040005,0x000005d2,0x61726170,0x0000006d, + 0x00070005,0x000005d4,0x61724666,0x6e49656d,0x46786564,0x6f746361,0x00000072,0x00040005, + 0x000005d9,0x61726170,0x0000006d,0x00040005,0x000005db,0x61726170,0x0000006d,0x00040005, + 0x000005dc,0x61726170,0x0000006d,0x00040005,0x000005df,0x61726170,0x0000006d,0x00040005, + 0x000005e2,0x61726170,0x0000006d,0x00040005,0x000005e4,0x61726170,0x0000006d,0x00040005, + 0x000005e6,0x61726170,0x0000006d,0x00040005,0x000005e8,0x6c6f4366,0x0000726f,0x00070005, + 0x000005e9,0x506e4966,0x746e6961,0x57676e69,0x68676965,0x00000074,0x00040005,0x000005ec, + 0x61726170,0x0000006d,0x00040005,0x000005ee,0x61726170,0x0000006d,0x00040005,0x000005ef, + 0x61726170,0x0000006d,0x00040005,0x000005fa,0x61726170,0x0000006d,0x00040005,0x00000600, + 0x61726170,0x0000006d,0x00040005,0x00000601,0x61726170,0x0000006d,0x00040005,0x00000602, + 0x61726170,0x0000006d,0x00040005,0x0000060e,0x61726170,0x0000006d,0x00040005,0x0000060f, + 0x61726170,0x0000006d,0x00080005,0x00000613,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00040005,0x00000617,0x61726170,0x0000006d,0x00030047,0x00000194, + 0x00000002,0x00050048,0x00000194,0x00000000,0x00000023,0x00000000,0x00050048,0x00000194, + 0x00000001,0x00000023,0x00000008,0x00050048,0x00000194,0x00000002,0x00000023,0x00000010, + 0x00050048,0x00000194,0x00000003,0x00000023,0x00000018,0x00050048,0x00000194,0x00000004, + 0x00000023,0x0000001c,0x00050048,0x00000194,0x00000005,0x00000023,0x00000020,0x00050048, + 0x00000194,0x00000006,0x00000023,0x00000028,0x00050048,0x00000194,0x00000007,0x00000023, + 0x0000002c,0x00050048,0x00000194,0x00000008,0x00000023,0x00000030,0x00050048,0x00000194, + 0x00000009,0x00000023,0x00000040,0x00050048,0x00000194,0x0000000a,0x00000023,0x00000044, + 0x00050048,0x00000194,0x0000000b,0x00000023,0x00000048,0x00050048,0x00000194,0x0000000c, + 0x00000023,0x00000050,0x00050048,0x00000194,0x0000000d,0x00000023,0x00000058,0x00050048, + 0x00000194,0x0000000e,0x00000023,0x0000005c,0x00050048,0x00000194,0x0000000f,0x00000023, + 0x00000060,0x00050048,0x00000194,0x00000010,0x00000023,0x00000068,0x00050048,0x00000194, + 0x00000011,0x00000023,0x0000006c,0x00050048,0x00000194,0x00000012,0x00000023,0x00000070, + 0x00050048,0x00000194,0x00000013,0x00000023,0x00000078,0x00050048,0x00000194,0x00000014, + 0x00000023,0x00000080,0x00050048,0x00000194,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x00000194,0x00000016,0x00000023,0x00000090,0x00050048,0x00000194,0x00000017,0x00000023, + 0x00000098,0x00050048,0x00000194,0x00000018,0x00000023,0x0000009c,0x00050048,0x00000194, + 0x00000019,0x00000023,0x000000a0,0x00050048,0x00000194,0x0000001a,0x00000023,0x000000a8, + 0x00040047,0x00000196,0x00000021,0x0000000a,0x00040047,0x00000196,0x00000022,0x00000000, + 0x00040047,0x000001dc,0x00000021,0x00000004,0x00040047,0x000001dc,0x00000022,0x00000000, + 0x00040047,0x000001e3,0x00000021,0x00000005,0x00040047,0x000001e3,0x00000022,0x00000000, + 0x00040047,0x000001ea,0x00000021,0x00000006,0x00040047,0x000001ea,0x00000022,0x00000000, + 0x00040047,0x000001ee,0x00000021,0x000003e8,0x00040047,0x000001ee,0x00000022,0x00000000, + 0x00040047,0x000001f9,0x00000021,0x00000000,0x00040047,0x000001f9,0x00000022,0x00000000, + 0x00040047,0x00000200,0x00000021,0x00000001,0x00040047,0x00000200,0x00000022,0x00000000, + 0x00040047,0x0000020b,0x00000021,0x00000002,0x00040047,0x0000020b,0x00000022,0x00000000, + 0x00040047,0x00000211,0x00000021,0x00000003,0x00040047,0x00000211,0x00000022,0x00000000, + 0x00040047,0x0000021b,0x00000021,0x00000007,0x00040047,0x0000021b,0x00000022,0x00000000, + 0x00040047,0x00000223,0x00000006,0x00000004,0x00030047,0x00000224,0x00000002,0x00040048, + 0x00000224,0x00000000,0x00000018,0x00050048,0x00000224,0x00000000,0x00000023,0x00000000, + 0x00030047,0x00000226,0x00000018,0x00040047,0x00000226,0x00000021,0x00000008,0x00040047, + 0x00000226,0x00000022,0x00000000,0x00040047,0x00000233,0x00000021,0x00000009,0x00040047, + 0x00000233,0x00000022,0x00000000,0x00040047,0x00000613,0x0000000b,0x0000001c,0x00040047, + 0x00000621,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040020, + 0x0000000d,0x00000007,0x00000008,0x00040017,0x0000000e,0x00000008,0x00000002,0x00040021, + 0x0000000f,0x0000000e,0x0000000d,0x00040017,0x00000013,0x00000008,0x00000003,0x00040021, + 0x00000014,0x00000013,0x0000000d,0x00060021,0x00000018,0x00000008,0x0000000d,0x0000000d, + 0x0000000d,0x00040020,0x0000001e,0x00000007,0x00000013,0x00060021,0x0000001f,0x00000013, + 0x0000001e,0x0000001e,0x0000000d,0x00040021,0x00000025,0x00000008,0x0000000d,0x00040020, + 0x00000029,0x00000007,0x0000000e,0x00040021,0x0000002a,0x0000000e,0x00000029,0x00040021, + 0x0000002e,0x00000013,0x0000001e,0x00040021,0x00000035,0x0000000e,0x00000007,0x00050021, + 0x00000039,0x00000008,0x0000000d,0x0000000d,0x00060021,0x00000046,0x00000013,0x0000001e, + 0x0000001e,0x0000001e,0x00040015,0x00000055,0x00000020,0x00000001,0x00040017,0x00000056, + 0x00000055,0x00000002,0x00030021,0x00000057,0x00000056,0x00030021,0x00000066,0x00000006, + 0x00030021,0x00000069,0x00000008,0x00040020,0x0000006e,0x00000007,0x00000056,0x00040021, + 0x0000006f,0x00000013,0x0000006e,0x00040017,0x00000076,0x00000008,0x00000004,0x00040021, + 0x00000077,0x00000076,0x00000029,0x00040017,0x0000007b,0x00000006,0x00000002,0x00040021, + 0x0000007c,0x0000007b,0x0000006e,0x00040020,0x00000083,0x00000007,0x00000055,0x00040020, + 0x00000084,0x00000007,0x0000007b,0x00050021,0x00000085,0x00000076,0x00000083,0x00000084, + 0x00040021,0x0000008a,0x00000006,0x00000083,0x00040020,0x00000090,0x00000007,0x00000076, + 0x00050021,0x00000091,0x00000002,0x0000006e,0x00000090,0x00060021,0x00000096,0x00000013, + 0x0000001e,0x0000000d,0x0000000d,0x0004002b,0x00000006,0x0000009f,0x00000004,0x0004001c, + 0x000000a0,0x00000056,0x0000009f,0x0004001c,0x000000a1,0x00000008,0x0000009f,0x0005001e, + 0x000000a2,0x000000a0,0x000000a1,0x00000056,0x00050021,0x000000a3,0x000000a2,0x00000029, + 0x0000006e,0x00020014,0x000000a8,0x00050021,0x000000a9,0x000000a8,0x0000006e,0x0000006e, + 0x00040021,0x000000ae,0x000000a8,0x00000029,0x00060021,0x000000b2,0x000000a8,0x0000006e, + 0x0000006e,0x0000006e,0x00050021,0x000000b8,0x00000008,0x00000013,0x00000013,0x000c001e, + 0x000000bd,0x0000000e,0x00000008,0x00000008,0x000000a8,0x000000a8,0x000000a8,0x000000a8, + 0x00000008,0x000000a8,0x000000a8,0x00030021,0x000000be,0x000000bd,0x00040021,0x000000c1, + 0x000000a8,0x00000007,0x00040020,0x000000c5,0x00000007,0x000000bd,0x00050021,0x000000c6, + 0x00000002,0x00000084,0x000000c5,0x00060021,0x000000cb,0x00000076,0x00000029,0x00000055, + 0x00000056,0x00050021,0x000000d1,0x00000002,0x00000029,0x000000c5,0x0005001e,0x000000da, + 0x00000013,0x00000013,0x00000008,0x00030021,0x000000db,0x000000da,0x00040020,0x000000de, + 0x00000007,0x000000a8,0x00070021,0x000000df,0x000000da,0x000000de,0x00000029,0x00000029, + 0x0000006e,0x00050021,0x000000e6,0x00000002,0x0000000d,0x0000000d,0x00060021,0x000000eb, + 0x00000002,0x00000084,0x0000001e,0x0000000d,0x00040021,0x000000f1,0x00000002,0x0000006e, + 0x0004002b,0x00000008,0x0000010f,0x00000000,0x0004002b,0x00000008,0x00000110,0x3f800000, + 0x0004002b,0x00000006,0x0000014a,0xff800000,0x0004002b,0x00000008,0x00000156,0x3c4fcd9e, + 0x0004002b,0x00000008,0x0000015b,0x3f560008,0x0004002b,0x00000008,0x00000161,0x4196d014, + 0x0004002b,0x00000008,0x00000164,0x41958000,0x0004002b,0x00000008,0x0000016b,0x40c8e061, + 0x0004002b,0x00000008,0x00000172,0x3d25aee6,0x0004002b,0x00000008,0x00000173,0x3d9e8391, + 0x0004002b,0x00000008,0x00000174,0x4019999a,0x0006002c,0x00000013,0x00000175,0x00000172, + 0x00000173,0x00000174,0x0004002b,0x00000008,0x00000177,0x3f72a76e,0x0004002b,0x00000008, + 0x00000178,0x3d558919,0x0005002c,0x0000000e,0x00000179,0x00000177,0x00000178,0x001d001e, + 0x00000194,0x00000056,0x00000056,0x0000000e,0x00000008,0x00000008,0x00000056,0x00000055, + 0x00000055,0x00000076,0x00000008,0x00000055,0x00000056,0x0000000e,0x00000055,0x00000006, + 0x00000056,0x00000055,0x00000055,0x00000056,0x00000056,0x00000013,0x00000006,0x0000000e, + 0x00000008,0x00000055,0x0000000e,0x0000000e,0x00040020,0x00000195,0x00000002,0x00000194, + 0x0004003b,0x00000195,0x00000196,0x00000002,0x0004002b,0x00000055,0x00000197,0x00000012, + 0x00040020,0x00000198,0x00000002,0x00000056,0x0004002b,0x00000055,0x0000019d,0x00000013, + 0x0004002b,0x00000055,0x000001a2,0x00000000,0x0004002b,0x00000055,0x000001a7,0x00000001, + 0x0004002b,0x00000055,0x000001ad,0x0000000c,0x00040020,0x000001ae,0x00000002,0x0000000e, + 0x0004002b,0x00000055,0x000001b3,0x0000000d,0x00040020,0x000001b4,0x00000002,0x00000055, + 0x0004002b,0x00000055,0x000001c3,0x0000000f,0x0004002b,0x00000055,0x000001c8,0x00000015, + 0x00040020,0x000001c9,0x00000002,0x00000006,0x0004002b,0x00000055,0x000001ce,0x00000016, + 0x0004002b,0x00000006,0x000001cf,0x00000000,0x00040020,0x000001d0,0x00000002,0x00000008, + 0x0004002b,0x00000006,0x000001d5,0x00000001,0x00090019,0x000001da,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001db,0x00000000, + 0x000001da,0x0004003b,0x000001db,0x000001dc,0x00000000,0x0004003b,0x000001db,0x000001e3, + 0x00000000,0x0004003b,0x000001db,0x000001ea,0x00000000,0x0002001a,0x000001ec,0x00040020, + 0x000001ed,0x00000000,0x000001ec,0x0004003b,0x000001ed,0x000001ee,0x00000000,0x0003001b, + 0x000001f0,0x000001da,0x00090019,0x000001f7,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x000001f8,0x00000000,0x000001f7,0x0004003b, + 0x000001f8,0x000001f9,0x00000000,0x00040017,0x000001fc,0x00000006,0x00000004,0x0004003b, + 0x000001f8,0x00000200,0x00000000,0x0004003b,0x000001f8,0x0000020b,0x00000000,0x0004003b, + 0x000001f8,0x00000211,0x00000000,0x0004003b,0x000001db,0x0000021b,0x00000000,0x0003001d, + 0x00000223,0x00000006,0x0003001e,0x00000224,0x00000223,0x00040020,0x00000225,0x0000000c, + 0x00000224,0x0004003b,0x00000225,0x00000226,0x0000000c,0x00040020,0x00000228,0x0000000c, + 0x00000006,0x00090019,0x00000231,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000000,0x00040020,0x00000232,0x00000000,0x00000231,0x0004003b,0x00000232, + 0x00000233,0x00000000,0x0004002b,0x00000008,0x0000023a,0x42a00000,0x0004002b,0x00000008, + 0x00000256,0x461c4000,0x0004002b,0x00000008,0x0000026c,0x3f000000,0x0005002c,0x0000000e, + 0x0000026d,0x0000026c,0x0000026c,0x00040020,0x0000026f,0x00000007,0x000000a2,0x0004002b, + 0x00000055,0x00000271,0x00000002,0x0005002c,0x00000056,0x0000027a,0x000001a2,0x000001a2, + 0x0005002c,0x00000056,0x0000027c,0x000001a7,0x000001a2,0x0005002c,0x00000056,0x0000027e, + 0x000001a2,0x000001a7,0x0004002b,0x00000055,0x00000280,0x00000003,0x0005002c,0x00000056, + 0x00000281,0x000001a7,0x000001a7,0x00040017,0x000002a6,0x000000a8,0x00000002,0x0005002c, + 0x0000000e,0x000002fe,0x0000010f,0x0000010f,0x0003002a,0x000000a8,0x00000302,0x0004002b, + 0x00000055,0x00000304,0x00000004,0x0004002b,0x00000055,0x00000306,0x00000005,0x0004002b, + 0x00000055,0x00000308,0x00000006,0x0004002b,0x00000055,0x0000030a,0x00000007,0x0004002b, + 0x00000055,0x0000030c,0x00000008,0x0004002b,0x00000055,0x0000030e,0x00000009,0x0004002b, + 0x00000006,0x00000314,0x80000000,0x0004002b,0x00000006,0x0000031b,0x00000015,0x0004002b, + 0x00000006,0x0000031d,0x000003ff,0x0004002b,0x00000008,0x00000320,0x447fc000,0x0004002b, + 0x00000006,0x00000325,0x00000010,0x0004002b,0x00000006,0x00000327,0x0000001f,0x0004002b, + 0x00000008,0x0000032a,0x41f80000,0x0007002c,0x00000076,0x0000035b,0x0000010f,0x0000010f, + 0x0000010f,0x0000010f,0x0004002b,0x00000006,0x0000035c,0x00000002,0x0004002b,0x00000055, + 0x000003bd,0x0000000b,0x0004002b,0x00000006,0x000003c1,0x00000003,0x00030029,0x000000a8, + 0x000003d9,0x00040020,0x0000046b,0x00000007,0x000000da,0x0006002c,0x00000013,0x0000046d, + 0x0000010f,0x0000010f,0x0000010f,0x0005002c,0x0000000e,0x00000508,0x00000110,0x00000110, + 0x0004002b,0x00000008,0x00000550,0x3a83126f,0x0004002b,0x00000006,0x000005d6,0x0000000a, + 0x00040017,0x00000611,0x00000006,0x00000003,0x00040020,0x00000612,0x00000001,0x00000611, + 0x0004003b,0x00000612,0x00000613,0x00000001,0x0004002b,0x00000008,0x00000619,0x387fda40, + 0x0004002b,0x00000008,0x0000061a,0x477fe000,0x0004002b,0x00000008,0x0000061b,0x37801002, + 0x0004002b,0x00000008,0x0000061c,0x7f7fffff,0x0004002b,0x00000008,0x0000061d,0x00800000, + 0x0004002b,0x00000006,0x0000061e,0x00000020,0x0004002b,0x00000006,0x0000061f,0x00000005, + 0x0004002b,0x00000006,0x00000620,0x00000008,0x0006002c,0x00000611,0x00000621,0x00000620, + 0x00000620,0x000001d5,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x0000006e,0x00000617,0x00000007,0x0004003d,0x00000611,0x00000614, + 0x00000613,0x0007004f,0x0000007b,0x00000615,0x00000614,0x00000614,0x00000000,0x00000001, + 0x0004007c,0x00000056,0x00000616,0x00000615,0x0003003e,0x00000617,0x00000616,0x00050039, + 0x00000002,0x00000618,0x000000f3,0x00000617,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003d,0x00000006,0x000000f5,0x0000000a,0x0004007c,0x00000008,0x000000f6,0x000000f5, + 0x000200fe,0x000000f6,0x00010038,0x00050036,0x0000000e,0x00000011,0x00000000,0x0000000f, + 0x00030037,0x0000000d,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000008,0x000000f9, + 0x00000010,0x00050050,0x0000000e,0x000000fa,0x000000f9,0x000000f9,0x000200fe,0x000000fa, + 0x00010038,0x00050036,0x00000013,0x00000016,0x00000000,0x00000014,0x00030037,0x0000000d, + 0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000008,0x000000fd,0x00000015,0x00060050, + 0x00000013,0x000000fe,0x000000fd,0x000000fd,0x000000fd,0x000200fe,0x000000fe,0x00010038, + 0x00050036,0x00000008,0x0000001c,0x00000000,0x00000018,0x00030037,0x0000000d,0x00000019, + 0x00030037,0x0000000d,0x0000001a,0x00030037,0x0000000d,0x0000001b,0x000200f8,0x0000001d, + 0x0004003d,0x00000008,0x00000101,0x00000019,0x0004003d,0x00000008,0x00000102,0x0000001a, + 0x0004003d,0x00000008,0x00000103,0x0000001b,0x0008000c,0x00000008,0x00000104,0x00000001, + 0x0000002e,0x00000101,0x00000102,0x00000103,0x000200fe,0x00000104,0x00010038,0x00050036, + 0x00000013,0x00000023,0x00000000,0x0000001f,0x00030037,0x0000001e,0x00000020,0x00030037, + 0x0000001e,0x00000021,0x00030037,0x0000000d,0x00000022,0x000200f8,0x00000024,0x0004003d, + 0x00000013,0x00000107,0x00000020,0x0004003d,0x00000013,0x00000108,0x00000021,0x0004003d, + 0x00000008,0x00000109,0x00000022,0x00060050,0x00000013,0x0000010a,0x00000109,0x00000109, + 0x00000109,0x0008000c,0x00000013,0x0000010b,0x00000001,0x0000002e,0x00000107,0x00000108, + 0x0000010a,0x000200fe,0x0000010b,0x00010038,0x00050036,0x00000008,0x00000027,0x00000000, + 0x00000025,0x00030037,0x0000000d,0x00000026,0x000200f8,0x00000028,0x0004003d,0x00000008, + 0x0000010e,0x00000026,0x0008000c,0x00000008,0x00000111,0x00000001,0x0000002b,0x0000010e, + 0x0000010f,0x00000110,0x000200fe,0x00000111,0x00010038,0x00050036,0x0000000e,0x0000002c, + 0x00000000,0x0000002a,0x00030037,0x00000029,0x0000002b,0x000200f8,0x0000002d,0x0004003b, + 0x0000000d,0x00000115,0x00000007,0x0004003b,0x0000000d,0x00000117,0x00000007,0x0004003d, + 0x0000000e,0x00000114,0x0000002b,0x0003003e,0x00000115,0x0000010f,0x00050039,0x0000000e, + 0x00000116,0x00000011,0x00000115,0x0003003e,0x00000117,0x00000110,0x00050039,0x0000000e, + 0x00000118,0x00000011,0x00000117,0x0008000c,0x0000000e,0x00000119,0x00000001,0x0000002b, + 0x00000114,0x00000116,0x00000118,0x000200fe,0x00000119,0x00010038,0x00050036,0x00000013, + 0x00000030,0x00000000,0x0000002e,0x00030037,0x0000001e,0x0000002f,0x000200f8,0x00000031, + 0x0004003b,0x0000000d,0x0000011d,0x00000007,0x0004003b,0x0000000d,0x0000011f,0x00000007, + 0x0004003d,0x00000013,0x0000011c,0x0000002f,0x0003003e,0x0000011d,0x0000010f,0x00050039, + 0x00000013,0x0000011e,0x00000016,0x0000011d,0x0003003e,0x0000011f,0x00000110,0x00050039, + 0x00000013,0x00000120,0x00000016,0x0000011f,0x0008000c,0x00000013,0x00000121,0x00000001, + 0x0000002b,0x0000011c,0x0000011e,0x00000120,0x000200fe,0x00000121,0x00010038,0x00050036, + 0x0000000e,0x00000033,0x00000000,0x0000002a,0x00030037,0x00000029,0x00000032,0x000200f8, + 0x00000034,0x0004003d,0x0000000e,0x00000124,0x00000032,0x0006000c,0x0000000e,0x00000125, + 0x00000001,0x0000000a,0x00000124,0x000200fe,0x00000125,0x00010038,0x00050036,0x0000000e, + 0x00000037,0x00000000,0x00000035,0x00030037,0x00000007,0x00000036,0x000200f8,0x00000038, + 0x0004003d,0x00000006,0x00000128,0x00000036,0x0006000c,0x0000000e,0x00000129,0x00000001, + 0x0000003e,0x00000128,0x000200fe,0x00000129,0x00010038,0x00050036,0x00000008,0x0000003c, + 0x00000000,0x00000039,0x00030037,0x0000000d,0x0000003a,0x00030037,0x0000000d,0x0000003b, + 0x000200f8,0x0000003d,0x0004003d,0x00000008,0x0000012c,0x0000003a,0x0004003d,0x00000008, + 0x0000012d,0x0000003b,0x0007000c,0x00000008,0x0000012e,0x00000001,0x00000025,0x0000012c, + 0x0000012d,0x000200fe,0x0000012e,0x00010038,0x00050036,0x00000008,0x00000040,0x00000000, + 0x00000039,0x00030037,0x0000000d,0x0000003e,0x00030037,0x0000000d,0x0000003f,0x000200f8, + 0x00000041,0x0004003d,0x00000008,0x00000131,0x0000003e,0x0004003d,0x00000008,0x00000132, + 0x0000003f,0x0007000c,0x00000008,0x00000133,0x00000001,0x00000028,0x00000131,0x00000132, + 0x000200fe,0x00000133,0x00010038,0x00050036,0x00000008,0x00000044,0x00000000,0x00000039, + 0x00030037,0x0000000d,0x00000042,0x00030037,0x0000000d,0x00000043,0x000200f8,0x00000045, + 0x0004003d,0x00000008,0x00000136,0x00000042,0x0004003d,0x00000008,0x00000137,0x00000043, + 0x0007000c,0x00000008,0x00000138,0x00000001,0x0000001a,0x00000136,0x00000137,0x000200fe, + 0x00000138,0x00010038,0x00050036,0x00000013,0x0000004a,0x00000000,0x00000046,0x00030037, + 0x0000001e,0x00000047,0x00030037,0x0000001e,0x00000048,0x00030037,0x0000001e,0x00000049, + 0x000200f8,0x0000004b,0x0004003b,0x0000001e,0x0000013b,0x00000007,0x0004003d,0x00000013, + 0x0000013c,0x00000047,0x0004007f,0x00000013,0x0000013d,0x0000013c,0x0004003d,0x00000013, + 0x0000013e,0x00000049,0x00050085,0x00000013,0x0000013f,0x0000013d,0x0000013e,0x0004003d, + 0x00000013,0x00000140,0x00000049,0x00050081,0x00000013,0x00000141,0x0000013f,0x00000140, + 0x0003003e,0x0000013b,0x00000141,0x0004003d,0x00000013,0x00000142,0x00000047,0x0004003d, + 0x00000013,0x00000143,0x00000048,0x00050085,0x00000013,0x00000144,0x00000142,0x00000143, + 0x0004003d,0x00000013,0x00000145,0x0000013b,0x00050081,0x00000013,0x00000146,0x00000144, + 0x00000145,0x000200fe,0x00000146,0x00010038,0x00050036,0x00000013,0x0000004d,0x00000000, + 0x0000002e,0x00030037,0x0000001e,0x0000004c,0x000200f8,0x0000004e,0x0004003b,0x00000007, + 0x0000014b,0x00000007,0x0004003b,0x0000000d,0x0000014d,0x00000007,0x0004003b,0x0000001e, + 0x00000150,0x00000007,0x0004003d,0x00000013,0x00000149,0x0000004c,0x0003003e,0x0000014b, + 0x0000014a,0x00050039,0x00000008,0x0000014c,0x0000000b,0x0000014b,0x0003003e,0x0000014d, + 0x0000014c,0x00050039,0x00000013,0x0000014e,0x00000016,0x0000014d,0x00050085,0x00000013, + 0x0000014f,0x00000149,0x0000014e,0x0003003e,0x00000150,0x0000014f,0x00050039,0x00000013, + 0x00000151,0x00000030,0x00000150,0x000200fe,0x00000151,0x00010038,0x00050036,0x00000013, + 0x00000050,0x00000000,0x0000002e,0x00030037,0x0000001e,0x0000004f,0x000200f8,0x00000051, + 0x0004003b,0x0000001e,0x00000154,0x00000007,0x0004003b,0x0000000d,0x00000157,0x00000007, + 0x0004003b,0x0000000d,0x0000015c,0x00000007,0x0004003b,0x0000001e,0x0000015f,0x00000007, + 0x0004003b,0x0000000d,0x00000162,0x00000007,0x0004003b,0x0000000d,0x00000165,0x00000007, + 0x0004003b,0x0000000d,0x0000016c,0x00000007,0x0004003d,0x00000013,0x00000155,0x0000004f, + 0x0003003e,0x00000157,0x00000156,0x00050039,0x00000013,0x00000158,0x00000016,0x00000157, + 0x0007000c,0x00000013,0x00000159,0x00000001,0x0000001a,0x00000155,0x00000158,0x0003003e, + 0x00000154,0x00000159,0x0004003d,0x00000013,0x0000015a,0x00000154,0x0003003e,0x0000015c, + 0x0000015b,0x00050039,0x00000013,0x0000015d,0x00000016,0x0000015c,0x00050083,0x00000013, + 0x0000015e,0x0000015a,0x0000015d,0x0003003e,0x0000015f,0x0000015e,0x00050039,0x00000013, + 0x00000160,0x00000030,0x0000015f,0x0003003e,0x00000162,0x00000161,0x00050039,0x00000013, + 0x00000163,0x00000016,0x00000162,0x0003003e,0x00000165,0x00000164,0x00050039,0x00000013, + 0x00000166,0x00000016,0x00000165,0x0004003d,0x00000013,0x00000167,0x00000154,0x00050085, + 0x00000013,0x00000168,0x00000166,0x00000167,0x00050083,0x00000013,0x00000169,0x00000163, + 0x00000168,0x00050088,0x00000013,0x0000016a,0x00000160,0x00000169,0x0003003e,0x0000016c, + 0x0000016b,0x00050039,0x00000013,0x0000016d,0x00000016,0x0000016c,0x0007000c,0x00000013, + 0x0000016e,0x00000001,0x0000001a,0x0000016a,0x0000016d,0x000200fe,0x0000016e,0x00010038, + 0x00050036,0x00000013,0x00000053,0x00000000,0x0000002e,0x00030037,0x0000001e,0x00000052, + 0x000200f8,0x00000054,0x0004003b,0x0000001e,0x00000171,0x00000007,0x0004003b,0x00000029, + 0x00000176,0x00000007,0x0004003b,0x0000001e,0x0000017e,0x00000007,0x0004003b,0x0000001e, + 0x0000018e,0x00000007,0x0004003b,0x0000001e,0x0000018f,0x00000007,0x0004003b,0x0000001e, + 0x00000190,0x00000007,0x0003003e,0x00000171,0x00000175,0x0003003e,0x00000176,0x00000179, + 0x0004003d,0x00000013,0x0000017a,0x00000052,0x0004003d,0x00000013,0x0000017b,0x00000171, + 0x0008004f,0x00000013,0x0000017c,0x0000017b,0x0000017b,0x00000000,0x00000000,0x00000000, + 0x00050083,0x00000013,0x0000017d,0x0000017a,0x0000017c,0x0003003e,0x0000017e,0x0000017d, + 0x00050039,0x00000013,0x0000017f,0x0000004d,0x0000017e,0x0004003d,0x00000013,0x00000180, + 0x00000052,0x0004003d,0x00000013,0x00000181,0x00000171,0x0008004f,0x00000013,0x00000182, + 0x00000181,0x00000181,0x00000001,0x00000001,0x00000001,0x00050085,0x00000013,0x00000183, + 0x00000180,0x00000182,0x0004003d,0x00000013,0x00000184,0x00000052,0x0004003d,0x0000000e, + 0x00000185,0x00000176,0x0008004f,0x00000013,0x00000186,0x00000185,0x00000185,0x00000000, + 0x00000000,0x00000000,0x00050085,0x00000013,0x00000187,0x00000184,0x00000186,0x0004003d, + 0x0000000e,0x00000188,0x00000176,0x0008004f,0x00000013,0x00000189,0x00000188,0x00000188, + 0x00000001,0x00000001,0x00000001,0x00050081,0x00000013,0x0000018a,0x00000187,0x00000189, + 0x0004003d,0x00000013,0x0000018b,0x00000171,0x0008004f,0x00000013,0x0000018c,0x0000018b, + 0x0000018b,0x00000002,0x00000002,0x00000002,0x0007000c,0x00000013,0x0000018d,0x00000001, + 0x0000001a,0x0000018a,0x0000018c,0x0003003e,0x0000018e,0x0000017f,0x0003003e,0x0000018f, + 0x00000183,0x0003003e,0x00000190,0x0000018d,0x00070039,0x00000013,0x00000191,0x0000004a, + 0x0000018e,0x0000018f,0x00000190,0x000200fe,0x00000191,0x00010038,0x00050036,0x00000056, + 0x00000058,0x00000000,0x00000057,0x000200f8,0x00000059,0x00050041,0x00000198,0x00000199, + 0x00000196,0x00000197,0x0004003d,0x00000056,0x0000019a,0x00000199,0x000200fe,0x0000019a, + 0x00010038,0x00050036,0x00000056,0x0000005a,0x00000000,0x00000057,0x000200f8,0x0000005b, + 0x00050041,0x00000198,0x0000019e,0x00000196,0x0000019d,0x0004003d,0x00000056,0x0000019f, + 0x0000019e,0x000200fe,0x0000019f,0x00010038,0x00050036,0x00000056,0x0000005c,0x00000000, + 0x00000057,0x000200f8,0x0000005d,0x00050041,0x00000198,0x000001a3,0x00000196,0x000001a2, + 0x0004003d,0x00000056,0x000001a4,0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036, + 0x00000056,0x0000005e,0x00000000,0x00000057,0x000200f8,0x0000005f,0x00050041,0x00000198, + 0x000001a8,0x00000196,0x000001a7,0x0004003d,0x00000056,0x000001a9,0x000001a8,0x000200fe, + 0x000001a9,0x00010038,0x00050036,0x00000056,0x00000060,0x00000000,0x00000057,0x000200f8, + 0x00000061,0x0004003b,0x0000006e,0x000001ac,0x00000007,0x00050041,0x000001ae,0x000001af, + 0x00000196,0x000001ad,0x0004003d,0x0000000e,0x000001b0,0x000001af,0x00050050,0x0000000e, + 0x000001b1,0x00000110,0x00000110,0x00050088,0x0000000e,0x000001b2,0x000001b1,0x000001b0, + 0x00050041,0x000001b4,0x000001b5,0x00000196,0x000001b3,0x0004003d,0x00000055,0x000001b6, + 0x000001b5,0x00050050,0x00000056,0x000001b7,0x000001b6,0x000001b6,0x0004006f,0x0000000e, + 0x000001b8,0x000001b7,0x00050088,0x0000000e,0x000001b9,0x000001b2,0x000001b8,0x0004006e, + 0x00000056,0x000001ba,0x000001b9,0x0003003e,0x000001ac,0x000001ba,0x0004003d,0x00000056, + 0x000001bb,0x000001ac,0x000200fe,0x000001bb,0x00010038,0x00050036,0x00000056,0x00000062, + 0x00000000,0x00000057,0x000200f8,0x00000063,0x00040039,0x00000056,0x000001be,0x00000060, + 0x00050050,0x00000056,0x000001bf,0x000001a7,0x000001a7,0x00050084,0x00000056,0x000001c0, + 0x000001be,0x000001bf,0x000200fe,0x000001c0,0x00010038,0x00050036,0x00000056,0x00000064, + 0x00000000,0x00000057,0x000200f8,0x00000065,0x00050041,0x00000198,0x000001c4,0x00000196, + 0x000001c3,0x0004003d,0x00000056,0x000001c5,0x000001c4,0x000200fe,0x000001c5,0x00010038, + 0x00050036,0x00000006,0x00000067,0x00000000,0x00000066,0x000200f8,0x00000068,0x00050041, + 0x000001c9,0x000001ca,0x00000196,0x000001c8,0x0004003d,0x00000006,0x000001cb,0x000001ca, + 0x000200fe,0x000001cb,0x00010038,0x00050036,0x00000008,0x0000006a,0x00000000,0x00000069, + 0x000200f8,0x0000006b,0x00060041,0x000001d0,0x000001d1,0x00000196,0x000001ce,0x000001cf, + 0x0004003d,0x00000008,0x000001d2,0x000001d1,0x000200fe,0x000001d2,0x00010038,0x00050036, + 0x00000008,0x0000006c,0x00000000,0x00000069,0x000200f8,0x0000006d,0x00060041,0x000001d0, + 0x000001d6,0x00000196,0x000001ce,0x000001d5,0x0004003d,0x00000008,0x000001d7,0x000001d6, + 0x000200fe,0x000001d7,0x00010038,0x00050036,0x00000013,0x00000071,0x00000000,0x0000006f, + 0x00030037,0x0000006e,0x00000070,0x000200f8,0x00000072,0x0004003d,0x000001da,0x000001dd, + 0x000001dc,0x0004003d,0x00000056,0x000001de,0x00000070,0x0007005f,0x00000076,0x000001df, + 0x000001dd,0x000001de,0x00000002,0x000001a2,0x0008004f,0x00000013,0x000001e0,0x000001df, + 0x000001df,0x00000000,0x00000001,0x00000002,0x000200fe,0x000001e0,0x00010038,0x00050036, + 0x00000013,0x00000074,0x00000000,0x0000006f,0x00030037,0x0000006e,0x00000073,0x000200f8, + 0x00000075,0x0004003d,0x000001da,0x000001e4,0x000001e3,0x0004003d,0x00000056,0x000001e5, + 0x00000073,0x0007005f,0x00000076,0x000001e6,0x000001e4,0x000001e5,0x00000002,0x000001a2, + 0x0008004f,0x00000013,0x000001e7,0x000001e6,0x000001e6,0x00000000,0x00000001,0x00000002, + 0x000200fe,0x000001e7,0x00010038,0x00050036,0x00000076,0x00000079,0x00000000,0x00000077, + 0x00030037,0x00000029,0x00000078,0x000200f8,0x0000007a,0x0004003d,0x000001da,0x000001eb, + 0x000001ea,0x0004003d,0x000001ec,0x000001ef,0x000001ee,0x00050056,0x000001f0,0x000001f1, + 0x000001eb,0x000001ef,0x0004003d,0x0000000e,0x000001f2,0x00000078,0x00070058,0x00000076, + 0x000001f3,0x000001f1,0x000001f2,0x00000002,0x0000010f,0x000200fe,0x000001f3,0x00010038, + 0x00050036,0x0000007b,0x0000007e,0x00000000,0x0000007c,0x00030037,0x0000006e,0x0000007d, + 0x000200f8,0x0000007f,0x0004003b,0x00000007,0x000001f6,0x00000007,0x0004003b,0x00000007, + 0x000001ff,0x00000007,0x0004003d,0x000001f7,0x000001fa,0x000001f9,0x0004003d,0x00000056, + 0x000001fb,0x0000007d,0x0007005f,0x000001fc,0x000001fd,0x000001fa,0x000001fb,0x00000002, + 0x000001a2,0x00050051,0x00000006,0x000001fe,0x000001fd,0x00000000,0x0003003e,0x000001f6, + 0x000001fe,0x0004003d,0x000001f7,0x00000201,0x00000200,0x0004003d,0x00000056,0x00000202, + 0x0000007d,0x0007005f,0x000001fc,0x00000203,0x00000201,0x00000202,0x00000002,0x000001a2, + 0x00050051,0x00000006,0x00000204,0x00000203,0x00000000,0x0003003e,0x000001ff,0x00000204, + 0x0004003d,0x00000006,0x00000205,0x000001f6,0x0004003d,0x00000006,0x00000206,0x000001ff, + 0x00050050,0x0000007b,0x00000207,0x00000205,0x00000206,0x000200fe,0x00000207,0x00010038, + 0x00050036,0x0000007b,0x00000081,0x00000000,0x0000007c,0x00030037,0x0000006e,0x00000080, + 0x000200f8,0x00000082,0x0004003b,0x00000007,0x0000020a,0x00000007,0x0004003b,0x00000007, + 0x00000210,0x00000007,0x0004003d,0x000001f7,0x0000020c,0x0000020b,0x0004003d,0x00000056, + 0x0000020d,0x00000080,0x0007005f,0x000001fc,0x0000020e,0x0000020c,0x0000020d,0x00000002, + 0x000001a2,0x00050051,0x00000006,0x0000020f,0x0000020e,0x00000000,0x0003003e,0x0000020a, + 0x0000020f,0x0004003d,0x000001f7,0x00000212,0x00000211,0x0004003d,0x00000056,0x00000213, + 0x00000080,0x0007005f,0x000001fc,0x00000214,0x00000212,0x00000213,0x00000002,0x000001a2, + 0x00050051,0x00000006,0x00000215,0x00000214,0x00000000,0x0003003e,0x00000210,0x00000215, + 0x0004003d,0x00000006,0x00000216,0x0000020a,0x0004003d,0x00000006,0x00000217,0x00000210, + 0x00050050,0x0000007b,0x00000218,0x00000216,0x00000217,0x000200fe,0x00000218,0x00010038, + 0x00050036,0x00000076,0x00000088,0x00000000,0x00000085,0x00030037,0x00000083,0x00000086, + 0x00030037,0x00000084,0x00000087,0x000200f8,0x00000089,0x0004003d,0x000001da,0x0000021c, + 0x0000021b,0x0004003d,0x0000007b,0x0000021d,0x00000087,0x0004007c,0x00000056,0x0000021e, + 0x0000021d,0x0004003d,0x00000055,0x0000021f,0x00000086,0x0007005f,0x00000076,0x00000220, + 0x0000021c,0x0000021e,0x00000002,0x0000021f,0x000200fe,0x00000220,0x00010038,0x00050036, + 0x00000006,0x0000008c,0x00000000,0x0000008a,0x00030037,0x00000083,0x0000008b,0x000200f8, + 0x0000008d,0x0004003d,0x00000055,0x00000227,0x0000008b,0x00060041,0x00000228,0x00000229, + 0x00000226,0x000001a2,0x00000227,0x0004003d,0x00000006,0x0000022a,0x00000229,0x000200fe, + 0x0000022a,0x00010038,0x00050036,0x00000006,0x0000008e,0x00000000,0x00000066,0x000200f8, + 0x0000008f,0x0004003b,0x00000083,0x0000022d,0x00000007,0x0003003e,0x0000022d,0x000001a7, + 0x00050039,0x00000006,0x0000022e,0x0000008c,0x0000022d,0x000200fe,0x0000022e,0x00010038, + 0x00050036,0x00000002,0x00000094,0x00000000,0x00000091,0x00030037,0x0000006e,0x00000092, + 0x00030037,0x00000090,0x00000093,0x000200f8,0x00000095,0x0004003d,0x00000231,0x00000234, + 0x00000233,0x0004003d,0x00000056,0x00000235,0x00000092,0x0004003d,0x00000076,0x00000236, + 0x00000093,0x00040063,0x00000234,0x00000235,0x00000236,0x000100fd,0x00010038,0x00050036, + 0x00000013,0x0000009a,0x00000000,0x00000096,0x00030037,0x0000001e,0x00000097,0x00030037, + 0x0000000d,0x00000098,0x00030037,0x0000000d,0x00000099,0x000200f8,0x0000009b,0x0004003b, + 0x0000001e,0x00000237,0x00000007,0x0004003b,0x0000000d,0x0000023c,0x00000007,0x0004003b, + 0x0000000d,0x00000244,0x00000007,0x0004003d,0x00000013,0x00000238,0x00000097,0x0004003d, + 0x00000008,0x00000239,0x00000098,0x00050088,0x00000008,0x0000023b,0x00000239,0x0000023a, + 0x0003003e,0x0000023c,0x0000023b,0x00050039,0x00000013,0x0000023d,0x00000016,0x0000023c, + 0x00050083,0x00000013,0x0000023e,0x00000238,0x0000023d,0x0003003e,0x00000237,0x0000023e, + 0x0004003d,0x00000013,0x0000023f,0x00000237,0x0004003d,0x00000008,0x00000240,0x00000099, + 0x0004003d,0x00000008,0x00000241,0x00000098,0x00050083,0x00000008,0x00000242,0x00000240, + 0x00000241,0x00050088,0x00000008,0x00000243,0x00000242,0x0000023a,0x0003003e,0x00000244, + 0x00000243,0x00050039,0x00000013,0x00000245,0x00000016,0x00000244,0x00050088,0x00000013, + 0x00000246,0x0000023f,0x00000245,0x000200fe,0x00000246,0x00010038,0x00050036,0x00000013, + 0x0000009d,0x00000000,0x0000002e,0x00030037,0x0000001e,0x0000009c,0x000200f8,0x0000009e, + 0x0004003b,0x0000001e,0x0000024e,0x00000007,0x0004003b,0x0000001e,0x0000024f,0x00000007, + 0x0004003b,0x0000001e,0x00000253,0x00000007,0x0004003b,0x0000001e,0x0000025d,0x00000007, + 0x0004003b,0x0000000d,0x0000025f,0x00000007,0x0004003b,0x0000000d,0x00000260,0x00000007, + 0x00040039,0x00000006,0x00000249,0x00000067,0x000300f7,0x0000024d,0x00000000,0x000900fb, + 0x00000249,0x0000024d,0x00000000,0x0000024a,0x00000001,0x0000024b,0x00000002,0x0000024c, + 0x000200f8,0x0000024a,0x0004003d,0x00000013,0x00000250,0x0000009c,0x0003003e,0x0000024f, + 0x00000250,0x00050039,0x00000013,0x00000251,0x00000053,0x0000024f,0x0003003e,0x0000024e, + 0x00000251,0x000200f9,0x0000024d,0x000200f8,0x0000024b,0x0004003d,0x00000013,0x00000254, + 0x0000009c,0x0003003e,0x00000253,0x00000254,0x00050039,0x00000013,0x00000255,0x00000050, + 0x00000253,0x00040039,0x00000008,0x00000257,0x0000006c,0x00050088,0x00000008,0x00000258, + 0x00000256,0x00000257,0x0005008e,0x00000013,0x00000259,0x00000255,0x00000258,0x0003003e, + 0x0000024e,0x00000259,0x000200f9,0x0000024d,0x000200f8,0x0000024c,0x00040039,0x00000008, + 0x0000025b,0x0000006a,0x00040039,0x00000008,0x0000025c,0x0000006c,0x0004003d,0x00000013, + 0x0000025e,0x0000009c,0x0003003e,0x0000025d,0x0000025e,0x0003003e,0x0000025f,0x0000025b, + 0x0003003e,0x00000260,0x0000025c,0x00070039,0x00000013,0x00000261,0x0000009a,0x0000025d, + 0x0000025f,0x00000260,0x0003003e,0x0000024e,0x00000261,0x000200f9,0x0000024d,0x000200f8, + 0x0000024d,0x0004003d,0x00000013,0x00000264,0x0000024e,0x000200fe,0x00000264,0x00010038, + 0x00050036,0x000000a2,0x000000a6,0x00000000,0x000000a3,0x00030037,0x00000029,0x000000a4, + 0x00030037,0x0000006e,0x000000a5,0x000200f8,0x000000a7,0x0004003b,0x00000029,0x00000267, + 0x00000007,0x0004003b,0x0000026f,0x00000270,0x00000007,0x0004003b,0x00000029,0x00000276, + 0x00000007,0x0004003b,0x00000029,0x00000277,0x00000007,0x0004003d,0x0000000e,0x00000268, + 0x000000a4,0x0004003d,0x00000056,0x00000269,0x000000a5,0x0004006f,0x0000000e,0x0000026a, + 0x00000269,0x00050085,0x0000000e,0x0000026b,0x00000268,0x0000026a,0x00050083,0x0000000e, + 0x0000026e,0x0000026b,0x0000026d,0x0003003e,0x00000267,0x0000026e,0x0004003d,0x0000000e, + 0x00000272,0x00000267,0x0006000c,0x0000000e,0x00000273,0x00000001,0x00000008,0x00000272, + 0x0004006e,0x00000056,0x00000274,0x00000273,0x00050041,0x0000006e,0x00000275,0x00000270, + 0x00000271,0x0003003e,0x00000275,0x00000274,0x0004003d,0x0000000e,0x00000278,0x00000267, + 0x0003003e,0x00000277,0x00000278,0x00050039,0x0000000e,0x00000279,0x00000033,0x00000277, + 0x0003003e,0x00000276,0x00000279,0x00060041,0x0000006e,0x0000027b,0x00000270,0x000001a2, + 0x000001a2,0x0003003e,0x0000027b,0x0000027a,0x00060041,0x0000006e,0x0000027d,0x00000270, + 0x000001a2,0x000001a7,0x0003003e,0x0000027d,0x0000027c,0x00060041,0x0000006e,0x0000027f, + 0x00000270,0x000001a2,0x00000271,0x0003003e,0x0000027f,0x0000027e,0x00060041,0x0000006e, + 0x00000282,0x00000270,0x000001a2,0x00000280,0x0003003e,0x00000282,0x00000281,0x00050041, + 0x0000000d,0x00000283,0x00000276,0x000001cf,0x0004003d,0x00000008,0x00000284,0x00000283, + 0x00050083,0x00000008,0x00000285,0x00000110,0x00000284,0x00050041,0x0000000d,0x00000286, + 0x00000276,0x000001d5,0x0004003d,0x00000008,0x00000287,0x00000286,0x00050083,0x00000008, + 0x00000288,0x00000110,0x00000287,0x00050085,0x00000008,0x00000289,0x00000285,0x00000288, + 0x00060041,0x0000000d,0x0000028a,0x00000270,0x000001a7,0x000001a2,0x0003003e,0x0000028a, + 0x00000289,0x00050041,0x0000000d,0x0000028b,0x00000276,0x000001cf,0x0004003d,0x00000008, + 0x0000028c,0x0000028b,0x00050041,0x0000000d,0x0000028d,0x00000276,0x000001d5,0x0004003d, + 0x00000008,0x0000028e,0x0000028d,0x00050083,0x00000008,0x0000028f,0x00000110,0x0000028e, + 0x00050085,0x00000008,0x00000290,0x0000028c,0x0000028f,0x00060041,0x0000000d,0x00000291, + 0x00000270,0x000001a7,0x000001a7,0x0003003e,0x00000291,0x00000290,0x00050041,0x0000000d, + 0x00000292,0x00000276,0x000001cf,0x0004003d,0x00000008,0x00000293,0x00000292,0x00050083, + 0x00000008,0x00000294,0x00000110,0x00000293,0x00050041,0x0000000d,0x00000295,0x00000276, + 0x000001d5,0x0004003d,0x00000008,0x00000296,0x00000295,0x00050085,0x00000008,0x00000297, + 0x00000294,0x00000296,0x00060041,0x0000000d,0x00000298,0x00000270,0x000001a7,0x00000271, + 0x0003003e,0x00000298,0x00000297,0x00050041,0x0000000d,0x00000299,0x00000276,0x000001cf, + 0x0004003d,0x00000008,0x0000029a,0x00000299,0x00050041,0x0000000d,0x0000029b,0x00000276, + 0x000001d5,0x0004003d,0x00000008,0x0000029c,0x0000029b,0x00050085,0x00000008,0x0000029d, + 0x0000029a,0x0000029c,0x00060041,0x0000000d,0x0000029e,0x00000270,0x000001a7,0x00000280, + 0x0003003e,0x0000029e,0x0000029d,0x0004003d,0x000000a2,0x0000029f,0x00000270,0x000200fe, + 0x0000029f,0x00010038,0x00050036,0x000000a8,0x000000ac,0x00000000,0x000000a9,0x00030037, + 0x0000006e,0x000000aa,0x00030037,0x0000006e,0x000000ab,0x000200f8,0x000000ad,0x0004003d, + 0x00000056,0x000002a2,0x000000aa,0x0004007c,0x0000007b,0x000002a3,0x000002a2,0x0004003d, + 0x00000056,0x000002a4,0x000000ab,0x0004007c,0x0000007b,0x000002a5,0x000002a4,0x000500b0, + 0x000002a6,0x000002a7,0x000002a3,0x000002a5,0x0004009b,0x000000a8,0x000002a8,0x000002a7, + 0x000200fe,0x000002a8,0x00010038,0x00050036,0x000000a8,0x000000b0,0x00000000,0x000000ae, + 0x00030037,0x00000029,0x000000af,0x000200f8,0x000000b1,0x00050041,0x0000000d,0x000002ab, + 0x000000af,0x000001cf,0x0004003d,0x00000008,0x000002ac,0x000002ab,0x000500ba,0x000000a8, + 0x000002ad,0x000002ac,0x0000010f,0x000300f7,0x000002af,0x00000000,0x000400fa,0x000002ad, + 0x000002ae,0x000002af,0x000200f8,0x000002ae,0x00050041,0x0000000d,0x000002b0,0x000000af, + 0x000001cf,0x0004003d,0x00000008,0x000002b1,0x000002b0,0x000500b8,0x000000a8,0x000002b2, + 0x000002b1,0x00000110,0x000200f9,0x000002af,0x000200f8,0x000002af,0x000700f5,0x000000a8, + 0x000002b3,0x000002ad,0x000000b1,0x000002b2,0x000002ae,0x000300f7,0x000002b5,0x00000000, + 0x000400fa,0x000002b3,0x000002b4,0x000002b5,0x000200f8,0x000002b4,0x00050041,0x0000000d, + 0x000002b6,0x000000af,0x000001d5,0x0004003d,0x00000008,0x000002b7,0x000002b6,0x000500ba, + 0x000000a8,0x000002b8,0x000002b7,0x0000010f,0x000300f7,0x000002ba,0x00000000,0x000400fa, + 0x000002b8,0x000002b9,0x000002ba,0x000200f8,0x000002b9,0x00050041,0x0000000d,0x000002bb, + 0x000000af,0x000001d5,0x0004003d,0x00000008,0x000002bc,0x000002bb,0x000500b8,0x000000a8, + 0x000002bd,0x000002bc,0x00000110,0x000200f9,0x000002ba,0x000200f8,0x000002ba,0x000700f5, + 0x000000a8,0x000002be,0x000002b8,0x000002b4,0x000002bd,0x000002b9,0x000200f9,0x000002b5, + 0x000200f8,0x000002b5,0x000700f5,0x000000a8,0x000002bf,0x000002b3,0x000002af,0x000002be, + 0x000002ba,0x000200fe,0x000002bf,0x00010038,0x00050036,0x000000a8,0x000000b6,0x00000000, + 0x000000b2,0x00030037,0x0000006e,0x000000b3,0x00030037,0x0000006e,0x000000b4,0x00030037, + 0x0000006e,0x000000b5,0x000200f8,0x000000b7,0x00050041,0x00000083,0x000002c2,0x000000b3, + 0x000001cf,0x0004003d,0x00000055,0x000002c3,0x000002c2,0x00050041,0x00000083,0x000002c4, + 0x000000b4,0x000001cf,0x0004003d,0x00000055,0x000002c5,0x000002c4,0x000500af,0x000000a8, + 0x000002c6,0x000002c3,0x000002c5,0x000300f7,0x000002c8,0x00000000,0x000400fa,0x000002c6, + 0x000002c7,0x000002c8,0x000200f8,0x000002c7,0x00050041,0x00000083,0x000002c9,0x000000b3, + 0x000001cf,0x0004003d,0x00000055,0x000002ca,0x000002c9,0x00050041,0x00000083,0x000002cb, + 0x000000b5,0x000001cf,0x0004003d,0x00000055,0x000002cc,0x000002cb,0x00050041,0x00000083, + 0x000002cd,0x000000b4,0x000001cf,0x0004003d,0x00000055,0x000002ce,0x000002cd,0x00050080, + 0x00000055,0x000002cf,0x000002cc,0x000002ce,0x000500b1,0x000000a8,0x000002d0,0x000002ca, + 0x000002cf,0x000200f9,0x000002c8,0x000200f8,0x000002c8,0x000700f5,0x000000a8,0x000002d1, + 0x000002c6,0x000000b7,0x000002d0,0x000002c7,0x000300f7,0x000002d3,0x00000000,0x000400fa, + 0x000002d1,0x000002d2,0x000002d3,0x000200f8,0x000002d2,0x00050041,0x00000083,0x000002d4, + 0x000000b3,0x000001d5,0x0004003d,0x00000055,0x000002d5,0x000002d4,0x00050041,0x00000083, + 0x000002d6,0x000000b4,0x000001d5,0x0004003d,0x00000055,0x000002d7,0x000002d6,0x000500af, + 0x000000a8,0x000002d8,0x000002d5,0x000002d7,0x000200f9,0x000002d3,0x000200f8,0x000002d3, + 0x000700f5,0x000000a8,0x000002d9,0x000002d1,0x000002c8,0x000002d8,0x000002d2,0x000300f7, + 0x000002db,0x00000000,0x000400fa,0x000002d9,0x000002da,0x000002db,0x000200f8,0x000002da, + 0x00050041,0x00000083,0x000002dc,0x000000b3,0x000001d5,0x0004003d,0x00000055,0x000002dd, + 0x000002dc,0x00050041,0x00000083,0x000002de,0x000000b5,0x000001d5,0x0004003d,0x00000055, + 0x000002df,0x000002de,0x00050041,0x00000083,0x000002e0,0x000000b4,0x000001d5,0x0004003d, + 0x00000055,0x000002e1,0x000002e0,0x00050080,0x00000055,0x000002e2,0x000002df,0x000002e1, + 0x000500b1,0x000000a8,0x000002e3,0x000002dd,0x000002e2,0x000200f9,0x000002db,0x000200f8, + 0x000002db,0x000700f5,0x000000a8,0x000002e4,0x000002d9,0x000002d3,0x000002e3,0x000002da, + 0x000200fe,0x000002e4,0x00010038,0x00050036,0x00000008,0x000000bb,0x00000000,0x000000b8, + 0x00030037,0x00000013,0x000000b9,0x00030037,0x00000013,0x000000ba,0x000200f8,0x000000bc, + 0x0004003b,0x0000000d,0x000002e7,0x00000007,0x0004003b,0x0000000d,0x000002ea,0x00000007, + 0x0004003b,0x0000000d,0x000002eb,0x00000007,0x0004003b,0x0000000d,0x000002ef,0x00000007, + 0x0006000c,0x00000008,0x000002e8,0x00000001,0x00000042,0x000000b9,0x0006000c,0x00000008, + 0x000002e9,0x00000001,0x00000042,0x000000ba,0x0003003e,0x000002ea,0x000002e8,0x0003003e, + 0x000002eb,0x000002e9,0x00060039,0x00000008,0x000002ec,0x00000040,0x000002ea,0x000002eb, + 0x0003003e,0x000002e7,0x000002ec,0x0004003d,0x00000008,0x000002ed,0x000002e7,0x000500ba, + 0x000000a8,0x000002ee,0x000002ed,0x0000010f,0x000300f7,0x000002f1,0x00000000,0x000400fa, + 0x000002ee,0x000002f0,0x000002f9,0x000200f8,0x000002f0,0x0004003d,0x00000008,0x000002f2, + 0x000002e7,0x00060050,0x00000013,0x000002f3,0x000002f2,0x000002f2,0x000002f2,0x00050088, + 0x00000013,0x000002f4,0x000000b9,0x000002f3,0x0004003d,0x00000008,0x000002f5,0x000002e7, + 0x00060050,0x00000013,0x000002f6,0x000002f5,0x000002f5,0x000002f5,0x00050088,0x00000013, + 0x000002f7,0x000000ba,0x000002f6,0x00050094,0x00000008,0x000002f8,0x000002f4,0x000002f7, + 0x0003003e,0x000002ef,0x000002f8,0x000200f9,0x000002f1,0x000200f8,0x000002f9,0x0003003e, + 0x000002ef,0x00000110,0x000200f9,0x000002f1,0x000200f8,0x000002f1,0x0004003d,0x00000008, + 0x000002fa,0x000002ef,0x000200fe,0x000002fa,0x00010038,0x00050036,0x000000bd,0x000000bf, + 0x00000000,0x000000be,0x000200f8,0x000000c0,0x0004003b,0x000000c5,0x000002fd,0x00000007, + 0x00050041,0x00000029,0x000002ff,0x000002fd,0x000001a2,0x0003003e,0x000002ff,0x000002fe, + 0x00050041,0x0000000d,0x00000300,0x000002fd,0x000001a7,0x0003003e,0x00000300,0x0000010f, + 0x00050041,0x0000000d,0x00000301,0x000002fd,0x00000271,0x0003003e,0x00000301,0x0000010f, + 0x00050041,0x000000de,0x00000303,0x000002fd,0x00000280,0x0003003e,0x00000303,0x00000302, + 0x00050041,0x000000de,0x00000305,0x000002fd,0x00000304,0x0003003e,0x00000305,0x00000302, + 0x00050041,0x000000de,0x00000307,0x000002fd,0x00000306,0x0003003e,0x00000307,0x00000302, + 0x00050041,0x000000de,0x00000309,0x000002fd,0x00000308,0x0003003e,0x00000309,0x00000302, + 0x00050041,0x0000000d,0x0000030b,0x000002fd,0x0000030a,0x0003003e,0x0000030b,0x0000010f, + 0x00050041,0x000000de,0x0000030d,0x000002fd,0x0000030c,0x0003003e,0x0000030d,0x00000302, + 0x00050041,0x000000de,0x0000030f,0x000002fd,0x0000030e,0x0003003e,0x0000030f,0x00000302, + 0x0004003d,0x000000bd,0x00000310,0x000002fd,0x000200fe,0x00000310,0x00010038,0x00050036, + 0x000000a8,0x000000c3,0x00000000,0x000000c1,0x00030037,0x00000007,0x000000c2,0x000200f8, + 0x000000c4,0x0004003d,0x00000006,0x00000313,0x000000c2,0x000500c7,0x00000006,0x00000315, + 0x00000313,0x00000314,0x000500ab,0x000000a8,0x00000316,0x00000315,0x000001cf,0x000200fe, + 0x00000316,0x00010038,0x00050036,0x00000002,0x000000c9,0x00000000,0x000000c6,0x00030037, + 0x00000084,0x000000c7,0x00030037,0x000000c5,0x000000c8,0x000200f8,0x000000ca,0x0004003b, + 0x00000007,0x0000032d,0x00000007,0x0004003b,0x00000007,0x00000347,0x00000007,0x0004003b, + 0x00000007,0x0000034d,0x00000007,0x00050041,0x00000007,0x00000319,0x000000c7,0x000001cf, + 0x0004003d,0x00000006,0x0000031a,0x00000319,0x000500c2,0x00000006,0x0000031c,0x0000031a, + 0x0000031b,0x000500c7,0x00000006,0x0000031e,0x0000031c,0x0000031d,0x00040070,0x00000008, + 0x0000031f,0x0000031e,0x00050088,0x00000008,0x00000321,0x0000031f,0x00000320,0x00050041, + 0x0000000d,0x00000322,0x000000c8,0x000001a7,0x0003003e,0x00000322,0x00000321,0x00050041, + 0x00000007,0x00000323,0x000000c7,0x000001cf,0x0004003d,0x00000006,0x00000324,0x00000323, + 0x000500c2,0x00000006,0x00000326,0x00000324,0x00000325,0x000500c7,0x00000006,0x00000328, + 0x00000326,0x00000327,0x00040070,0x00000008,0x00000329,0x00000328,0x00050088,0x00000008, + 0x0000032b,0x00000329,0x0000032a,0x00050041,0x0000000d,0x0000032c,0x000000c8,0x00000271, + 0x0003003e,0x0000032c,0x0000032b,0x00050041,0x00000007,0x0000032e,0x000000c7,0x000001cf, + 0x0004003d,0x00000006,0x0000032f,0x0000032e,0x0003003e,0x0000032d,0x0000032f,0x00050039, + 0x000000a8,0x00000330,0x000000c3,0x0000032d,0x00050041,0x000000de,0x00000331,0x000000c8, + 0x00000304,0x0003003e,0x00000331,0x00000330,0x00050041,0x0000000d,0x00000332,0x000000c8, + 0x000001a7,0x0004003d,0x00000008,0x00000333,0x00000332,0x000500ba,0x000000a8,0x00000334, + 0x00000333,0x0000010f,0x00050041,0x000000de,0x00000335,0x000000c8,0x00000280,0x0003003e, + 0x00000335,0x00000334,0x00050041,0x000000de,0x00000336,0x000000c8,0x00000280,0x0004003d, + 0x000000a8,0x00000337,0x00000336,0x000300f7,0x00000339,0x00000000,0x000400fa,0x00000337, + 0x00000338,0x00000339,0x000200f8,0x00000338,0x00050041,0x000000de,0x0000033a,0x000000c8, + 0x00000304,0x0004003d,0x000000a8,0x0000033b,0x0000033a,0x000400a8,0x000000a8,0x0000033c, + 0x0000033b,0x000200f9,0x00000339,0x000200f8,0x00000339,0x000700f5,0x000000a8,0x0000033d, + 0x00000337,0x000000ca,0x0000033c,0x00000338,0x00050041,0x000000de,0x0000033e,0x000000c8, + 0x00000306,0x0003003e,0x0000033e,0x0000033d,0x00050041,0x000000de,0x0000033f,0x000000c8, + 0x00000306,0x0004003d,0x000000a8,0x00000340,0x0000033f,0x000300f7,0x00000342,0x00000000, + 0x000400fa,0x00000340,0x00000341,0x00000342,0x000200f8,0x00000341,0x00050041,0x0000000d, + 0x00000343,0x000000c8,0x000001a7,0x0004003d,0x00000008,0x00000344,0x00000343,0x00050083, + 0x00000008,0x00000345,0x00000110,0x00000344,0x00050041,0x0000000d,0x00000346,0x000000c8, + 0x000001a7,0x0003003e,0x00000346,0x00000345,0x000200f9,0x00000342,0x000200f8,0x00000342, + 0x00050041,0x00000007,0x00000348,0x000000c7,0x000001cf,0x0004003d,0x00000006,0x00000349, + 0x00000348,0x0003003e,0x00000347,0x00000349,0x00050039,0x0000000e,0x0000034a,0x00000037, + 0x00000347,0x00050051,0x00000008,0x0000034b,0x0000034a,0x00000000,0x00060041,0x0000000d, + 0x0000034c,0x000000c8,0x000001a2,0x000001cf,0x0003003e,0x0000034c,0x0000034b,0x00050041, + 0x00000007,0x0000034e,0x000000c7,0x000001d5,0x0004003d,0x00000006,0x0000034f,0x0000034e, + 0x0003003e,0x0000034d,0x0000034f,0x00050039,0x0000000e,0x00000350,0x00000037,0x0000034d, + 0x00050051,0x00000008,0x00000351,0x00000350,0x00000000,0x00060041,0x0000000d,0x00000352, + 0x000000c8,0x000001a2,0x000001d5,0x0003003e,0x00000352,0x00000351,0x00050041,0x000000de, + 0x00000353,0x000000c8,0x00000308,0x0003003e,0x00000353,0x00000302,0x000100fd,0x00010038, + 0x00050036,0x00000076,0x000000cf,0x00000000,0x000000cb,0x00030037,0x00000029,0x000000cc, + 0x00030037,0x00000055,0x000000cd,0x00030037,0x00000056,0x000000ce,0x000200f8,0x000000d0, + 0x0004003b,0x0000026f,0x00000354,0x00000007,0x0004003b,0x00000029,0x00000355,0x00000007, + 0x0004003b,0x0000006e,0x00000357,0x00000007,0x0004003b,0x0000000d,0x00000359,0x00000007, + 0x0004003b,0x00000090,0x0000035a,0x00000007,0x0004003b,0x00000083,0x0000035e,0x00000007, + 0x0004003b,0x0000006e,0x00000366,0x00000007,0x0004003b,0x0000006e,0x0000036a,0x00000007, + 0x0004003b,0x0000006e,0x0000036f,0x00000007,0x0004003b,0x0000006e,0x00000371,0x00000007, + 0x0004003b,0x00000090,0x00000375,0x00000007,0x0004003b,0x00000083,0x00000378,0x00000007, + 0x0004003b,0x00000084,0x00000379,0x00000007,0x0004003b,0x0000000d,0x0000037b,0x00000007, + 0x0004003b,0x0000000d,0x0000037e,0x00000007,0x0004003b,0x0000000d,0x00000383,0x00000007, + 0x0004003d,0x0000000e,0x00000356,0x000000cc,0x0003003e,0x00000355,0x00000356,0x0003003e, + 0x00000357,0x000000ce,0x00060039,0x000000a2,0x00000358,0x000000a6,0x00000355,0x00000357, + 0x0003003e,0x00000354,0x00000358,0x0003003e,0x00000359,0x0000010f,0x0003003e,0x0000035a, + 0x0000035b,0x00050041,0x0000000d,0x0000035d,0x0000035a,0x0000035c,0x0003003e,0x0000035d, + 0x0000010f,0x0003003e,0x0000035e,0x000001a2,0x000200f9,0x0000035f,0x000200f8,0x0000035f, + 0x000400f6,0x00000361,0x00000362,0x00000000,0x000200f9,0x00000363,0x000200f8,0x00000363, + 0x0004003d,0x00000055,0x00000364,0x0000035e,0x000500b1,0x000000a8,0x00000365,0x00000364, + 0x00000304,0x000400fa,0x00000365,0x00000360,0x00000361,0x000200f8,0x00000360,0x0004003d, + 0x00000055,0x00000367,0x0000035e,0x00060041,0x0000006e,0x00000368,0x00000354,0x000001a2, + 0x00000367,0x0004003d,0x00000056,0x00000369,0x00000368,0x0003003e,0x00000366,0x00000369, + 0x00050041,0x0000006e,0x0000036b,0x00000354,0x00000271,0x0004003d,0x00000056,0x0000036c, + 0x0000036b,0x0004003d,0x00000056,0x0000036d,0x00000366,0x00050080,0x00000056,0x0000036e, + 0x0000036c,0x0000036d,0x0003003e,0x0000036a,0x0000036e,0x0004003d,0x00000056,0x00000370, + 0x0000036a,0x0003003e,0x0000036f,0x00000370,0x0003003e,0x00000371,0x000000ce,0x00060039, + 0x000000a8,0x00000372,0x000000ac,0x0000036f,0x00000371,0x000300f7,0x00000374,0x00000000, + 0x000400fa,0x00000372,0x00000373,0x00000374,0x000200f8,0x00000373,0x0004003d,0x00000056, + 0x00000376,0x0000036a,0x0004007c,0x0000007b,0x00000377,0x00000376,0x0003003e,0x00000378, + 0x000000cd,0x0003003e,0x00000379,0x00000377,0x00060039,0x00000076,0x0000037a,0x00000088, + 0x00000378,0x00000379,0x0003003e,0x00000375,0x0000037a,0x00050041,0x0000000d,0x0000037c, + 0x00000375,0x0000035c,0x0004003d,0x00000008,0x0000037d,0x0000037c,0x0003003e,0x0000037b, + 0x0000037d,0x00050041,0x0000000d,0x0000037f,0x00000375,0x0000035c,0x0004003d,0x00000008, + 0x00000380,0x0000037f,0x000500ba,0x000000a8,0x00000381,0x00000380,0x0000010f,0x000600a9, + 0x00000008,0x00000382,0x00000381,0x00000110,0x0000010f,0x0003003e,0x0000037e,0x00000382, + 0x0004003d,0x00000055,0x00000384,0x0000035e,0x00060041,0x0000000d,0x00000385,0x00000354, + 0x000001a7,0x00000384,0x0004003d,0x00000008,0x00000386,0x00000385,0x0004003d,0x00000008, + 0x00000387,0x0000037e,0x00050085,0x00000008,0x00000388,0x00000386,0x00000387,0x0004003d, + 0x00000008,0x00000389,0x0000037b,0x00050085,0x00000008,0x0000038a,0x00000388,0x00000389, + 0x0003003e,0x00000383,0x0000038a,0x0004003d,0x00000008,0x0000038b,0x00000383,0x0004003d, + 0x00000008,0x0000038c,0x00000359,0x00050081,0x00000008,0x0000038d,0x0000038c,0x0000038b, + 0x0003003e,0x00000359,0x0000038d,0x0004003d,0x00000076,0x0000038e,0x00000375,0x0004003d, + 0x00000008,0x0000038f,0x00000383,0x0005008e,0x00000076,0x00000390,0x0000038e,0x0000038f, + 0x0004003d,0x00000076,0x00000391,0x0000035a,0x00050081,0x00000076,0x00000392,0x00000391, + 0x00000390,0x0003003e,0x0000035a,0x00000392,0x000200f9,0x00000374,0x000200f8,0x00000374, + 0x000200f9,0x00000362,0x000200f8,0x00000362,0x0004003d,0x00000055,0x00000393,0x0000035e, + 0x00050080,0x00000055,0x00000394,0x00000393,0x000001a7,0x0003003e,0x0000035e,0x00000394, + 0x000200f9,0x0000035f,0x000200f8,0x00000361,0x0004003d,0x00000008,0x00000395,0x00000359, + 0x000500ba,0x000000a8,0x00000396,0x00000395,0x0000010f,0x0004003d,0x00000008,0x00000397, + 0x00000359,0x000600a9,0x00000008,0x00000398,0x00000396,0x00000397,0x00000110,0x0004003d, + 0x00000076,0x00000399,0x0000035a,0x00070050,0x00000076,0x0000039a,0x00000398,0x00000398, + 0x00000398,0x00000398,0x00050088,0x00000076,0x0000039b,0x00000399,0x0000039a,0x0003003e, + 0x0000035a,0x0000039b,0x0004003d,0x00000076,0x0000039c,0x0000035a,0x000200fe,0x0000039c, + 0x00010038,0x00050036,0x00000002,0x000000d4,0x00000000,0x000000d1,0x00030037,0x00000029, + 0x000000d2,0x00030037,0x000000c5,0x000000d3,0x000200f8,0x000000d5,0x0004003b,0x0000006e, + 0x0000039f,0x00000007,0x0004003b,0x00000084,0x000003a5,0x00000007,0x0004003b,0x0000006e, + 0x000003a6,0x00000007,0x0004003b,0x00000084,0x000003a9,0x00000007,0x0004003b,0x000000c5, + 0x000003ab,0x00000007,0x0004003b,0x0000006e,0x000003b3,0x00000007,0x0004003b,0x00000090, + 0x000003b5,0x00000007,0x0004003b,0x00000083,0x000003b6,0x00000007,0x0004003b,0x00000029, + 0x000003cb,0x00000007,0x0004003b,0x00000029,0x000003df,0x00000007,0x0004003b,0x00000029, + 0x000003e7,0x00000007,0x0004003d,0x0000000e,0x000003a0,0x000000d2,0x00040039,0x00000056, + 0x000003a1,0x0000005c,0x0004006f,0x0000000e,0x000003a2,0x000003a1,0x00050085,0x0000000e, + 0x000003a3,0x000003a0,0x000003a2,0x0004006e,0x00000056,0x000003a4,0x000003a3,0x0003003e, + 0x0000039f,0x000003a4,0x0004003d,0x00000056,0x000003a7,0x0000039f,0x0003003e,0x000003a6, + 0x000003a7,0x00050039,0x0000007b,0x000003a8,0x0000007e,0x000003a6,0x0003003e,0x000003a5, + 0x000003a8,0x0004003d,0x0000007b,0x000003aa,0x000003a5,0x0003003e,0x000003a9,0x000003aa, + 0x00060039,0x00000002,0x000003ac,0x000000c9,0x000003a9,0x000003ab,0x0004003d,0x000000bd, + 0x000003ad,0x000003ab,0x0003003e,0x000000d3,0x000003ad,0x00050041,0x000000de,0x000003ae, + 0x000000d3,0x00000280,0x0004003d,0x000000a8,0x000003af,0x000003ae,0x000400a8,0x000000a8, + 0x000003b0,0x000003af,0x000300f7,0x000003b2,0x00000000,0x000400fa,0x000003b0,0x000003b1, + 0x000003b2,0x000200f8,0x000003b1,0x00040039,0x00000056,0x000003b4,0x0000005c,0x0003003e, + 0x000003b3,0x000003b4,0x0003003e,0x000003b5,0x0000035b,0x0003003e,0x000003b6,0x000001a2, + 0x000200f9,0x000003b7,0x000200f8,0x000003b7,0x000400f6,0x000003b9,0x000003ba,0x00000000, + 0x000200f9,0x000003bb,0x000200f8,0x000003bb,0x0004003d,0x00000055,0x000003bc,0x000003b6, + 0x000500b1,0x000000a8,0x000003be,0x000003bc,0x000003bd,0x000300f7,0x000003c0,0x00000000, + 0x000400fa,0x000003be,0x000003bf,0x000003c0,0x000200f8,0x000003bf,0x00050041,0x0000000d, + 0x000003c2,0x000003b5,0x000003c1,0x0004003d,0x00000008,0x000003c3,0x000003c2,0x000500b4, + 0x000000a8,0x000003c4,0x000003c3,0x0000010f,0x000200f9,0x000003c0,0x000200f8,0x000003c0, + 0x000700f5,0x000000a8,0x000003c5,0x000003be,0x000003bb,0x000003c4,0x000003bf,0x000400fa, + 0x000003c5,0x000003b8,0x000003b9,0x000200f8,0x000003b8,0x0004003d,0x00000056,0x000003c6, + 0x000003b3,0x00050050,0x00000056,0x000003c7,0x00000271,0x00000271,0x00050087,0x00000056, + 0x000003c8,0x000003c6,0x000003c7,0x0003003e,0x000003b3,0x000003c8,0x0004003d,0x00000055, + 0x000003c9,0x000003b6,0x0004003d,0x00000056,0x000003ca,0x000003b3,0x0004003d,0x0000000e, + 0x000003cc,0x000000d2,0x0003003e,0x000003cb,0x000003cc,0x00070039,0x00000076,0x000003cd, + 0x000000cf,0x000003cb,0x000003c9,0x000003ca,0x0003003e,0x000003b5,0x000003cd,0x000200f9, + 0x000003ba,0x000200f8,0x000003ba,0x0004003d,0x00000055,0x000003ce,0x000003b6,0x00050080, + 0x00000055,0x000003cf,0x000003ce,0x000001a7,0x0003003e,0x000003b6,0x000003cf,0x000200f9, + 0x000003b7,0x000200f8,0x000003b9,0x0004003d,0x00000076,0x000003d0,0x000003b5,0x0007004f, + 0x0000000e,0x000003d1,0x000003d0,0x000003d0,0x00000000,0x00000001,0x00050041,0x00000029, + 0x000003d2,0x000000d3,0x000001a2,0x0003003e,0x000003d2,0x000003d1,0x00050041,0x0000000d, + 0x000003d3,0x000003b5,0x0000035c,0x0004003d,0x00000008,0x000003d4,0x000003d3,0x00050041, + 0x0000000d,0x000003d5,0x000000d3,0x000001a7,0x0003003e,0x000003d5,0x000003d4,0x00050041, + 0x0000000d,0x000003d6,0x000003b5,0x000003c1,0x0004003d,0x00000008,0x000003d7,0x000003d6, + 0x00050041,0x0000000d,0x000003d8,0x000000d3,0x00000271,0x0003003e,0x000003d8,0x000003d7, + 0x00050041,0x000000de,0x000003da,0x000000d3,0x00000308,0x0003003e,0x000003da,0x000003d9, + 0x000200f9,0x000003b2,0x000200f8,0x000003b2,0x0004003d,0x0000000e,0x000003db,0x000000d2, + 0x00050041,0x00000029,0x000003dc,0x000000d3,0x000001a2,0x0004003d,0x0000000e,0x000003dd, + 0x000003dc,0x00050083,0x0000000e,0x000003de,0x000003db,0x000003dd,0x0003003e,0x000003df, + 0x000003de,0x00050039,0x000000a8,0x000003e0,0x000000b0,0x000003df,0x000400a8,0x000000a8, + 0x000003e1,0x000003e0,0x00050041,0x000000de,0x000003e2,0x000000d3,0x0000030c,0x0003003e, + 0x000003e2,0x000003e1,0x0004003d,0x0000000e,0x000003e3,0x000000d2,0x00050041,0x00000029, + 0x000003e4,0x000000d3,0x000001a2,0x0004003d,0x0000000e,0x000003e5,0x000003e4,0x00050081, + 0x0000000e,0x000003e6,0x000003e3,0x000003e5,0x0003003e,0x000003e7,0x000003e6,0x00050039, + 0x000000a8,0x000003e8,0x000000b0,0x000003e7,0x000400a8,0x000000a8,0x000003e9,0x000003e8, + 0x00050041,0x000000de,0x000003ea,0x000000d3,0x0000030e,0x0003003e,0x000003ea,0x000003e9, + 0x00050041,0x00000029,0x000003eb,0x000000d3,0x000001a2,0x0004003d,0x0000000e,0x000003ec, + 0x000003eb,0x0006000c,0x00000008,0x000003ed,0x00000001,0x00000042,0x000003ec,0x00050041, + 0x0000000d,0x000003ee,0x000000d3,0x0000030a,0x0003003e,0x000003ee,0x000003ed,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000d8,0x00000000,0x000000d1,0x00030037,0x00000029, + 0x000000d6,0x00030037,0x000000c5,0x000000d7,0x000200f8,0x000000d9,0x0004003b,0x0000026f, + 0x000003ef,0x00000007,0x0004003b,0x00000029,0x000003f4,0x00000007,0x0004003b,0x0000006e, + 0x000003f6,0x00000007,0x0004003b,0x0000000d,0x000003f9,0x00000007,0x0004003b,0x00000083, + 0x000003fa,0x00000007,0x0004003b,0x0000006e,0x00000402,0x00000007,0x0004003b,0x0000006e, + 0x00000406,0x00000007,0x0004003b,0x0000006e,0x0000040f,0x00000007,0x0004003b,0x0000006e, + 0x00000411,0x00000007,0x0004003b,0x0000000d,0x00000415,0x00000007,0x0004003b,0x000000c5, + 0x00000419,0x00000007,0x0004003b,0x0000006e,0x0000041b,0x00000007,0x0004003b,0x0000006e, + 0x0000041c,0x00000007,0x0004003b,0x00000084,0x00000422,0x00000007,0x0004003b,0x000000c5, + 0x00000423,0x00000007,0x0004003b,0x00000029,0x0000045b,0x00000007,0x0004003b,0x00000029, + 0x00000463,0x00000007,0x00040039,0x00000056,0x000003f0,0x00000062,0x0004006f,0x0000000e, + 0x000003f1,0x000003f0,0x0005008e,0x0000000e,0x000003f2,0x000003f1,0x00000110,0x0004006e, + 0x00000056,0x000003f3,0x000003f2,0x0004003d,0x0000000e,0x000003f5,0x000000d6,0x0003003e, + 0x000003f4,0x000003f5,0x0003003e,0x000003f6,0x000003f3,0x00060039,0x000000a2,0x000003f7, + 0x000000a6,0x000003f4,0x000003f6,0x0003003e,0x000003ef,0x000003f7,0x00040039,0x000000bd, + 0x000003f8,0x000000bf,0x0003003e,0x000000d7,0x000003f8,0x0003003e,0x000003f9,0x0000010f, + 0x0003003e,0x000003fa,0x000001a2,0x000200f9,0x000003fb,0x000200f8,0x000003fb,0x000400f6, + 0x000003fd,0x000003fe,0x00000000,0x000200f9,0x000003ff,0x000200f8,0x000003ff,0x0004003d, + 0x00000055,0x00000400,0x000003fa,0x000500b1,0x000000a8,0x00000401,0x00000400,0x00000304, + 0x000400fa,0x00000401,0x000003fc,0x000003fd,0x000200f8,0x000003fc,0x0004003d,0x00000055, + 0x00000403,0x000003fa,0x00060041,0x0000006e,0x00000404,0x000003ef,0x000001a2,0x00000403, + 0x0004003d,0x00000056,0x00000405,0x00000404,0x0003003e,0x00000402,0x00000405,0x00050041, + 0x0000006e,0x00000407,0x000003ef,0x00000271,0x0004003d,0x00000056,0x00000408,0x00000407, + 0x0004003d,0x00000056,0x00000409,0x00000402,0x00050080,0x00000056,0x0000040a,0x00000408, + 0x00000409,0x0003003e,0x00000406,0x0000040a,0x00040039,0x00000056,0x0000040b,0x00000062, + 0x0004006f,0x0000000e,0x0000040c,0x0000040b,0x0005008e,0x0000000e,0x0000040d,0x0000040c, + 0x00000110,0x0004006e,0x00000056,0x0000040e,0x0000040d,0x0004003d,0x00000056,0x00000410, + 0x00000406,0x0003003e,0x0000040f,0x00000410,0x0003003e,0x00000411,0x0000040e,0x00060039, + 0x000000a8,0x00000412,0x000000ac,0x0000040f,0x00000411,0x000300f7,0x00000414,0x00000000, + 0x000400fa,0x00000412,0x00000413,0x00000414,0x000200f8,0x00000413,0x0004003d,0x00000055, + 0x00000416,0x000003fa,0x00060041,0x0000000d,0x00000417,0x000003ef,0x000001a7,0x00000416, + 0x0004003d,0x00000008,0x00000418,0x00000417,0x0003003e,0x00000415,0x00000418,0x00040039, + 0x000000bd,0x0000041a,0x000000bf,0x0003003e,0x00000419,0x0000041a,0x0004003d,0x00000056, + 0x0000041d,0x00000406,0x0003003e,0x0000041c,0x0000041d,0x00050039,0x0000007b,0x0000041e, + 0x00000081,0x0000041c,0x0004007c,0x00000056,0x0000041f,0x0000041e,0x0003003e,0x0000041b, + 0x0000041f,0x0004003d,0x00000056,0x00000420,0x0000041b,0x0004007c,0x0000007b,0x00000421, + 0x00000420,0x0003003e,0x00000422,0x00000421,0x00060039,0x00000002,0x00000424,0x000000c9, + 0x00000422,0x00000423,0x0004003d,0x000000bd,0x00000425,0x00000423,0x0003003e,0x00000419, + 0x00000425,0x00050041,0x00000029,0x00000426,0x00000419,0x000001a2,0x0004003d,0x0000000e, + 0x00000427,0x00000426,0x0004003d,0x00000008,0x00000428,0x00000415,0x0005008e,0x0000000e, + 0x00000429,0x00000427,0x00000428,0x00050041,0x00000029,0x0000042a,0x000000d7,0x000001a2, + 0x0004003d,0x0000000e,0x0000042b,0x0000042a,0x00050081,0x0000000e,0x0000042c,0x0000042b, + 0x00000429,0x00050041,0x00000029,0x0000042d,0x000000d7,0x000001a2,0x0003003e,0x0000042d, + 0x0000042c,0x00050041,0x0000000d,0x0000042e,0x00000419,0x000001a7,0x0004003d,0x00000008, + 0x0000042f,0x0000042e,0x0004003d,0x00000008,0x00000430,0x00000415,0x00050085,0x00000008, + 0x00000431,0x0000042f,0x00000430,0x00050041,0x0000000d,0x00000432,0x000000d7,0x000001a7, + 0x0004003d,0x00000008,0x00000433,0x00000432,0x00050081,0x00000008,0x00000434,0x00000433, + 0x00000431,0x00050041,0x0000000d,0x00000435,0x000000d7,0x000001a7,0x0003003e,0x00000435, + 0x00000434,0x00050041,0x0000000d,0x00000436,0x00000419,0x00000271,0x0004003d,0x00000008, + 0x00000437,0x00000436,0x0004003d,0x00000008,0x00000438,0x00000415,0x00050085,0x00000008, + 0x00000439,0x00000437,0x00000438,0x00050041,0x0000000d,0x0000043a,0x000000d7,0x00000271, + 0x0004003d,0x00000008,0x0000043b,0x0000043a,0x00050081,0x00000008,0x0000043c,0x0000043b, + 0x00000439,0x00050041,0x0000000d,0x0000043d,0x000000d7,0x00000271,0x0003003e,0x0000043d, + 0x0000043c,0x0004003d,0x00000008,0x0000043e,0x00000415,0x0004003d,0x00000008,0x0000043f, + 0x000003f9,0x00050081,0x00000008,0x00000440,0x0000043f,0x0000043e,0x0003003e,0x000003f9, + 0x00000440,0x000200f9,0x00000414,0x000200f8,0x00000414,0x000200f9,0x000003fe,0x000200f8, + 0x000003fe,0x0004003d,0x00000055,0x00000441,0x000003fa,0x00050080,0x00000055,0x00000442, + 0x00000441,0x000001a7,0x0003003e,0x000003fa,0x00000442,0x000200f9,0x000003fb,0x000200f8, + 0x000003fd,0x0004003d,0x00000008,0x00000443,0x000003f9,0x000500ba,0x000000a8,0x00000444, + 0x00000443,0x0000010f,0x000300f7,0x00000446,0x00000000,0x000400fa,0x00000444,0x00000445, + 0x00000446,0x000200f8,0x00000445,0x0004003d,0x00000008,0x00000447,0x000003f9,0x00050041, + 0x00000029,0x00000448,0x000000d7,0x000001a2,0x0004003d,0x0000000e,0x00000449,0x00000448, + 0x00050050,0x0000000e,0x0000044a,0x00000447,0x00000447,0x00050088,0x0000000e,0x0000044b, + 0x00000449,0x0000044a,0x00050041,0x00000029,0x0000044c,0x000000d7,0x000001a2,0x0003003e, + 0x0000044c,0x0000044b,0x0004003d,0x00000008,0x0000044d,0x000003f9,0x00050041,0x0000000d, + 0x0000044e,0x000000d7,0x000001a7,0x0004003d,0x00000008,0x0000044f,0x0000044e,0x00050088, + 0x00000008,0x00000450,0x0000044f,0x0000044d,0x00050041,0x0000000d,0x00000451,0x000000d7, + 0x000001a7,0x0003003e,0x00000451,0x00000450,0x0004003d,0x00000008,0x00000452,0x000003f9, + 0x00050041,0x0000000d,0x00000453,0x000000d7,0x00000271,0x0004003d,0x00000008,0x00000454, + 0x00000453,0x00050088,0x00000008,0x00000455,0x00000454,0x00000452,0x00050041,0x0000000d, + 0x00000456,0x000000d7,0x00000271,0x0003003e,0x00000456,0x00000455,0x000200f9,0x00000446, + 0x000200f8,0x00000446,0x0004003d,0x0000000e,0x00000457,0x000000d6,0x00050041,0x00000029, + 0x00000458,0x000000d7,0x000001a2,0x0004003d,0x0000000e,0x00000459,0x00000458,0x00050083, + 0x0000000e,0x0000045a,0x00000457,0x00000459,0x0003003e,0x0000045b,0x0000045a,0x00050039, + 0x000000a8,0x0000045c,0x000000b0,0x0000045b,0x000400a8,0x000000a8,0x0000045d,0x0000045c, + 0x00050041,0x000000de,0x0000045e,0x000000d7,0x0000030c,0x0003003e,0x0000045e,0x0000045d, + 0x0004003d,0x0000000e,0x0000045f,0x000000d6,0x00050041,0x00000029,0x00000460,0x000000d7, + 0x000001a2,0x0004003d,0x0000000e,0x00000461,0x00000460,0x00050081,0x0000000e,0x00000462, + 0x0000045f,0x00000461,0x0003003e,0x00000463,0x00000462,0x00050039,0x000000a8,0x00000464, + 0x000000b0,0x00000463,0x000400a8,0x000000a8,0x00000465,0x00000464,0x00050041,0x000000de, + 0x00000466,0x000000d7,0x0000030e,0x0003003e,0x00000466,0x00000465,0x00050041,0x00000029, + 0x00000467,0x000000d7,0x000001a2,0x0004003d,0x0000000e,0x00000468,0x00000467,0x0006000c, + 0x00000008,0x00000469,0x00000001,0x00000042,0x00000468,0x00050041,0x0000000d,0x0000046a, + 0x000000d7,0x0000030a,0x0003003e,0x0000046a,0x00000469,0x000100fd,0x00010038,0x00050036, + 0x000000da,0x000000dc,0x00000000,0x000000db,0x000200f8,0x000000dd,0x0004003b,0x0000046b, + 0x0000046c,0x00000007,0x00050041,0x0000001e,0x0000046e,0x0000046c,0x000001a2,0x0003003e, + 0x0000046e,0x0000046d,0x00050041,0x0000001e,0x0000046f,0x0000046c,0x000001a7,0x0003003e, + 0x0000046f,0x0000046d,0x00050041,0x0000000d,0x00000470,0x0000046c,0x00000271,0x0003003e, + 0x00000470,0x0000010f,0x0004003d,0x000000da,0x00000471,0x0000046c,0x000200fe,0x00000471, + 0x00010038,0x00050036,0x000000da,0x000000e4,0x00000000,0x000000df,0x00030037,0x000000de, + 0x000000e0,0x00030037,0x00000029,0x000000e1,0x00030037,0x00000029,0x000000e2,0x00030037, + 0x0000006e,0x000000e3,0x000200f8,0x000000e5,0x0004003b,0x0000046b,0x00000474,0x00000007, + 0x0004003b,0x00000029,0x00000476,0x00000007,0x0004003b,0x0000026f,0x0000047a,0x00000007, + 0x0004003b,0x00000029,0x0000047b,0x00000007,0x0004003b,0x0000006e,0x0000047d,0x00000007, + 0x0004003b,0x0000001e,0x00000480,0x00000007,0x0004003b,0x0000000d,0x00000481,0x00000007, + 0x0004003b,0x00000083,0x00000482,0x00000007,0x0004003b,0x0000006e,0x0000048a,0x00000007, + 0x0004003b,0x0000006e,0x0000048e,0x00000007,0x0004003b,0x0000006e,0x00000495,0x00000007, + 0x0004003b,0x0000006e,0x00000497,0x00000007,0x0004003b,0x0000006e,0x00000498,0x00000007, + 0x0004003b,0x0000000d,0x0000049c,0x00000007,0x0004003b,0x0000006e,0x000004a3,0x00000007, + 0x0004003b,0x0000006e,0x000004ab,0x00000007,0x0004003b,0x0000001e,0x000004b9,0x00000007, + 0x0004003b,0x0000001e,0x000004c4,0x00000007,0x00040039,0x000000da,0x00000475,0x000000dc, + 0x0003003e,0x00000474,0x00000475,0x0004003d,0x0000000e,0x00000477,0x000000e1,0x0004003d, + 0x0000000e,0x00000478,0x000000e2,0x00050081,0x0000000e,0x00000479,0x00000477,0x00000478, + 0x0003003e,0x00000476,0x00000479,0x0004003d,0x0000000e,0x0000047c,0x00000476,0x0003003e, + 0x0000047b,0x0000047c,0x0004003d,0x00000056,0x0000047e,0x000000e3,0x0003003e,0x0000047d, + 0x0000047e,0x00060039,0x000000a2,0x0000047f,0x000000a6,0x0000047b,0x0000047d,0x0003003e, + 0x0000047a,0x0000047f,0x0003003e,0x00000480,0x0000046d,0x0003003e,0x00000481,0x0000010f, + 0x0003003e,0x00000482,0x000001a2,0x000200f9,0x00000483,0x000200f8,0x00000483,0x000400f6, + 0x00000485,0x00000486,0x00000000,0x000200f9,0x00000487,0x000200f8,0x00000487,0x0004003d, + 0x00000055,0x00000488,0x00000482,0x000500b1,0x000000a8,0x00000489,0x00000488,0x00000304, + 0x000400fa,0x00000489,0x00000484,0x00000485,0x000200f8,0x00000484,0x0004003d,0x00000055, + 0x0000048b,0x00000482,0x00060041,0x0000006e,0x0000048c,0x0000047a,0x000001a2,0x0000048b, + 0x0004003d,0x00000056,0x0000048d,0x0000048c,0x0003003e,0x0000048a,0x0000048d,0x00050041, + 0x0000006e,0x0000048f,0x0000047a,0x00000271,0x0004003d,0x00000056,0x00000490,0x0000048f, + 0x0004003d,0x00000056,0x00000491,0x0000048a,0x00050080,0x00000056,0x00000492,0x00000490, + 0x00000491,0x0003003e,0x0000048e,0x00000492,0x00040039,0x00000056,0x00000493,0x00000058, + 0x00040039,0x00000056,0x00000494,0x0000005a,0x0004003d,0x00000056,0x00000496,0x0000048e, + 0x0003003e,0x00000495,0x00000496,0x0003003e,0x00000497,0x00000493,0x0003003e,0x00000498, + 0x00000494,0x00070039,0x000000a8,0x00000499,0x000000b6,0x00000495,0x00000497,0x00000498, + 0x000300f7,0x0000049b,0x00000000,0x000400fa,0x00000499,0x0000049a,0x0000049b,0x000200f8, + 0x0000049a,0x0004003d,0x00000055,0x0000049d,0x00000482,0x00060041,0x0000000d,0x0000049e, + 0x0000047a,0x000001a7,0x0000049d,0x0004003d,0x00000008,0x0000049f,0x0000049e,0x0003003e, + 0x0000049c,0x0000049f,0x0004003d,0x000000a8,0x000004a0,0x000000e0,0x000300f7,0x000004a2, + 0x00000000,0x000400fa,0x000004a0,0x000004a1,0x000004aa,0x000200f8,0x000004a1,0x0004003d, + 0x00000056,0x000004a4,0x0000048e,0x0003003e,0x000004a3,0x000004a4,0x00050039,0x00000013, + 0x000004a5,0x00000074,0x000004a3,0x0004003d,0x00000008,0x000004a6,0x0000049c,0x0005008e, + 0x00000013,0x000004a7,0x000004a5,0x000004a6,0x0004003d,0x00000013,0x000004a8,0x00000480, + 0x00050081,0x00000013,0x000004a9,0x000004a8,0x000004a7,0x0003003e,0x00000480,0x000004a9, + 0x000200f9,0x000004a2,0x000200f8,0x000004aa,0x0004003d,0x00000056,0x000004ac,0x0000048e, + 0x0003003e,0x000004ab,0x000004ac,0x00050039,0x00000013,0x000004ad,0x00000071,0x000004ab, + 0x0004003d,0x00000008,0x000004ae,0x0000049c,0x0005008e,0x00000013,0x000004af,0x000004ad, + 0x000004ae,0x0004003d,0x00000013,0x000004b0,0x00000480,0x00050081,0x00000013,0x000004b1, + 0x000004b0,0x000004af,0x0003003e,0x00000480,0x000004b1,0x000200f9,0x000004a2,0x000200f8, + 0x000004a2,0x0004003d,0x00000008,0x000004b2,0x0000049c,0x0004003d,0x00000008,0x000004b3, + 0x00000481,0x00050081,0x00000008,0x000004b4,0x000004b3,0x000004b2,0x0003003e,0x00000481, + 0x000004b4,0x000200f9,0x0000049b,0x000200f8,0x0000049b,0x000200f9,0x00000486,0x000200f8, + 0x00000486,0x0004003d,0x00000055,0x000004b5,0x00000482,0x00050080,0x00000055,0x000004b6, + 0x000004b5,0x000001a7,0x0003003e,0x00000482,0x000004b6,0x000200f9,0x00000483,0x000200f8, + 0x00000485,0x0004003d,0x00000008,0x000004b7,0x00000481,0x000500b7,0x000000a8,0x000004b8, + 0x000004b7,0x0000010f,0x000300f7,0x000004bb,0x00000000,0x000400fa,0x000004b8,0x000004ba, + 0x000004c0,0x000200f8,0x000004ba,0x0004003d,0x00000013,0x000004bc,0x00000480,0x0004003d, + 0x00000008,0x000004bd,0x00000481,0x00060050,0x00000013,0x000004be,0x000004bd,0x000004bd, + 0x000004bd,0x00050088,0x00000013,0x000004bf,0x000004bc,0x000004be,0x0003003e,0x000004b9, + 0x000004bf,0x000200f9,0x000004bb,0x000200f8,0x000004c0,0x0003003e,0x000004b9,0x0000046d, + 0x000200f9,0x000004bb,0x000200f8,0x000004bb,0x0004003d,0x00000013,0x000004c1,0x000004b9, + 0x0003003e,0x00000480,0x000004c1,0x0004003d,0x00000013,0x000004c2,0x00000480,0x00050041, + 0x0000001e,0x000004c3,0x00000474,0x000001a2,0x0003003e,0x000004c3,0x000004c2,0x0004003d, + 0x00000013,0x000004c5,0x00000480,0x0003003e,0x000004c4,0x000004c5,0x00050039,0x00000013, + 0x000004c6,0x0000009d,0x000004c4,0x00050041,0x0000001e,0x000004c7,0x00000474,0x000001a7, + 0x0003003e,0x000004c7,0x000004c6,0x0004003d,0x00000008,0x000004c8,0x00000481,0x00050041, + 0x0000000d,0x000004c9,0x00000474,0x00000271,0x0003003e,0x000004c9,0x000004c8,0x0004003d, + 0x000000da,0x000004ca,0x00000474,0x000200fe,0x000004ca,0x00010038,0x00050036,0x00000002, + 0x000000e9,0x00000000,0x000000e6,0x00030037,0x0000000d,0x000000e7,0x00030037,0x0000000d, + 0x000000e8,0x000200f8,0x000000ea,0x0004003b,0x0000000d,0x000004cd,0x00000007,0x0004003b, + 0x0000000d,0x000004cf,0x00000007,0x0004003b,0x0000000d,0x000004d2,0x00000007,0x0004003d, + 0x00000008,0x000004ce,0x000000e7,0x0003003e,0x000004cd,0x000004ce,0x0004003d,0x00000008, + 0x000004d0,0x000000e8,0x0003003e,0x000004cf,0x000004d0,0x00060039,0x00000008,0x000004d1, + 0x00000040,0x000004cd,0x000004cf,0x0003003e,0x000004d2,0x000004d1,0x00050039,0x00000008, + 0x000004d3,0x00000027,0x000004d2,0x0003003e,0x000000e7,0x000004d3,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000ef,0x00000000,0x000000eb,0x00030037,0x00000084,0x000000ec, + 0x00030037,0x0000001e,0x000000ed,0x00030037,0x0000000d,0x000000ee,0x000200f8,0x000000f0, + 0x0004003b,0x00000029,0x000004d4,0x00000007,0x0004003b,0x00000029,0x000004df,0x00000007, + 0x0004003b,0x00000029,0x000004e7,0x00000007,0x0004003b,0x00000029,0x000004ef,0x00000007, + 0x0004003b,0x000000c5,0x000004f5,0x00000007,0x0004003b,0x00000029,0x000004f6,0x00000007, + 0x0004003b,0x000000c5,0x000004f8,0x00000007,0x0004003b,0x000000c5,0x000004fb,0x00000007, + 0x0004003b,0x00000029,0x000004fc,0x00000007,0x0004003b,0x000000c5,0x000004fe,0x00000007, + 0x0004003b,0x00000029,0x00000501,0x00000007,0x0004003b,0x00000029,0x00000502,0x00000007, + 0x0004003b,0x00000029,0x00000505,0x00000007,0x0004003b,0x0000046b,0x0000050b,0x00000007, + 0x0004003b,0x000000de,0x00000511,0x00000007,0x0004003b,0x00000029,0x00000512,0x00000007, + 0x0004003b,0x00000029,0x00000514,0x00000007,0x0004003b,0x0000006e,0x00000515,0x00000007, + 0x0004003b,0x0000046b,0x00000517,0x00000007,0x0004003b,0x000000de,0x0000051e,0x00000007, + 0x0004003b,0x00000029,0x0000051f,0x00000007,0x0004003b,0x00000029,0x00000521,0x00000007, + 0x0004003b,0x0000006e,0x00000522,0x00000007,0x0004003b,0x0000046b,0x00000524,0x00000007, + 0x0004003b,0x000000de,0x0000052a,0x00000007,0x0004003b,0x00000029,0x0000052b,0x00000007, + 0x0004003b,0x00000029,0x0000052d,0x00000007,0x0004003b,0x0000006e,0x0000052e,0x00000007, + 0x0004003b,0x0000046b,0x00000530,0x00000007,0x0004003b,0x000000de,0x00000537,0x00000007, + 0x0004003b,0x00000029,0x00000538,0x00000007,0x0004003b,0x00000029,0x0000053a,0x00000007, + 0x0004003b,0x0000006e,0x0000053b,0x00000007,0x0004003b,0x0000000d,0x0000053d,0x00000007, + 0x0004003b,0x0000000d,0x00000553,0x00000007,0x0004003b,0x0000000d,0x00000555,0x00000007, + 0x0004003b,0x0000000d,0x00000558,0x00000007,0x0004003b,0x0000000d,0x00000565,0x00000007, + 0x0004003b,0x0000001e,0x00000568,0x00000007,0x0004003b,0x0000001e,0x0000056b,0x00000007, + 0x0004003b,0x0000000d,0x0000056e,0x00000007,0x0004003b,0x0000000d,0x00000570,0x00000007, + 0x0004003b,0x0000000d,0x00000573,0x00000007,0x0004003b,0x0000000d,0x00000578,0x00000007, + 0x0004003b,0x0000000d,0x00000594,0x00000007,0x0004003b,0x0000001e,0x000005a7,0x00000007, + 0x0004003b,0x0000001e,0x000005a8,0x00000007,0x0004003b,0x0000001e,0x000005ab,0x00000007, + 0x0004003b,0x0000000d,0x000005ae,0x00000007,0x0004003b,0x0000000d,0x000005b1,0x00000007, + 0x0004003b,0x0000000d,0x000005b7,0x00000007,0x0004003b,0x0000000d,0x000005bd,0x00000007, + 0x0004003b,0x0000000d,0x000005be,0x00000007,0x0004003b,0x0000000d,0x000005c1,0x00000007, + 0x0004003b,0x0000000d,0x000005c4,0x00000007,0x0004003b,0x0000000d,0x000005c5,0x00000007, + 0x0004003b,0x0000000d,0x000005c6,0x00000007,0x0004003b,0x0000000d,0x000005c8,0x00000007, + 0x0004003b,0x0000000d,0x000005ca,0x00000007,0x0004003b,0x0000000d,0x000005cb,0x00000007, + 0x0004003b,0x0000000d,0x000005cf,0x00000007,0x0004003b,0x0000000d,0x000005d1,0x00000007, + 0x0004003b,0x0000000d,0x000005d2,0x00000007,0x0004003b,0x0000000d,0x000005d4,0x00000007, + 0x0004003b,0x0000000d,0x000005d9,0x00000007,0x0004003b,0x0000000d,0x000005db,0x00000007, + 0x0004003b,0x0000000d,0x000005dc,0x00000007,0x0004003b,0x0000000d,0x000005df,0x00000007, + 0x0004003b,0x0000001e,0x000005e2,0x00000007,0x0004003b,0x0000001e,0x000005e4,0x00000007, + 0x0004003b,0x0000000d,0x000005e6,0x00000007,0x0004003d,0x0000007b,0x000004d5,0x000000ec, + 0x00040039,0x00000056,0x000004d6,0x00000058,0x0004007c,0x0000007b,0x000004d7,0x000004d6, + 0x00050082,0x0000007b,0x000004d8,0x000004d5,0x000004d7,0x00040070,0x0000000e,0x000004d9, + 0x000004d8,0x00050050,0x0000000e,0x000004da,0x0000026c,0x0000026c,0x00050081,0x0000000e, + 0x000004db,0x000004d9,0x000004da,0x00040039,0x00000056,0x000004dc,0x0000005a,0x0004006f, + 0x0000000e,0x000004dd,0x000004dc,0x00050088,0x0000000e,0x000004de,0x000004db,0x000004dd, + 0x0003003e,0x000004d4,0x000004de,0x0004003d,0x0000007b,0x000004e0,0x000000ec,0x00040070, + 0x0000000e,0x000004e1,0x000004e0,0x00050050,0x0000000e,0x000004e2,0x0000026c,0x0000026c, + 0x00050081,0x0000000e,0x000004e3,0x000004e1,0x000004e2,0x00040039,0x00000056,0x000004e4, + 0x0000005e,0x0004006f,0x0000000e,0x000004e5,0x000004e4,0x00050088,0x0000000e,0x000004e6, + 0x000004e3,0x000004e5,0x0003003e,0x000004df,0x000004e6,0x0004003d,0x0000000e,0x000004e8, + 0x000004d4,0x00040039,0x00000056,0x000004e9,0x0000005c,0x0004006f,0x0000000e,0x000004ea, + 0x000004e9,0x00040039,0x00000056,0x000004eb,0x00000064,0x0004006f,0x0000000e,0x000004ec, + 0x000004eb,0x00050088,0x0000000e,0x000004ed,0x000004ea,0x000004ec,0x00050085,0x0000000e, + 0x000004ee,0x000004e8,0x000004ed,0x0003003e,0x000004e7,0x000004ee,0x00040039,0x00000056, + 0x000004f0,0x0000005a,0x0004006f,0x0000000e,0x000004f1,0x000004f0,0x00040039,0x00000056, + 0x000004f2,0x0000005e,0x0004006f,0x0000000e,0x000004f3,0x000004f2,0x00050088,0x0000000e, + 0x000004f4,0x000004f1,0x000004f3,0x0003003e,0x000004ef,0x000004f4,0x0004003d,0x0000000e, + 0x000004f7,0x000004d4,0x0003003e,0x000004f6,0x000004f7,0x00060039,0x00000002,0x000004f9, + 0x000000d4,0x000004f6,0x000004f8,0x0004003d,0x000000bd,0x000004fa,0x000004f8,0x0003003e, + 0x000004f5,0x000004fa,0x0004003d,0x0000000e,0x000004fd,0x000004df,0x0003003e,0x000004fc, + 0x000004fd,0x00060039,0x00000002,0x000004ff,0x000000d8,0x000004fc,0x000004fe,0x0004003d, + 0x000000bd,0x00000500,0x000004fe,0x0003003e,0x000004fb,0x00000500,0x0004003d,0x0000000e, + 0x00000503,0x000004e7,0x0003003e,0x00000502,0x00000503,0x00050039,0x00000076,0x00000504, + 0x00000079,0x00000502,0x0007004f,0x0000000e,0x00000506,0x00000504,0x00000504,0x00000000, + 0x00000001,0x0003003e,0x00000505,0x00000506,0x00050039,0x0000000e,0x00000507,0x0000002c, + 0x00000505,0x000500b4,0x000002a6,0x00000509,0x00000507,0x00000508,0x000600a9,0x0000000e, + 0x0000050a,0x00000509,0x00000508,0x000002fe,0x0003003e,0x00000501,0x0000050a,0x00050041, + 0x00000029,0x0000050c,0x000004f5,0x000001a2,0x0004003d,0x0000000e,0x0000050d,0x0000050c, + 0x0004003d,0x0000000e,0x0000050e,0x000004ef,0x00050085,0x0000000e,0x0000050f,0x0000050d, + 0x0000050e,0x00040039,0x00000056,0x00000510,0x0000005e,0x0003003e,0x00000511,0x00000302, + 0x0004003d,0x0000000e,0x00000513,0x000004df,0x0003003e,0x00000512,0x00000513,0x0003003e, + 0x00000514,0x0000050f,0x0003003e,0x00000515,0x00000510,0x00080039,0x000000da,0x00000516, + 0x000000e4,0x00000511,0x00000512,0x00000514,0x00000515,0x0003003e,0x0000050b,0x00000516, + 0x00050041,0x00000029,0x00000518,0x000004f5,0x000001a2,0x0004003d,0x0000000e,0x00000519, + 0x00000518,0x0004007f,0x0000000e,0x0000051a,0x00000519,0x0004003d,0x0000000e,0x0000051b, + 0x000004ef,0x00050085,0x0000000e,0x0000051c,0x0000051a,0x0000051b,0x00040039,0x00000056, + 0x0000051d,0x0000005e,0x0003003e,0x0000051e,0x000003d9,0x0004003d,0x0000000e,0x00000520, + 0x000004df,0x0003003e,0x0000051f,0x00000520,0x0003003e,0x00000521,0x0000051c,0x0003003e, + 0x00000522,0x0000051d,0x00080039,0x000000da,0x00000523,0x000000e4,0x0000051e,0x0000051f, + 0x00000521,0x00000522,0x0003003e,0x00000517,0x00000523,0x00050041,0x00000029,0x00000525, + 0x000004fb,0x000001a2,0x0004003d,0x0000000e,0x00000526,0x00000525,0x0004003d,0x0000000e, + 0x00000527,0x000004ef,0x00050085,0x0000000e,0x00000528,0x00000526,0x00000527,0x00040039, + 0x00000056,0x00000529,0x0000005e,0x0003003e,0x0000052a,0x00000302,0x0004003d,0x0000000e, + 0x0000052c,0x000004df,0x0003003e,0x0000052b,0x0000052c,0x0003003e,0x0000052d,0x00000528, + 0x0003003e,0x0000052e,0x00000529,0x00080039,0x000000da,0x0000052f,0x000000e4,0x0000052a, + 0x0000052b,0x0000052d,0x0000052e,0x0003003e,0x00000524,0x0000052f,0x00050041,0x00000029, + 0x00000531,0x000004fb,0x000001a2,0x0004003d,0x0000000e,0x00000532,0x00000531,0x0004007f, + 0x0000000e,0x00000533,0x00000532,0x0004003d,0x0000000e,0x00000534,0x000004ef,0x00050085, + 0x0000000e,0x00000535,0x00000533,0x00000534,0x00040039,0x00000056,0x00000536,0x0000005e, + 0x0003003e,0x00000537,0x000003d9,0x0004003d,0x0000000e,0x00000539,0x000004df,0x0003003e, + 0x00000538,0x00000539,0x0003003e,0x0000053a,0x00000535,0x0003003e,0x0000053b,0x00000536, + 0x00080039,0x000000da,0x0000053c,0x000000e4,0x00000537,0x00000538,0x0000053a,0x0000053b, + 0x0003003e,0x00000530,0x0000053c,0x0003003e,0x0000053d,0x0000010f,0x00050041,0x000000de, + 0x0000053e,0x000004f5,0x0000030e,0x0004003d,0x000000a8,0x0000053f,0x0000053e,0x000400a8, + 0x000000a8,0x00000540,0x0000053f,0x000600a9,0x00000008,0x00000541,0x00000540,0x00000110, + 0x0000010f,0x00050041,0x0000000d,0x00000542,0x00000501,0x000001cf,0x0004003d,0x00000008, + 0x00000543,0x00000542,0x00050085,0x00000008,0x00000544,0x00000543,0x00000541,0x00050041, + 0x0000000d,0x00000545,0x00000501,0x000001cf,0x0003003e,0x00000545,0x00000544,0x00050041, + 0x000000de,0x00000546,0x000004f5,0x0000030c,0x0004003d,0x000000a8,0x00000547,0x00000546, + 0x000400a8,0x000000a8,0x00000548,0x00000547,0x000600a9,0x00000008,0x00000549,0x00000548, + 0x00000110,0x0000010f,0x00050041,0x0000000d,0x0000054a,0x00000501,0x000001d5,0x0004003d, + 0x00000008,0x0000054b,0x0000054a,0x00050085,0x00000008,0x0000054c,0x0000054b,0x00000549, + 0x00050041,0x0000000d,0x0000054d,0x00000501,0x000001d5,0x0003003e,0x0000054d,0x0000054c, + 0x0004003d,0x0000000e,0x0000054e,0x00000501,0x0006000c,0x00000008,0x0000054f,0x00000001, + 0x00000042,0x0000054e,0x000500bc,0x000000a8,0x00000551,0x0000054f,0x00000550,0x000600a9, + 0x00000008,0x00000552,0x00000551,0x00000110,0x0000010f,0x0004003d,0x00000008,0x00000554, + 0x000000ee,0x0003003e,0x00000553,0x00000554,0x0003003e,0x00000555,0x00000552,0x00060039, + 0x00000002,0x00000556,0x000000e9,0x00000553,0x00000555,0x0004003d,0x00000008,0x00000557, + 0x00000553,0x0003003e,0x000000ee,0x00000557,0x0003003e,0x00000558,0x0000026c,0x00050041, + 0x0000000d,0x00000559,0x00000501,0x000001cf,0x0004003d,0x00000008,0x0000055a,0x00000559, + 0x00050083,0x00000008,0x0000055b,0x00000110,0x0000055a,0x00050085,0x00000008,0x0000055c, + 0x0000026c,0x0000055b,0x0004003d,0x00000008,0x0000055d,0x00000558,0x00050081,0x00000008, + 0x0000055e,0x0000055d,0x0000055c,0x0003003e,0x00000558,0x0000055e,0x00050041,0x0000000d, + 0x0000055f,0x00000501,0x000001d5,0x0004003d,0x00000008,0x00000560,0x0000055f,0x00050083, + 0x00000008,0x00000561,0x00000110,0x00000560,0x00050085,0x00000008,0x00000562,0x0000026c, + 0x00000561,0x0004003d,0x00000008,0x00000563,0x00000558,0x00050083,0x00000008,0x00000564, + 0x00000563,0x00000562,0x0003003e,0x00000558,0x00000564,0x0004003d,0x00000008,0x00000566, + 0x00000558,0x0003003e,0x00000565,0x00000566,0x00050039,0x00000008,0x00000567,0x00000027, + 0x00000565,0x00050041,0x0000001e,0x00000569,0x0000050b,0x000001a2,0x0004003d,0x00000013, + 0x0000056a,0x00000569,0x0003003e,0x00000568,0x0000056a,0x00050041,0x0000001e,0x0000056c, + 0x00000517,0x000001a2,0x0004003d,0x00000013,0x0000056d,0x0000056c,0x0003003e,0x0000056b, + 0x0000056d,0x0003003e,0x0000056e,0x00000567,0x00070039,0x00000013,0x0000056f,0x00000023, + 0x00000568,0x0000056b,0x0000056e,0x0003003e,0x000000ed,0x0000056f,0x00050041,0x0000000d, + 0x00000571,0x00000501,0x000001cf,0x0004003d,0x00000008,0x00000572,0x00000571,0x0003003e, + 0x00000570,0x00000572,0x00050041,0x0000000d,0x00000574,0x00000501,0x000001d5,0x0004003d, + 0x00000008,0x00000575,0x00000574,0x0003003e,0x00000573,0x00000575,0x00060039,0x00000008, + 0x00000576,0x0000003c,0x00000570,0x00000573,0x00050083,0x00000008,0x00000577,0x00000110, + 0x00000576,0x0003003e,0x00000578,0x00000577,0x00050039,0x00000008,0x00000579,0x00000027, + 0x00000578,0x0003003e,0x0000053d,0x00000579,0x00050041,0x0000000d,0x0000057a,0x0000050b, + 0x00000271,0x0004003d,0x00000008,0x0000057b,0x0000057a,0x000500b4,0x000000a8,0x0000057c, + 0x0000057b,0x0000010f,0x000300f7,0x0000057e,0x00000000,0x000400fa,0x0000057c,0x0000057d, + 0x00000581,0x000200f8,0x0000057d,0x00050041,0x0000001e,0x0000057f,0x00000517,0x000001a2, + 0x0004003d,0x00000013,0x00000580,0x0000057f,0x0003003e,0x000000ed,0x00000580,0x000200f9, + 0x0000057e,0x000200f8,0x00000581,0x00050041,0x0000000d,0x00000582,0x00000517,0x00000271, + 0x0004003d,0x00000008,0x00000583,0x00000582,0x000500b4,0x000000a8,0x00000584,0x00000583, + 0x0000010f,0x000300f7,0x00000586,0x00000000,0x000400fa,0x00000584,0x00000585,0x00000586, + 0x000200f8,0x00000585,0x00050041,0x0000001e,0x00000587,0x0000050b,0x000001a2,0x0004003d, + 0x00000013,0x00000588,0x00000587,0x0003003e,0x000000ed,0x00000588,0x000200f9,0x00000586, + 0x000200f8,0x00000586,0x000200f9,0x0000057e,0x000200f8,0x0000057e,0x00050041,0x0000000d, + 0x00000589,0x0000050b,0x00000271,0x0004003d,0x00000008,0x0000058a,0x00000589,0x000500b4, + 0x000000a8,0x0000058b,0x0000058a,0x0000010f,0x000300f7,0x0000058d,0x00000000,0x000400fa, + 0x0000058b,0x0000058c,0x0000058d,0x000200f8,0x0000058c,0x00050041,0x0000000d,0x0000058e, + 0x00000517,0x00000271,0x0004003d,0x00000008,0x0000058f,0x0000058e,0x000500b4,0x000000a8, + 0x00000590,0x0000058f,0x0000010f,0x000200f9,0x0000058d,0x000200f8,0x0000058d,0x000700f5, + 0x000000a8,0x00000591,0x0000058b,0x0000057e,0x00000590,0x0000058c,0x000300f7,0x00000593, + 0x00000000,0x000400fa,0x00000591,0x00000592,0x00000593,0x000200f8,0x00000592,0x0003003e, + 0x000000ee,0x00000110,0x000200f9,0x00000593,0x000200f8,0x00000593,0x0003003e,0x00000594, + 0x0000026c,0x00050041,0x0000000d,0x00000595,0x00000524,0x00000271,0x0004003d,0x00000008, + 0x00000596,0x00000595,0x000500ba,0x000000a8,0x00000597,0x00000596,0x0000010f,0x000300f7, + 0x00000599,0x00000000,0x000400fa,0x00000597,0x00000598,0x00000599,0x000200f8,0x00000598, + 0x00050041,0x0000000d,0x0000059a,0x00000530,0x00000271,0x0004003d,0x00000008,0x0000059b, + 0x0000059a,0x000500ba,0x000000a8,0x0000059c,0x0000059b,0x0000010f,0x000200f9,0x00000599, + 0x000200f8,0x00000599,0x000700f5,0x000000a8,0x0000059d,0x00000597,0x00000593,0x0000059c, + 0x00000598,0x000300f7,0x0000059f,0x00000000,0x000400fa,0x0000059d,0x0000059e,0x000005a0, + 0x000200f8,0x0000059e,0x0003003e,0x00000594,0x0000026c,0x000200f9,0x0000059f,0x000200f8, + 0x000005a0,0x00050041,0x0000000d,0x000005a1,0x00000524,0x00000271,0x0004003d,0x00000008, + 0x000005a2,0x000005a1,0x000500ba,0x000000a8,0x000005a3,0x000005a2,0x0000010f,0x000300f7, + 0x000005a5,0x00000000,0x000400fa,0x000005a3,0x000005a4,0x000005a6,0x000200f8,0x000005a4, + 0x0003003e,0x00000594,0x0000010f,0x000200f9,0x000005a5,0x000200f8,0x000005a6,0x0003003e, + 0x00000594,0x00000110,0x000200f9,0x000005a5,0x000200f8,0x000005a5,0x000200f9,0x0000059f, + 0x000200f8,0x0000059f,0x00050041,0x0000001e,0x000005a9,0x00000524,0x000001a2,0x0004003d, + 0x00000013,0x000005aa,0x000005a9,0x0003003e,0x000005a8,0x000005aa,0x00050041,0x0000001e, + 0x000005ac,0x00000530,0x000001a2,0x0004003d,0x00000013,0x000005ad,0x000005ac,0x0003003e, + 0x000005ab,0x000005ad,0x0004003d,0x00000008,0x000005af,0x00000594,0x0003003e,0x000005ae, + 0x000005af,0x00070039,0x00000013,0x000005b0,0x00000023,0x000005a8,0x000005ab,0x000005ae, + 0x0003003e,0x000005a7,0x000005b0,0x00050041,0x0000001e,0x000005b2,0x00000524,0x000001a2, + 0x0004003d,0x00000013,0x000005b3,0x000005b2,0x00050041,0x0000001e,0x000005b4,0x00000530, + 0x000001a2,0x0004003d,0x00000013,0x000005b5,0x000005b4,0x00060039,0x00000008,0x000005b6, + 0x000000bb,0x000005b3,0x000005b5,0x0003003e,0x000005b1,0x000005b6,0x00050041,0x0000001e, + 0x000005b8,0x0000050b,0x000001a2,0x0004003d,0x00000013,0x000005b9,0x000005b8,0x00050041, + 0x0000001e,0x000005ba,0x00000517,0x000001a2,0x0004003d,0x00000013,0x000005bb,0x000005ba, + 0x00060039,0x00000008,0x000005bc,0x000000bb,0x000005b9,0x000005bb,0x0003003e,0x000005b7, + 0x000005bc,0x0003003e,0x000005bd,0x00000550,0x0004003d,0x00000008,0x000005bf,0x000005b7, + 0x0003003e,0x000005be,0x000005bf,0x00060039,0x00000008,0x000005c0,0x00000040,0x000005bd, + 0x000005be,0x0004003d,0x00000008,0x000005c2,0x0000053d,0x0003003e,0x000005c1,0x000005c2, + 0x00050039,0x00000008,0x000005c3,0x00000027,0x000005c1,0x0003003e,0x000005c4,0x000005c0, + 0x0003003e,0x000005c5,0x00000110,0x0003003e,0x000005c6,0x000005c3,0x00070039,0x00000008, + 0x000005c7,0x0000001c,0x000005c4,0x000005c5,0x000005c6,0x0003003e,0x000005b7,0x000005c7, + 0x0004003d,0x00000008,0x000005c9,0x000005b7,0x0003003e,0x000005ca,0x00000550,0x0004003d, + 0x00000008,0x000005cc,0x000005b1,0x0003003e,0x000005cb,0x000005cc,0x00060039,0x00000008, + 0x000005cd,0x00000040,0x000005ca,0x000005cb,0x00050088,0x00000008,0x000005ce,0x000005c9, + 0x000005cd,0x0003003e,0x000005cf,0x000005ce,0x00050039,0x00000008,0x000005d0,0x00000027, + 0x000005cf,0x0003003e,0x000005d1,0x000005d0,0x0003003e,0x000005d2,0x00000110,0x00060039, + 0x00000008,0x000005d3,0x00000044,0x000005d1,0x000005d2,0x0003003e,0x000005c8,0x000005d3, + 0x00040039,0x00000006,0x000005d5,0x0000008e,0x000500b0,0x000000a8,0x000005d7,0x000005d5, + 0x000005d6,0x000600a9,0x00000008,0x000005d8,0x000005d7,0x00000110,0x0000010f,0x0003003e, + 0x000005d4,0x000005d8,0x0004003d,0x00000008,0x000005da,0x000005c8,0x0003003e,0x000005d9, + 0x000005da,0x0003003e,0x000005db,0x00000110,0x0004003d,0x00000008,0x000005dd,0x000005d4, + 0x0003003e,0x000005dc,0x000005dd,0x00070039,0x00000008,0x000005de,0x0000001c,0x000005d9, + 0x000005db,0x000005dc,0x0003003e,0x000005c8,0x000005de,0x0004003d,0x00000008,0x000005e0, + 0x000005c8,0x0003003e,0x000005df,0x000005e0,0x00050039,0x00000008,0x000005e1,0x00000027, + 0x000005df,0x0004003d,0x00000013,0x000005e3,0x000005a7,0x0003003e,0x000005e2,0x000005e3, + 0x0004003d,0x00000013,0x000005e5,0x000000ed,0x0003003e,0x000005e4,0x000005e5,0x0003003e, + 0x000005e6,0x000005e1,0x00070039,0x00000013,0x000005e7,0x00000023,0x000005e2,0x000005e4, + 0x000005e6,0x0003003e,0x000000ed,0x000005e7,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000f3,0x00000000,0x000000f1,0x00030037,0x0000006e,0x000000f2,0x000200f8,0x000000f4, + 0x0004003b,0x0000001e,0x000005e8,0x00000007,0x0004003b,0x0000000d,0x000005e9,0x00000007, + 0x0004003b,0x0000006e,0x000005ec,0x00000007,0x0004003b,0x0000006e,0x000005ee,0x00000007, + 0x0004003b,0x0000006e,0x000005ef,0x00000007,0x0004003b,0x0000006e,0x000005fa,0x00000007, + 0x0004003b,0x00000084,0x00000600,0x00000007,0x0004003b,0x0000001e,0x00000601,0x00000007, + 0x0004003b,0x0000000d,0x00000602,0x00000007,0x0004003b,0x0000006e,0x0000060e,0x00000007, + 0x0004003b,0x00000090,0x0000060f,0x00000007,0x0003003e,0x000005e8,0x0000046d,0x0003003e, + 0x000005e9,0x0000010f,0x00040039,0x00000056,0x000005ea,0x00000058,0x00040039,0x00000056, + 0x000005eb,0x0000005a,0x0004003d,0x00000056,0x000005ed,0x000000f2,0x0003003e,0x000005ec, + 0x000005ed,0x0003003e,0x000005ee,0x000005ea,0x0003003e,0x000005ef,0x000005eb,0x00070039, + 0x000000a8,0x000005f0,0x000000b6,0x000005ec,0x000005ee,0x000005ef,0x000500a4,0x000000a8, + 0x000005f1,0x000005f0,0x00000302,0x000400a8,0x000000a8,0x000005f2,0x000005f1,0x000300f7, + 0x000005f4,0x00000000,0x000400fa,0x000005f2,0x000005f3,0x000005f4,0x000200f8,0x000005f3, + 0x00040039,0x00000006,0x000005f5,0x0000008e,0x000500aa,0x000000a8,0x000005f6,0x000005f5, + 0x000001cf,0x000200f9,0x000005f4,0x000200f8,0x000005f4,0x000700f5,0x000000a8,0x000005f7, + 0x000005f1,0x000000f4,0x000005f6,0x000005f3,0x000300f7,0x000005f9,0x00000000,0x000400fa, + 0x000005f7,0x000005f8,0x000005fd,0x000200f8,0x000005f8,0x0004003d,0x00000056,0x000005fb, + 0x000000f2,0x0003003e,0x000005fa,0x000005fb,0x00050039,0x00000013,0x000005fc,0x00000074, + 0x000005fa,0x0003003e,0x000005e8,0x000005fc,0x000200f9,0x000005f9,0x000200f8,0x000005fd, + 0x0004003d,0x00000056,0x000005fe,0x000000f2,0x0004007c,0x0000007b,0x000005ff,0x000005fe, + 0x0003003e,0x00000600,0x000005ff,0x0004003d,0x00000008,0x00000603,0x000005e9,0x0003003e, + 0x00000602,0x00000603,0x00070039,0x00000002,0x00000604,0x000000ef,0x00000600,0x00000601, + 0x00000602,0x0004003d,0x00000013,0x00000605,0x00000601,0x0003003e,0x000005e8,0x00000605, + 0x0004003d,0x00000008,0x00000606,0x00000602,0x0003003e,0x000005e9,0x00000606,0x000200f9, + 0x000005f9,0x000200f8,0x000005f9,0x0004003d,0x00000056,0x00000607,0x000000f2,0x0004003d, + 0x00000013,0x00000608,0x000005e8,0x0004003d,0x00000008,0x00000609,0x000005e9,0x00050051, + 0x00000008,0x0000060a,0x00000608,0x00000000,0x00050051,0x00000008,0x0000060b,0x00000608, + 0x00000001,0x00050051,0x00000008,0x0000060c,0x00000608,0x00000002,0x00070050,0x00000076, + 0x0000060d,0x0000060a,0x0000060b,0x0000060c,0x00000609,0x0003003e,0x0000060e,0x00000607, + 0x0003003e,0x0000060f,0x0000060d,0x00060039,0x00000002,0x00000610,0x00000094,0x0000060e, + 0x0000060f,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h b/gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h new file mode 100644 index 000000000..ac138fd81 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h @@ -0,0 +1,789 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_OPTICAL_FLOW_VECTOR_FIELD_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000003e8,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000003d7,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70, + 0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461, + 0x00003b31,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000010,0x46786666,0x6f543233, + 0x28363146,0x003b3166,0x00040005,0x0000000f,0x756c6176,0x00000065,0x00070005,0x00000015, + 0x42786666,0x64616f72,0x74736163,0x31662833,0x0000003b,0x00040005,0x00000014,0x756c6176, + 0x00000065,0x00060005,0x00000019,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005, + 0x00000018,0x00000078,0x00070005,0x0000001e,0x53786666,0x72757461,0x28657461,0x3b336676, + 0x00000000,0x00030005,0x0000001d,0x00000078,0x00060005,0x00000024,0x46786666,0x74636172, + 0x32667628,0x0000003b,0x00030005,0x00000023,0x00000078,0x00060005,0x00000027,0x52786666, + 0x646e756f,0x3b316628,0x00000000,0x00030005,0x00000026,0x00000078,0x00060005,0x0000002c, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x0000002a,0x00000078,0x00030005, + 0x0000002b,0x00000079,0x00060005,0x00000030,0x4d786666,0x66287861,0x31663b31,0x0000003b, + 0x00030005,0x0000002e,0x00000078,0x00030005,0x0000002f,0x00000079,0x00060005,0x00000034, + 0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000032,0x00000078,0x00030005, + 0x00000033,0x00000079,0x000a0005,0x0000003a,0x5a786666,0x4f6f7265,0x6553656e,0x7463656c, + 0x33667628,0x3366763b,0x3366763b,0x0000003b,0x00030005,0x00000037,0x00000078,0x00030005, + 0x00000038,0x00000079,0x00030005,0x00000039,0x0000007a,0x00080005,0x0000003d,0x5a786666, + 0x4f6f7265,0x7349656e,0x6e676953,0x76286465,0x003b3366,0x00030005,0x0000003c,0x00000078, + 0x00080005,0x00000040,0x4c786666,0x61656e69,0x6f724672,0x2851506d,0x3b336676,0x00000000, + 0x00040005,0x0000003f,0x756c6176,0x00000065,0x00080005,0x00000043,0x4c786666,0x61656e69, + 0x6f724672,0x6772536d,0x66762862,0x00003b33,0x00040005,0x00000042,0x756c6176,0x00000065, + 0x00080005,0x00000048,0x65746e49,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00002865, + 0x00070005,0x0000004a,0x4f746547,0x63697470,0x6c466c61,0x6953776f,0x0028657a,0x00080005, + 0x0000004c,0x4f746547,0x63697470,0x6c466c61,0x6953776f,0x2832657a,0x00000000,0x00080005, + 0x0000004f,0x4f746547,0x63697470,0x6c466c61,0x6353776f,0x28656c61,0x00000000,0x00090005, + 0x00000052,0x6b636142,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00286e6f, + 0x00060005,0x00000055,0x4c6e694d,0x6e696d75,0x65636e61,0x00000028,0x00060005,0x00000057, + 0x4c78614d,0x6e696d75,0x65636e61,0x00000028,0x000a0005,0x0000005b,0x706d6153,0x7250656c, + 0x6f697665,0x61427375,0x75626b63,0x72656666,0x32667628,0x0000003b,0x00030005,0x0000005a, + 0x00765566,0x000a0005,0x0000005e,0x706d6153,0x7543656c,0x6e657272,0x63614274,0x6675626b, + 0x28726566,0x3b326676,0x00000000,0x00030005,0x0000005d,0x00765566,0x00080005,0x00000063, + 0x64616f4c,0x6974704f,0x466c6163,0x28776f6c,0x3b326976,0x00000000,0x00040005,0x00000062, + 0x50785069,0x0000736f,0x000a0005,0x00000067,0x64616f4c,0x6974704f,0x466c6163,0x43776f6c, + 0x69666e6f,0x636e6564,0x69762865,0x00003b32,0x00040005,0x00000066,0x50785069,0x0000736f, + 0x000d0005,0x0000006e,0x61647055,0x704f6574,0x61636974,0x6f6c666c,0x746f4d77,0x566e6f69, + 0x6f746365,0x65694672,0x7628646c,0x763b3269,0x003b3275,0x00040005,0x0000006c,0x50785069, + 0x0000736f,0x00060005,0x0000006d,0x6b636170,0x65566465,0x726f7463,0x00000000,0x00060005, + 0x00000072,0x54424752,0x6d754c6f,0x66762861,0x00003b33,0x00050005,0x00000071,0x6e694c66, + 0x52726165,0x00006267,0x000a0005,0x00000075,0x656e694c,0x65527261,0x32303263,0x4c6f5430, + 0x6e696d75,0x65636e61,0x33667628,0x0000003b,0x00070005,0x00000074,0x656e696c,0x65527261, + 0x32303263,0x42475230,0x00000000,0x00090005,0x0000007b,0x73786666,0x42475263,0x694c6f54, + 0x7261656e,0x33667628,0x3b31663b,0x003b3166,0x00040005,0x00000078,0x756c6176,0x00000065, + 0x00060005,0x00000079,0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x0000007a, + 0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x00070005,0x0000007e,0x52776152,0x6f544247, + 0x656e694c,0x76287261,0x003b3366,0x00040005,0x0000007d,0x77615266,0x00626752,0x00080005, + 0x00000081,0x52776152,0x6f544247,0x696d754c,0x636e616e,0x66762865,0x00003b33,0x00040005, + 0x00000080,0x77615266,0x00626752,0x00080005,0x00000086,0x696c6942,0x7261656e,0x706d6153, + 0x676e696c,0x61746144,0x00000000,0x00060006,0x00000086,0x00000000,0x66664f69,0x73746573, + 0x00000000,0x00060006,0x00000086,0x00000001,0x69655766,0x73746867,0x00000000,0x00060006, + 0x00000086,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005,0x0000008a,0x42746547, + 0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000, + 0x00030005,0x00000088,0x00765566,0x00040005,0x00000089,0x7a695369,0x00000065,0x00070005, + 0x00000090,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000008e, + 0x00736f70,0x00040005,0x0000008f,0x657a6973,0x00000000,0x00060005,0x00000094,0x76557349, + 0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000093,0x00765566,0x00080005,0x00000099, + 0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31,0x00030005,0x00000097, + 0x00003076,0x00030005,0x00000098,0x00003176,0x000c0005,0x000000a1,0x6b636150,0x74636556, + 0x6946726f,0x45646c65,0x6972746e,0x62287365,0x31753b31,0x3b31753b,0x3b326676,0x00000000, + 0x00050005,0x0000009d,0x50734962,0x616d6972,0x00007972,0x00070005,0x0000009e,0x67694875, + 0x69725068,0x7469726f,0x63614679,0x00726f74,0x00070005,0x0000009f,0x776f4c75,0x6f697250, + 0x79746972,0x74636146,0x0000726f,0x00060005,0x000000a0,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x000b0005,0x000000a6,0x706d6f63,0x4f657475,0x63697470,0x6c466c61,0x6946776f, + 0x4d646c65,0x76287376,0x763b3275,0x003b3266,0x00040005,0x000000a4,0x44497464,0x00000000, + 0x00070005,0x000000a5,0x74704f66,0x6c616369,0x776f6c46,0x74636556,0x0000726f,0x000b0005, + 0x000000aa,0x706d6f63,0x4f657475,0x63697470,0x6c466c61,0x6556776f,0x726f7463,0x6c656946, + 0x69762864,0x00003b32,0x00040005,0x000000a9,0x50785069,0x0000736f,0x00040005,0x000000c0, + 0x61726170,0x0000006d,0x00040005,0x000000c2,0x61726170,0x0000006d,0x00030005,0x000000de, + 0x00000072,0x00040005,0x000000ee,0x61726170,0x0000006d,0x00040005,0x000000f0,0x61726170, + 0x0000006d,0x00040005,0x000000f3,0x61726170,0x0000006d,0x00030005,0x000000f7,0x00000070, + 0x00040005,0x000000fa,0x61726170,0x0000006d,0x00040005,0x000000ff,0x61726170,0x0000006d, + 0x00040005,0x00000102,0x61726170,0x0000006d,0x00040005,0x00000105,0x61726170,0x0000006d, + 0x00040005,0x00000108,0x61726170,0x0000006d,0x00040005,0x0000010f,0x61726170,0x0000006d, + 0x00030005,0x00000114,0x0000006a,0x00030005,0x00000119,0x0000006b,0x00040005,0x00000121, + 0x61726170,0x0000006d,0x00040005,0x00000131,0x61726170,0x0000006d,0x00040005,0x00000132, + 0x61726170,0x0000006d,0x00040005,0x00000133,0x61726170,0x0000006d,0x00040005,0x00000138, + 0x49466263,0x0000745f,0x00060006,0x00000138,0x00000000,0x646e6572,0x69537265,0x0000657a, + 0x00060006,0x00000138,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x00000138, + 0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x00000138,0x00000003, + 0x656d6163,0x654e6172,0x00007261,0x00060006,0x00000138,0x00000004,0x656d6163,0x61466172, + 0x00000072,0x00080006,0x00000138,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465, + 0x0000657a,0x00050006,0x00000138,0x00000006,0x65646f4d,0x00000000,0x00050006,0x00000138, + 0x00000007,0x65736572,0x00000074,0x00080006,0x00000138,0x00000008,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00060006,0x00000138,0x00000009,0x746c6564,0x6d695461, + 0x00000065,0x00090006,0x00000138,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568, + 0x6f746361,0x00000072,0x00080006,0x00000138,0x0000000b,0x74736964,0x6974726f,0x69466e6f, + 0x53646c65,0x00657a69,0x00080006,0x00000138,0x0000000c,0x6974706f,0x466c6163,0x53776f6c, + 0x656c6163,0x00000000,0x00090006,0x00000138,0x0000000d,0x6974706f,0x466c6163,0x42776f6c, + 0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x00000138,0x0000000e,0x70736964,0x68637461, + 0x67616c46,0x00000073,0x00070006,0x00000138,0x0000000f,0x5278616d,0x65646e65,0x7a695372, + 0x00000065,0x00090006,0x00000138,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61, + 0x6f4d7365,0x00006564,0x00070006,0x00000138,0x00000011,0x496d754e,0x6174736e,0x7365636e, + 0x00000000,0x00090006,0x00000138,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x73614274,0x00000065,0x00090006,0x00000138,0x00000013,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x7a695374,0x00000065,0x00070006,0x00000138,0x00000014,0x75626564,0x72614267, + 0x6f6c6f43,0x00000072,0x000a0006,0x00000138,0x00000015,0x6b636162,0x66667542,0x72547265, + 0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x00000138,0x00000016,0x4d6e696d, + 0x754c7861,0x616e696d,0x0065636e,0x00060006,0x00000138,0x00000017,0x6e615466,0x666c6148, + 0x00564f46,0x00050006,0x00000138,0x00000018,0x6461705f,0x00000031,0x00050006,0x00000138, + 0x00000019,0x74694a66,0x00726574,0x00080006,0x00000138,0x0000001a,0x746f4d66,0x566e6f69, + 0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000013a,0x49466263,0x00000000,0x00070005, + 0x00000141,0x74704f69,0x6c616369,0x776f6c46,0x657a6953,0x00000000,0x000a0005,0x00000171, + 0x72705f72,0x6f697665,0x695f7375,0x7265746e,0x616c6f70,0x6e6f6974,0x756f735f,0x00656372, + 0x00060005,0x00000175,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x000a0005,0x0000017e, + 0x75635f72,0x6e657272,0x6e695f74,0x70726574,0x74616c6f,0x5f6e6f69,0x72756f73,0x00006563, + 0x00060005,0x00000189,0x706f5f72,0x61636974,0x6c665f6c,0x0000776f,0x00090005,0x00000197, + 0x706f5f72,0x61636974,0x6c665f6c,0x635f776f,0x69666e6f,0x636e6564,0x00000065,0x000c0005, + 0x000001a2,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365, + 0x69665f72,0x5f646c65,0x00000078,0x000c0005,0x000001a9,0x6f5f7772,0x63697470,0x665f6c61, + 0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65,0x00000079,0x00030005, + 0x000001b7,0x00005966,0x00030005,0x000001ca,0x00000070,0x00040005,0x000001cf,0x61726170, + 0x0000006d,0x00040005,0x000001d7,0x61726170,0x0000006d,0x00050005,0x000001e1,0x6e694c66, + 0x52726165,0x00006267,0x00040005,0x000001e2,0x61726170,0x0000006d,0x00040005,0x000001e6, + 0x61726170,0x0000006d,0x00040005,0x000001f0,0x61726170,0x0000006d,0x00040005,0x000001f2, + 0x61726170,0x0000006d,0x00040005,0x000001f3,0x61726170,0x0000006d,0x00050005,0x000001fa, + 0x6d754c66,0x6e616e69,0x00006563,0x00040005,0x00000200,0x61726170,0x0000006d,0x00040005, + 0x00000203,0x61726170,0x0000006d,0x00040005,0x00000206,0x61726170,0x0000006d,0x00040005, + 0x00000209,0x61726170,0x0000006d,0x00040005,0x0000020c,0x61726170,0x0000006d,0x00040005, + 0x0000020f,0x61726170,0x0000006d,0x00050005,0x00000216,0x53785066,0x6c706d61,0x00000065, + 0x00040005,0x0000021f,0x61746164,0x00000000,0x00040005,0x00000225,0x46785066,0x00636172, + 0x00040005,0x00000226,0x61726170,0x0000006d,0x00030005,0x00000271,0x0000006d,0x00040005, + 0x00000272,0x61726170,0x0000006d,0x00040005,0x00000273,0x61726170,0x0000006d,0x00040005, + 0x0000027a,0x61726170,0x0000006d,0x00040005,0x0000027b,0x61726170,0x0000006d,0x00050005, + 0x00000283,0x69725075,0x7469726f,0x00000079,0x00040005,0x00000294,0x6b636170,0x00586465, + 0x00040005,0x00000296,0x61726170,0x0000006d,0x00040005,0x0000029b,0x6b636170,0x00596465, + 0x00040005,0x0000029d,0x61726170,0x0000006d,0x00030005,0x000002a7,0x00765566,0x00070005, + 0x000002af,0x746f4d66,0x566e6f69,0x6f746365,0x6c614872,0x00000066,0x00070005,0x000002b2, + 0x76657270,0x6b636142,0x66667562,0x6f437265,0x0000006c,0x00040005,0x000002b6,0x61726170, + 0x0000006d,0x00070005,0x000002b8,0x42727563,0x626b6361,0x65666675,0x6c6f4372,0x00000000, + 0x00040005,0x000002b9,0x61726170,0x0000006d,0x00050005,0x000002bc,0x76657270,0x616d754c, + 0x00000000,0x00040005,0x000002be,0x61726170,0x0000006d,0x00050005,0x000002c2,0x72727563, + 0x616d754c,0x00000000,0x00040005,0x000002c3,0x61726170,0x0000006d,0x00050005,0x000002c7, + 0x6c655666,0x7469636f,0x00000079,0x00070005,0x000002cd,0x67694875,0x69725068,0x7469726f, + 0x63614679,0x00726f74,0x00040005,0x000002d8,0x61726170,0x0000006d,0x00070005,0x000002e2, + 0x776f4c75,0x6f697250,0x79746972,0x74636146,0x0000726f,0x00040005,0x000002e6,0x61726170, + 0x0000006d,0x00040005,0x000002e7,0x61726170,0x0000006d,0x00040005,0x000002eb,0x61726170, + 0x0000006d,0x00040005,0x000002f1,0x61726170,0x0000006d,0x00070005,0x000002f5,0x6b636170, + 0x65566465,0x726f7463,0x6d697250,0x00797261,0x00040005,0x000002f7,0x61726170,0x0000006d, + 0x00040005,0x000002f8,0x61726170,0x0000006d,0x00040005,0x000002fa,0x61726170,0x0000006d, + 0x00040005,0x000002fc,0x61726170,0x0000006d,0x00060005,0x000002ff,0x696c6962,0x7261656e, + 0x6f666e49,0x00000000,0x00040005,0x00000304,0x61726170,0x0000006d,0x00040005,0x00000305, + 0x61726170,0x0000006d,0x00060005,0x00000308,0x6d615369,0x49656c70,0x7865646e,0x00000000, + 0x00040005,0x00000311,0x66664f69,0x00746573,0x00050005,0x00000315,0x6d615369,0x50656c70, + 0x0000736f,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00040005,0x0000031d,0x61726170, + 0x0000006d,0x00040005,0x00000321,0x61726170,0x0000006d,0x00040005,0x00000323,0x61726170, + 0x0000006d,0x00070005,0x00000328,0x74704f66,0x6c616369,0x776f6c46,0x74636556,0x0000726f, + 0x00090005,0x0000032a,0x74704f66,0x6c616369,0x776f6c46,0x74636556,0x7833726f,0x67764133, + 0x00000000,0x00040005,0x0000032b,0x657a6973,0x00000000,0x00030005,0x0000032c,0x00007773, + 0x00030005,0x0000032d,0x00000079,0x00030005,0x00000338,0x00000078,0x00050005,0x00000343, + 0x706d6173,0x6f50656c,0x00000073,0x00030005,0x00000349,0x00007376,0x00040005,0x0000034a, + 0x61726170,0x0000006d,0x00070005,0x0000034d,0x6e6f4366,0x65646966,0x4665636e,0x6f746361, + 0x00000072,0x00040005,0x0000034e,0x61726170,0x0000006d,0x00040005,0x00000351,0x61726170, + 0x0000006d,0x00040005,0x00000352,0x61726170,0x0000006d,0x00030005,0x00000354,0x006e656c, + 0x00050005,0x0000035a,0x5f6e656c,0x74636166,0x0000726f,0x00040005,0x0000035e,0x61726170, + 0x0000006d,0x00040005,0x0000035f,0x61726170,0x0000006d,0x00030005,0x00000365,0x00000077, + 0x00030005,0x00000377,0x00000079,0x00030005,0x00000382,0x00000078,0x00050005,0x0000038d, + 0x706d6173,0x6f50656c,0x00000073,0x00030005,0x00000393,0x00007376,0x00040005,0x00000394, + 0x61726170,0x0000006d,0x00070005,0x00000397,0x6e6f4366,0x65646966,0x4665636e,0x6f746361, + 0x00000072,0x00040005,0x00000398,0x61726170,0x0000006d,0x00040005,0x0000039b,0x61726170, + 0x0000006d,0x00040005,0x0000039c,0x61726170,0x0000006d,0x00030005,0x0000039e,0x006e656c, + 0x00050005,0x000003a4,0x5f6e656c,0x74636166,0x0000726f,0x00040005,0x000003a7,0x61726170, + 0x0000006d,0x00040005,0x000003a8,0x61726170,0x0000006d,0x00030005,0x000003ae,0x00000077, + 0x00040005,0x000003b3,0x61726170,0x0000006d,0x00040005,0x000003b4,0x61726170,0x0000006d, + 0x00040005,0x000003b6,0x61726170,0x0000006d,0x00040005,0x000003b7,0x61726170,0x0000006d, + 0x00040005,0x000003d1,0x61726170,0x0000006d,0x00040005,0x000003d2,0x61726170,0x0000006d, + 0x00080005,0x000003d7,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044, + 0x00040005,0x000003db,0x61726170,0x0000006d,0x00060005,0x000003e0,0x69645f72,0x6574616c, + 0x65645f64,0x00687470,0x00030047,0x00000138,0x00000002,0x00050048,0x00000138,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000138,0x00000001,0x00000023,0x00000008,0x00050048, + 0x00000138,0x00000002,0x00000023,0x00000010,0x00050048,0x00000138,0x00000003,0x00000023, + 0x00000018,0x00050048,0x00000138,0x00000004,0x00000023,0x0000001c,0x00050048,0x00000138, + 0x00000005,0x00000023,0x00000020,0x00050048,0x00000138,0x00000006,0x00000023,0x00000028, + 0x00050048,0x00000138,0x00000007,0x00000023,0x0000002c,0x00050048,0x00000138,0x00000008, + 0x00000023,0x00000030,0x00050048,0x00000138,0x00000009,0x00000023,0x00000040,0x00050048, + 0x00000138,0x0000000a,0x00000023,0x00000044,0x00050048,0x00000138,0x0000000b,0x00000023, + 0x00000048,0x00050048,0x00000138,0x0000000c,0x00000023,0x00000050,0x00050048,0x00000138, + 0x0000000d,0x00000023,0x00000058,0x00050048,0x00000138,0x0000000e,0x00000023,0x0000005c, + 0x00050048,0x00000138,0x0000000f,0x00000023,0x00000060,0x00050048,0x00000138,0x00000010, + 0x00000023,0x00000068,0x00050048,0x00000138,0x00000011,0x00000023,0x0000006c,0x00050048, + 0x00000138,0x00000012,0x00000023,0x00000070,0x00050048,0x00000138,0x00000013,0x00000023, + 0x00000078,0x00050048,0x00000138,0x00000014,0x00000023,0x00000080,0x00050048,0x00000138, + 0x00000015,0x00000023,0x0000008c,0x00050048,0x00000138,0x00000016,0x00000023,0x00000090, + 0x00050048,0x00000138,0x00000017,0x00000023,0x00000098,0x00050048,0x00000138,0x00000018, + 0x00000023,0x0000009c,0x00050048,0x00000138,0x00000019,0x00000023,0x000000a0,0x00050048, + 0x00000138,0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000013a,0x00000021,0x00000008, + 0x00040047,0x0000013a,0x00000022,0x00000000,0x00040047,0x00000171,0x00000021,0x00000003, + 0x00040047,0x00000171,0x00000022,0x00000000,0x00040047,0x00000175,0x00000021,0x000003e8, + 0x00040047,0x00000175,0x00000022,0x00000000,0x00040047,0x0000017e,0x00000021,0x00000004, + 0x00040047,0x0000017e,0x00000022,0x00000000,0x00040047,0x00000189,0x00000021,0x00000000, + 0x00040047,0x00000189,0x00000022,0x00000000,0x00040047,0x00000197,0x00000021,0x00000001, + 0x00040047,0x00000197,0x00000022,0x00000000,0x00040047,0x000001a2,0x00000021,0x00000006, + 0x00040047,0x000001a2,0x00000022,0x00000000,0x00040047,0x000001a9,0x00000021,0x00000007, + 0x00040047,0x000001a9,0x00000022,0x00000000,0x00040047,0x000003d7,0x0000000b,0x0000001c, + 0x00040047,0x000003e0,0x00000021,0x00000002,0x00040047,0x000003e0,0x00000022,0x00000000, + 0x00040047,0x000003e7,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007, + 0x00040020,0x0000000d,0x00000007,0x00000008,0x00040021,0x0000000e,0x00000006,0x0000000d, + 0x00040017,0x00000012,0x00000008,0x00000003,0x00040021,0x00000013,0x00000012,0x0000000d, + 0x00040021,0x00000017,0x00000008,0x0000000d,0x00040020,0x0000001b,0x00000007,0x00000012, + 0x00040021,0x0000001c,0x00000012,0x0000001b,0x00040017,0x00000020,0x00000008,0x00000002, + 0x00040020,0x00000021,0x00000007,0x00000020,0x00040021,0x00000022,0x00000020,0x00000021, + 0x00050021,0x00000029,0x00000008,0x0000000d,0x0000000d,0x00060021,0x00000036,0x00000012, + 0x0000001b,0x0000001b,0x0000001b,0x00040015,0x00000045,0x00000020,0x00000001,0x00040017, + 0x00000046,0x00000045,0x00000002,0x00030021,0x00000047,0x00000046,0x00030021,0x0000004e, + 0x00000020,0x00030021,0x00000051,0x00000006,0x00030021,0x00000054,0x00000008,0x00040021, + 0x00000059,0x00000012,0x00000021,0x00040020,0x00000060,0x00000007,0x00000046,0x00040021, + 0x00000061,0x00000020,0x00000060,0x00040021,0x00000065,0x00000008,0x00000060,0x00040017, + 0x00000069,0x00000006,0x00000002,0x00040020,0x0000006a,0x00000007,0x00000069,0x00050021, + 0x0000006b,0x00000002,0x00000060,0x0000006a,0x00040021,0x00000070,0x00000008,0x0000001b, + 0x00060021,0x00000077,0x00000012,0x0000001b,0x0000000d,0x0000000d,0x0004002b,0x00000006, + 0x00000083,0x00000004,0x0004001c,0x00000084,0x00000046,0x00000083,0x0004001c,0x00000085, + 0x00000008,0x00000083,0x0005001e,0x00000086,0x00000084,0x00000085,0x00000046,0x00050021, + 0x00000087,0x00000086,0x00000021,0x00000060,0x00020014,0x0000008c,0x00050021,0x0000008d, + 0x0000008c,0x00000060,0x00000060,0x00040021,0x00000092,0x0000008c,0x00000021,0x00050021, + 0x00000096,0x00000008,0x00000008,0x00000008,0x00040020,0x0000009b,0x00000007,0x0000008c, + 0x00070021,0x0000009c,0x00000069,0x0000009b,0x00000007,0x00000007,0x00000021,0x00050021, + 0x000000a3,0x00000002,0x0000006a,0x00000021,0x00040021,0x000000a8,0x00000002,0x00000060, + 0x0004002b,0x00000008,0x000000b1,0x00000000,0x0004002b,0x00000008,0x000000bb,0x3f800000, + 0x0004002b,0x00000006,0x000000ed,0xff800000,0x0004002b,0x00000008,0x000000f9,0x3c4fcd9e, + 0x0004002b,0x00000008,0x000000fe,0x3f560008,0x0004002b,0x00000008,0x00000104,0x4196d014, + 0x0004002b,0x00000008,0x00000107,0x41958000,0x0004002b,0x00000008,0x0000010e,0x40c8e061, + 0x0004002b,0x00000008,0x00000115,0x3d25aee6,0x0004002b,0x00000008,0x00000116,0x3d9e8391, + 0x0004002b,0x00000008,0x00000117,0x4019999a,0x0006002c,0x00000012,0x00000118,0x00000115, + 0x00000116,0x00000117,0x0004002b,0x00000008,0x0000011a,0x3f72a76e,0x0004002b,0x00000008, + 0x0000011b,0x3d558919,0x0005002c,0x00000020,0x0000011c,0x0000011a,0x0000011b,0x00040017, + 0x00000137,0x00000008,0x00000004,0x001d001e,0x00000138,0x00000046,0x00000046,0x00000020, + 0x00000008,0x00000008,0x00000046,0x00000045,0x00000045,0x00000137,0x00000008,0x00000045, + 0x00000046,0x00000020,0x00000045,0x00000006,0x00000046,0x00000045,0x00000045,0x00000046, + 0x00000046,0x00000012,0x00000006,0x00000020,0x00000008,0x00000045,0x00000020,0x00000020, + 0x00040020,0x00000139,0x00000002,0x00000138,0x0004003b,0x00000139,0x0000013a,0x00000002, + 0x0004002b,0x00000045,0x0000013b,0x00000013,0x00040020,0x0000013c,0x00000002,0x00000046, + 0x0004002b,0x00000045,0x00000142,0x0000000c,0x00040020,0x00000143,0x00000002,0x00000020, + 0x0004002b,0x00000045,0x00000148,0x0000000d,0x00040020,0x00000149,0x00000002,0x00000045, + 0x0004002b,0x00000045,0x00000154,0x00000001,0x0004002b,0x00000045,0x0000015d,0x00000015, + 0x00040020,0x0000015e,0x00000002,0x00000006,0x0004002b,0x00000045,0x00000163,0x00000016, + 0x0004002b,0x00000006,0x00000164,0x00000000,0x00040020,0x00000165,0x00000002,0x00000008, + 0x0004002b,0x00000006,0x0000016a,0x00000001,0x00090019,0x0000016f,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000170,0x00000000, + 0x0000016f,0x0004003b,0x00000170,0x00000171,0x00000000,0x0002001a,0x00000173,0x00040020, + 0x00000174,0x00000000,0x00000173,0x0004003b,0x00000174,0x00000175,0x00000000,0x0003001b, + 0x00000177,0x0000016f,0x0004003b,0x00000170,0x0000017e,0x00000000,0x00090019,0x00000187, + 0x00000045,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000188,0x00000000,0x00000187,0x0004003b,0x00000188,0x00000189,0x00000000,0x0004002b, + 0x00000045,0x0000018c,0x00000000,0x00040017,0x0000018d,0x00000045,0x00000004,0x00090019, + 0x00000195,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x00000196,0x00000000,0x00000195,0x0004003b,0x00000196,0x00000197,0x00000000, + 0x00040017,0x0000019a,0x00000006,0x00000004,0x00090019,0x000001a0,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x000001a1,0x00000000, + 0x000001a0,0x0004003b,0x000001a1,0x000001a2,0x00000000,0x00040020,0x000001a6,0x0000000b, + 0x00000006,0x0004003b,0x000001a1,0x000001a9,0x00000000,0x0004002b,0x00000008,0x000001b0, + 0x3e59b3d0,0x0004002b,0x00000008,0x000001b1,0x3f371759,0x0004002b,0x00000008,0x000001b2, + 0x3d93dd98,0x0006002c,0x00000012,0x000001b3,0x000001b0,0x000001b1,0x000001b2,0x0004002b, + 0x00000008,0x000001b8,0x3e86809d,0x0004002b,0x00000008,0x000001bc,0x3f2d9168,0x0004002b, + 0x00000008,0x000001c1,0x3d72e48f,0x0004002b,0x00000006,0x000001c2,0x00000002,0x0004002b, + 0x00000008,0x000001cd,0x42a00000,0x0004002b,0x00000008,0x000001e9,0x461c4000,0x0004002b, + 0x00000008,0x0000021b,0x3f000000,0x0005002c,0x00000020,0x0000021c,0x0000021b,0x0000021b, + 0x00040020,0x0000021e,0x00000007,0x00000086,0x0004002b,0x00000045,0x00000220,0x00000002, + 0x0005002c,0x00000046,0x00000229,0x0000018c,0x0000018c,0x0005002c,0x00000046,0x0000022b, + 0x00000154,0x0000018c,0x0005002c,0x00000046,0x0000022d,0x0000018c,0x00000154,0x0004002b, + 0x00000045,0x0000022f,0x00000003,0x0005002c,0x00000046,0x00000230,0x00000154,0x00000154, + 0x00040017,0x00000255,0x0000008c,0x00000002,0x0004002b,0x00000006,0x00000286,0x80000000, + 0x0004002b,0x00000006,0x00000289,0x000003ff,0x0004002b,0x00000006,0x0000028b,0x00000015, + 0x0004002b,0x00000006,0x0000028f,0x0000001f,0x0004002b,0x00000006,0x00000291,0x00000010, + 0x0004002b,0x00000008,0x000002bd,0x3a83126f,0x0004002b,0x00000008,0x000002d4,0x3d4ccccd, + 0x0004002b,0x00000008,0x000002da,0x447fc000,0x0004002b,0x00000008,0x000002e9,0x41f80000, + 0x00030029,0x0000008c,0x000002f6,0x00040020,0x00000307,0x00000007,0x00000045,0x0004002b, + 0x00000045,0x0000030f,0x00000004,0x0005002c,0x00000020,0x00000329,0x000000b1,0x000000b1, + 0x0004002b,0x00000008,0x0000035b,0x44000000,0x0004002b,0x00000008,0x000003b2,0x3fa00000, + 0x00040017,0x000003d5,0x00000006,0x00000003,0x00040020,0x000003d6,0x00000001,0x000003d5, + 0x0004003b,0x000003d6,0x000003d7,0x00000001,0x0004002b,0x00000008,0x000003dd,0x387fda40, + 0x0004002b,0x00000008,0x000003de,0x477fe000,0x0004002b,0x00000008,0x000003df,0x37801002, + 0x0004003b,0x00000170,0x000003e0,0x00000000,0x0004002b,0x00000008,0x000003e1,0x7f7fffff, + 0x0004002b,0x00000008,0x000003e2,0x00800000,0x0004002b,0x00000006,0x000003e3,0x00000020, + 0x0004002b,0x00000006,0x000003e4,0x00000005,0x0004002b,0x00000006,0x000003e5,0x0000000a, + 0x0004002b,0x00000006,0x000003e6,0x00000008,0x0006002c,0x000003d5,0x000003e7,0x000003e6, + 0x000003e6,0x0000016a,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000060,0x000003db,0x00000007,0x0004003d,0x000003d5,0x000003d8, + 0x000003d7,0x0007004f,0x00000069,0x000003d9,0x000003d8,0x000003d8,0x00000000,0x00000001, + 0x0004007c,0x00000046,0x000003da,0x000003d9,0x0003003e,0x000003db,0x000003da,0x00050039, + 0x00000002,0x000003dc,0x000000aa,0x000003db,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c, + 0x0004003d,0x00000006,0x000000ac,0x0000000a,0x0004007c,0x00000008,0x000000ad,0x000000ac, + 0x000200fe,0x000000ad,0x00010038,0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e, + 0x00030037,0x0000000d,0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000008,0x000000b0, + 0x0000000f,0x00050050,0x00000020,0x000000b2,0x000000b0,0x000000b1,0x0006000c,0x00000006, + 0x000000b3,0x00000001,0x0000003a,0x000000b2,0x000200fe,0x000000b3,0x00010038,0x00050036, + 0x00000012,0x00000015,0x00000000,0x00000013,0x00030037,0x0000000d,0x00000014,0x000200f8, + 0x00000016,0x0004003d,0x00000008,0x000000b6,0x00000014,0x00060050,0x00000012,0x000000b7, + 0x000000b6,0x000000b6,0x000000b6,0x000200fe,0x000000b7,0x00010038,0x00050036,0x00000008, + 0x00000019,0x00000000,0x00000017,0x00030037,0x0000000d,0x00000018,0x000200f8,0x0000001a, + 0x0004003d,0x00000008,0x000000ba,0x00000018,0x0008000c,0x00000008,0x000000bc,0x00000001, + 0x0000002b,0x000000ba,0x000000b1,0x000000bb,0x000200fe,0x000000bc,0x00010038,0x00050036, + 0x00000012,0x0000001e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x000200f8, + 0x0000001f,0x0004003b,0x0000000d,0x000000c0,0x00000007,0x0004003b,0x0000000d,0x000000c2, + 0x00000007,0x0004003d,0x00000012,0x000000bf,0x0000001d,0x0003003e,0x000000c0,0x000000b1, + 0x00050039,0x00000012,0x000000c1,0x00000015,0x000000c0,0x0003003e,0x000000c2,0x000000bb, + 0x00050039,0x00000012,0x000000c3,0x00000015,0x000000c2,0x0008000c,0x00000012,0x000000c4, + 0x00000001,0x0000002b,0x000000bf,0x000000c1,0x000000c3,0x000200fe,0x000000c4,0x00010038, + 0x00050036,0x00000020,0x00000024,0x00000000,0x00000022,0x00030037,0x00000021,0x00000023, + 0x000200f8,0x00000025,0x0004003d,0x00000020,0x000000c7,0x00000023,0x0006000c,0x00000020, + 0x000000c8,0x00000001,0x0000000a,0x000000c7,0x000200fe,0x000000c8,0x00010038,0x00050036, + 0x00000008,0x00000027,0x00000000,0x00000017,0x00030037,0x0000000d,0x00000026,0x000200f8, + 0x00000028,0x0004003d,0x00000008,0x000000cb,0x00000026,0x0006000c,0x00000008,0x000000cc, + 0x00000001,0x00000002,0x000000cb,0x000200fe,0x000000cc,0x00010038,0x00050036,0x00000008, + 0x0000002c,0x00000000,0x00000029,0x00030037,0x0000000d,0x0000002a,0x00030037,0x0000000d, + 0x0000002b,0x000200f8,0x0000002d,0x0004003d,0x00000008,0x000000cf,0x0000002a,0x0004003d, + 0x00000008,0x000000d0,0x0000002b,0x0007000c,0x00000008,0x000000d1,0x00000001,0x00000025, + 0x000000cf,0x000000d0,0x000200fe,0x000000d1,0x00010038,0x00050036,0x00000008,0x00000030, + 0x00000000,0x00000029,0x00030037,0x0000000d,0x0000002e,0x00030037,0x0000000d,0x0000002f, + 0x000200f8,0x00000031,0x0004003d,0x00000008,0x000000d4,0x0000002e,0x0004003d,0x00000008, + 0x000000d5,0x0000002f,0x0007000c,0x00000008,0x000000d6,0x00000001,0x00000028,0x000000d4, + 0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000008,0x00000034,0x00000000, + 0x00000029,0x00030037,0x0000000d,0x00000032,0x00030037,0x0000000d,0x00000033,0x000200f8, + 0x00000035,0x0004003d,0x00000008,0x000000d9,0x00000032,0x0004003d,0x00000008,0x000000da, + 0x00000033,0x0007000c,0x00000008,0x000000db,0x00000001,0x0000001a,0x000000d9,0x000000da, + 0x000200fe,0x000000db,0x00010038,0x00050036,0x00000012,0x0000003a,0x00000000,0x00000036, + 0x00030037,0x0000001b,0x00000037,0x00030037,0x0000001b,0x00000038,0x00030037,0x0000001b, + 0x00000039,0x000200f8,0x0000003b,0x0004003b,0x0000001b,0x000000de,0x00000007,0x0004003d, + 0x00000012,0x000000df,0x00000037,0x0004007f,0x00000012,0x000000e0,0x000000df,0x0004003d, + 0x00000012,0x000000e1,0x00000039,0x00050085,0x00000012,0x000000e2,0x000000e0,0x000000e1, + 0x0004003d,0x00000012,0x000000e3,0x00000039,0x00050081,0x00000012,0x000000e4,0x000000e2, + 0x000000e3,0x0003003e,0x000000de,0x000000e4,0x0004003d,0x00000012,0x000000e5,0x00000037, + 0x0004003d,0x00000012,0x000000e6,0x00000038,0x00050085,0x00000012,0x000000e7,0x000000e5, + 0x000000e6,0x0004003d,0x00000012,0x000000e8,0x000000de,0x00050081,0x00000012,0x000000e9, + 0x000000e7,0x000000e8,0x000200fe,0x000000e9,0x00010038,0x00050036,0x00000012,0x0000003d, + 0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000003c,0x000200f8,0x0000003e,0x0004003b, + 0x00000007,0x000000ee,0x00000007,0x0004003b,0x0000000d,0x000000f0,0x00000007,0x0004003b, + 0x0000001b,0x000000f3,0x00000007,0x0004003d,0x00000012,0x000000ec,0x0000003c,0x0003003e, + 0x000000ee,0x000000ed,0x00050039,0x00000008,0x000000ef,0x0000000b,0x000000ee,0x0003003e, + 0x000000f0,0x000000ef,0x00050039,0x00000012,0x000000f1,0x00000015,0x000000f0,0x00050085, + 0x00000012,0x000000f2,0x000000ec,0x000000f1,0x0003003e,0x000000f3,0x000000f2,0x00050039, + 0x00000012,0x000000f4,0x0000001e,0x000000f3,0x000200fe,0x000000f4,0x00010038,0x00050036, + 0x00000012,0x00000040,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000003f,0x000200f8, + 0x00000041,0x0004003b,0x0000001b,0x000000f7,0x00000007,0x0004003b,0x0000000d,0x000000fa, + 0x00000007,0x0004003b,0x0000000d,0x000000ff,0x00000007,0x0004003b,0x0000001b,0x00000102, + 0x00000007,0x0004003b,0x0000000d,0x00000105,0x00000007,0x0004003b,0x0000000d,0x00000108, + 0x00000007,0x0004003b,0x0000000d,0x0000010f,0x00000007,0x0004003d,0x00000012,0x000000f8, + 0x0000003f,0x0003003e,0x000000fa,0x000000f9,0x00050039,0x00000012,0x000000fb,0x00000015, + 0x000000fa,0x0007000c,0x00000012,0x000000fc,0x00000001,0x0000001a,0x000000f8,0x000000fb, + 0x0003003e,0x000000f7,0x000000fc,0x0004003d,0x00000012,0x000000fd,0x000000f7,0x0003003e, + 0x000000ff,0x000000fe,0x00050039,0x00000012,0x00000100,0x00000015,0x000000ff,0x00050083, + 0x00000012,0x00000101,0x000000fd,0x00000100,0x0003003e,0x00000102,0x00000101,0x00050039, + 0x00000012,0x00000103,0x0000001e,0x00000102,0x0003003e,0x00000105,0x00000104,0x00050039, + 0x00000012,0x00000106,0x00000015,0x00000105,0x0003003e,0x00000108,0x00000107,0x00050039, + 0x00000012,0x00000109,0x00000015,0x00000108,0x0004003d,0x00000012,0x0000010a,0x000000f7, + 0x00050085,0x00000012,0x0000010b,0x00000109,0x0000010a,0x00050083,0x00000012,0x0000010c, + 0x00000106,0x0000010b,0x00050088,0x00000012,0x0000010d,0x00000103,0x0000010c,0x0003003e, + 0x0000010f,0x0000010e,0x00050039,0x00000012,0x00000110,0x00000015,0x0000010f,0x0007000c, + 0x00000012,0x00000111,0x00000001,0x0000001a,0x0000010d,0x00000110,0x000200fe,0x00000111, + 0x00010038,0x00050036,0x00000012,0x00000043,0x00000000,0x0000001c,0x00030037,0x0000001b, + 0x00000042,0x000200f8,0x00000044,0x0004003b,0x0000001b,0x00000114,0x00000007,0x0004003b, + 0x00000021,0x00000119,0x00000007,0x0004003b,0x0000001b,0x00000121,0x00000007,0x0004003b, + 0x0000001b,0x00000131,0x00000007,0x0004003b,0x0000001b,0x00000132,0x00000007,0x0004003b, + 0x0000001b,0x00000133,0x00000007,0x0003003e,0x00000114,0x00000118,0x0003003e,0x00000119, + 0x0000011c,0x0004003d,0x00000012,0x0000011d,0x00000042,0x0004003d,0x00000012,0x0000011e, + 0x00000114,0x0008004f,0x00000012,0x0000011f,0x0000011e,0x0000011e,0x00000000,0x00000000, + 0x00000000,0x00050083,0x00000012,0x00000120,0x0000011d,0x0000011f,0x0003003e,0x00000121, + 0x00000120,0x00050039,0x00000012,0x00000122,0x0000003d,0x00000121,0x0004003d,0x00000012, + 0x00000123,0x00000042,0x0004003d,0x00000012,0x00000124,0x00000114,0x0008004f,0x00000012, + 0x00000125,0x00000124,0x00000124,0x00000001,0x00000001,0x00000001,0x00050085,0x00000012, + 0x00000126,0x00000123,0x00000125,0x0004003d,0x00000012,0x00000127,0x00000042,0x0004003d, + 0x00000020,0x00000128,0x00000119,0x0008004f,0x00000012,0x00000129,0x00000128,0x00000128, + 0x00000000,0x00000000,0x00000000,0x00050085,0x00000012,0x0000012a,0x00000127,0x00000129, + 0x0004003d,0x00000020,0x0000012b,0x00000119,0x0008004f,0x00000012,0x0000012c,0x0000012b, + 0x0000012b,0x00000001,0x00000001,0x00000001,0x00050081,0x00000012,0x0000012d,0x0000012a, + 0x0000012c,0x0004003d,0x00000012,0x0000012e,0x00000114,0x0008004f,0x00000012,0x0000012f, + 0x0000012e,0x0000012e,0x00000002,0x00000002,0x00000002,0x0007000c,0x00000012,0x00000130, + 0x00000001,0x0000001a,0x0000012d,0x0000012f,0x0003003e,0x00000131,0x00000122,0x0003003e, + 0x00000132,0x00000126,0x0003003e,0x00000133,0x00000130,0x00070039,0x00000012,0x00000134, + 0x0000003a,0x00000131,0x00000132,0x00000133,0x000200fe,0x00000134,0x00010038,0x00050036, + 0x00000046,0x00000048,0x00000000,0x00000047,0x000200f8,0x00000049,0x00050041,0x0000013c, + 0x0000013d,0x0000013a,0x0000013b,0x0004003d,0x00000046,0x0000013e,0x0000013d,0x000200fe, + 0x0000013e,0x00010038,0x00050036,0x00000046,0x0000004a,0x00000000,0x00000047,0x000200f8, + 0x0000004b,0x0004003b,0x00000060,0x00000141,0x00000007,0x00050041,0x00000143,0x00000144, + 0x0000013a,0x00000142,0x0004003d,0x00000020,0x00000145,0x00000144,0x00050050,0x00000020, + 0x00000146,0x000000bb,0x000000bb,0x00050088,0x00000020,0x00000147,0x00000146,0x00000145, + 0x00050041,0x00000149,0x0000014a,0x0000013a,0x00000148,0x0004003d,0x00000045,0x0000014b, + 0x0000014a,0x00050050,0x00000046,0x0000014c,0x0000014b,0x0000014b,0x0004006f,0x00000020, + 0x0000014d,0x0000014c,0x00050088,0x00000020,0x0000014e,0x00000147,0x0000014d,0x0004006e, + 0x00000046,0x0000014f,0x0000014e,0x0003003e,0x00000141,0x0000014f,0x0004003d,0x00000046, + 0x00000150,0x00000141,0x000200fe,0x00000150,0x00010038,0x00050036,0x00000046,0x0000004c, + 0x00000000,0x00000047,0x000200f8,0x0000004d,0x00040039,0x00000046,0x00000153,0x0000004a, + 0x00050050,0x00000046,0x00000155,0x00000154,0x00000154,0x00050084,0x00000046,0x00000156, + 0x00000153,0x00000155,0x000200fe,0x00000156,0x00010038,0x00050036,0x00000020,0x0000004f, + 0x00000000,0x0000004e,0x000200f8,0x00000050,0x00050041,0x00000143,0x00000159,0x0000013a, + 0x00000142,0x0004003d,0x00000020,0x0000015a,0x00000159,0x000200fe,0x0000015a,0x00010038, + 0x00050036,0x00000006,0x00000052,0x00000000,0x00000051,0x000200f8,0x00000053,0x00050041, + 0x0000015e,0x0000015f,0x0000013a,0x0000015d,0x0004003d,0x00000006,0x00000160,0x0000015f, + 0x000200fe,0x00000160,0x00010038,0x00050036,0x00000008,0x00000055,0x00000000,0x00000054, + 0x000200f8,0x00000056,0x00060041,0x00000165,0x00000166,0x0000013a,0x00000163,0x00000164, + 0x0004003d,0x00000008,0x00000167,0x00000166,0x000200fe,0x00000167,0x00010038,0x00050036, + 0x00000008,0x00000057,0x00000000,0x00000054,0x000200f8,0x00000058,0x00060041,0x00000165, + 0x0000016b,0x0000013a,0x00000163,0x0000016a,0x0004003d,0x00000008,0x0000016c,0x0000016b, + 0x000200fe,0x0000016c,0x00010038,0x00050036,0x00000012,0x0000005b,0x00000000,0x00000059, + 0x00030037,0x00000021,0x0000005a,0x000200f8,0x0000005c,0x0004003d,0x0000016f,0x00000172, + 0x00000171,0x0004003d,0x00000173,0x00000176,0x00000175,0x00050056,0x00000177,0x00000178, + 0x00000172,0x00000176,0x0004003d,0x00000020,0x00000179,0x0000005a,0x00070058,0x00000137, + 0x0000017a,0x00000178,0x00000179,0x00000002,0x000000b1,0x0008004f,0x00000012,0x0000017b, + 0x0000017a,0x0000017a,0x00000000,0x00000001,0x00000002,0x000200fe,0x0000017b,0x00010038, + 0x00050036,0x00000012,0x0000005e,0x00000000,0x00000059,0x00030037,0x00000021,0x0000005d, + 0x000200f8,0x0000005f,0x0004003d,0x0000016f,0x0000017f,0x0000017e,0x0004003d,0x00000173, + 0x00000180,0x00000175,0x00050056,0x00000177,0x00000181,0x0000017f,0x00000180,0x0004003d, + 0x00000020,0x00000182,0x0000005d,0x00070058,0x00000137,0x00000183,0x00000181,0x00000182, + 0x00000002,0x000000b1,0x0008004f,0x00000012,0x00000184,0x00000183,0x00000183,0x00000000, + 0x00000001,0x00000002,0x000200fe,0x00000184,0x00010038,0x00050036,0x00000020,0x00000063, + 0x00000000,0x00000061,0x00030037,0x00000060,0x00000062,0x000200f8,0x00000064,0x0004003d, + 0x00000187,0x0000018a,0x00000189,0x0004003d,0x00000046,0x0000018b,0x00000062,0x0007005f, + 0x0000018d,0x0000018e,0x0000018a,0x0000018b,0x00000002,0x0000018c,0x0007004f,0x00000046, + 0x0000018f,0x0000018e,0x0000018e,0x00000000,0x00000001,0x0004006f,0x00000020,0x00000190, + 0x0000018f,0x00040039,0x00000020,0x00000191,0x0000004f,0x00050085,0x00000020,0x00000192, + 0x00000190,0x00000191,0x000200fe,0x00000192,0x00010038,0x00050036,0x00000008,0x00000067, + 0x00000000,0x00000065,0x00030037,0x00000060,0x00000066,0x000200f8,0x00000068,0x0004003d, + 0x00000195,0x00000198,0x00000197,0x0004003d,0x00000046,0x00000199,0x00000066,0x0007005f, + 0x0000019a,0x0000019b,0x00000198,0x00000199,0x00000002,0x0000018c,0x00050051,0x00000006, + 0x0000019c,0x0000019b,0x00000001,0x00040070,0x00000008,0x0000019d,0x0000019c,0x000200fe, + 0x0000019d,0x00010038,0x00050036,0x00000002,0x0000006e,0x00000000,0x0000006b,0x00030037, + 0x00000060,0x0000006c,0x00030037,0x0000006a,0x0000006d,0x000200f8,0x0000006f,0x0004003d, + 0x00000046,0x000001a3,0x0000006c,0x00050041,0x00000007,0x000001a4,0x0000006d,0x00000164, + 0x0004003d,0x00000006,0x000001a5,0x000001a4,0x0006003c,0x000001a6,0x000001a7,0x000001a2, + 0x000001a3,0x00000164,0x000700ef,0x00000006,0x000001a8,0x000001a7,0x0000016a,0x00000164, + 0x000001a5,0x0004003d,0x00000046,0x000001aa,0x0000006c,0x00050041,0x00000007,0x000001ab, + 0x0000006d,0x0000016a,0x0004003d,0x00000006,0x000001ac,0x000001ab,0x0006003c,0x000001a6, + 0x000001ad,0x000001a9,0x000001aa,0x00000164,0x000700ef,0x00000006,0x000001ae,0x000001ad, + 0x0000016a,0x00000164,0x000001ac,0x000100fd,0x00010038,0x00050036,0x00000008,0x00000072, + 0x00000000,0x00000070,0x00030037,0x0000001b,0x00000071,0x000200f8,0x00000073,0x0004003d, + 0x00000012,0x000001af,0x00000071,0x00050094,0x00000008,0x000001b4,0x000001af,0x000001b3, + 0x000200fe,0x000001b4,0x00010038,0x00050036,0x00000008,0x00000075,0x00000000,0x00000070, + 0x00030037,0x0000001b,0x00000074,0x000200f8,0x00000076,0x0004003b,0x0000000d,0x000001b7, + 0x00000007,0x00050041,0x0000000d,0x000001b9,0x00000074,0x00000164,0x0004003d,0x00000008, + 0x000001ba,0x000001b9,0x00050085,0x00000008,0x000001bb,0x000001b8,0x000001ba,0x00050041, + 0x0000000d,0x000001bd,0x00000074,0x0000016a,0x0004003d,0x00000008,0x000001be,0x000001bd, + 0x00050085,0x00000008,0x000001bf,0x000001bc,0x000001be,0x00050081,0x00000008,0x000001c0, + 0x000001bb,0x000001bf,0x00050041,0x0000000d,0x000001c3,0x00000074,0x000001c2,0x0004003d, + 0x00000008,0x000001c4,0x000001c3,0x00050085,0x00000008,0x000001c5,0x000001c1,0x000001c4, + 0x00050081,0x00000008,0x000001c6,0x000001c0,0x000001c5,0x0003003e,0x000001b7,0x000001c6, + 0x0004003d,0x00000008,0x000001c7,0x000001b7,0x000200fe,0x000001c7,0x00010038,0x00050036, + 0x00000012,0x0000007b,0x00000000,0x00000077,0x00030037,0x0000001b,0x00000078,0x00030037, + 0x0000000d,0x00000079,0x00030037,0x0000000d,0x0000007a,0x000200f8,0x0000007c,0x0004003b, + 0x0000001b,0x000001ca,0x00000007,0x0004003b,0x0000000d,0x000001cf,0x00000007,0x0004003b, + 0x0000000d,0x000001d7,0x00000007,0x0004003d,0x00000012,0x000001cb,0x00000078,0x0004003d, + 0x00000008,0x000001cc,0x00000079,0x00050088,0x00000008,0x000001ce,0x000001cc,0x000001cd, + 0x0003003e,0x000001cf,0x000001ce,0x00050039,0x00000012,0x000001d0,0x00000015,0x000001cf, + 0x00050083,0x00000012,0x000001d1,0x000001cb,0x000001d0,0x0003003e,0x000001ca,0x000001d1, + 0x0004003d,0x00000012,0x000001d2,0x000001ca,0x0004003d,0x00000008,0x000001d3,0x0000007a, + 0x0004003d,0x00000008,0x000001d4,0x00000079,0x00050083,0x00000008,0x000001d5,0x000001d3, + 0x000001d4,0x00050088,0x00000008,0x000001d6,0x000001d5,0x000001cd,0x0003003e,0x000001d7, + 0x000001d6,0x00050039,0x00000012,0x000001d8,0x00000015,0x000001d7,0x00050088,0x00000012, + 0x000001d9,0x000001d2,0x000001d8,0x000200fe,0x000001d9,0x00010038,0x00050036,0x00000012, + 0x0000007e,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000007d,0x000200f8,0x0000007f, + 0x0004003b,0x0000001b,0x000001e1,0x00000007,0x0004003b,0x0000001b,0x000001e2,0x00000007, + 0x0004003b,0x0000001b,0x000001e6,0x00000007,0x0004003b,0x0000001b,0x000001f0,0x00000007, + 0x0004003b,0x0000000d,0x000001f2,0x00000007,0x0004003b,0x0000000d,0x000001f3,0x00000007, + 0x00040039,0x00000006,0x000001dc,0x00000052,0x000300f7,0x000001e0,0x00000000,0x000900fb, + 0x000001dc,0x000001e0,0x00000000,0x000001dd,0x00000001,0x000001de,0x00000002,0x000001df, + 0x000200f8,0x000001dd,0x0004003d,0x00000012,0x000001e3,0x0000007d,0x0003003e,0x000001e2, + 0x000001e3,0x00050039,0x00000012,0x000001e4,0x00000043,0x000001e2,0x0003003e,0x000001e1, + 0x000001e4,0x000200f9,0x000001e0,0x000200f8,0x000001de,0x0004003d,0x00000012,0x000001e7, + 0x0000007d,0x0003003e,0x000001e6,0x000001e7,0x00050039,0x00000012,0x000001e8,0x00000040, + 0x000001e6,0x00040039,0x00000008,0x000001ea,0x00000057,0x00050088,0x00000008,0x000001eb, + 0x000001e9,0x000001ea,0x0005008e,0x00000012,0x000001ec,0x000001e8,0x000001eb,0x0003003e, + 0x000001e1,0x000001ec,0x000200f9,0x000001e0,0x000200f8,0x000001df,0x00040039,0x00000008, + 0x000001ee,0x00000055,0x00040039,0x00000008,0x000001ef,0x00000057,0x0004003d,0x00000012, + 0x000001f1,0x0000007d,0x0003003e,0x000001f0,0x000001f1,0x0003003e,0x000001f2,0x000001ee, + 0x0003003e,0x000001f3,0x000001ef,0x00070039,0x00000012,0x000001f4,0x0000007b,0x000001f0, + 0x000001f2,0x000001f3,0x0003003e,0x000001e1,0x000001f4,0x000200f9,0x000001e0,0x000200f8, + 0x000001e0,0x0004003d,0x00000012,0x000001f7,0x000001e1,0x000200fe,0x000001f7,0x00010038, + 0x00050036,0x00000008,0x00000081,0x00000000,0x00000070,0x00030037,0x0000001b,0x00000080, + 0x000200f8,0x00000082,0x0004003b,0x0000000d,0x000001fa,0x00000007,0x0004003b,0x0000001b, + 0x00000200,0x00000007,0x0004003b,0x0000001b,0x00000203,0x00000007,0x0004003b,0x0000001b, + 0x00000206,0x00000007,0x0004003b,0x0000001b,0x00000209,0x00000007,0x0004003b,0x0000001b, + 0x0000020c,0x00000007,0x0004003b,0x0000001b,0x0000020f,0x00000007,0x0003003e,0x000001fa, + 0x000000b1,0x00040039,0x00000006,0x000001fb,0x00000052,0x000300f7,0x000001ff,0x00000000, + 0x000900fb,0x000001fb,0x000001ff,0x00000000,0x000001fc,0x00000001,0x000001fd,0x00000002, + 0x000001fe,0x000200f8,0x000001fc,0x0004003d,0x00000012,0x00000201,0x00000080,0x0003003e, + 0x00000200,0x00000201,0x00050039,0x00000012,0x00000202,0x0000007e,0x00000200,0x0003003e, + 0x00000203,0x00000202,0x00050039,0x00000008,0x00000204,0x00000072,0x00000203,0x0003003e, + 0x000001fa,0x00000204,0x000200f9,0x000001ff,0x000200f8,0x000001fd,0x0004003d,0x00000012, + 0x00000207,0x00000080,0x0003003e,0x00000206,0x00000207,0x00050039,0x00000012,0x00000208, + 0x0000007e,0x00000206,0x0003003e,0x00000209,0x00000208,0x00050039,0x00000008,0x0000020a, + 0x00000075,0x00000209,0x0003003e,0x000001fa,0x0000020a,0x000200f9,0x000001ff,0x000200f8, + 0x000001fe,0x0004003d,0x00000012,0x0000020d,0x00000080,0x0003003e,0x0000020c,0x0000020d, + 0x00050039,0x00000012,0x0000020e,0x0000007e,0x0000020c,0x0003003e,0x0000020f,0x0000020e, + 0x00050039,0x00000008,0x00000210,0x00000072,0x0000020f,0x0003003e,0x000001fa,0x00000210, + 0x000200f9,0x000001ff,0x000200f8,0x000001ff,0x0004003d,0x00000008,0x00000213,0x000001fa, + 0x000200fe,0x00000213,0x00010038,0x00050036,0x00000086,0x0000008a,0x00000000,0x00000087, + 0x00030037,0x00000021,0x00000088,0x00030037,0x00000060,0x00000089,0x000200f8,0x0000008b, + 0x0004003b,0x00000021,0x00000216,0x00000007,0x0004003b,0x0000021e,0x0000021f,0x00000007, + 0x0004003b,0x00000021,0x00000225,0x00000007,0x0004003b,0x00000021,0x00000226,0x00000007, + 0x0004003d,0x00000020,0x00000217,0x00000088,0x0004003d,0x00000046,0x00000218,0x00000089, + 0x0004006f,0x00000020,0x00000219,0x00000218,0x00050085,0x00000020,0x0000021a,0x00000217, + 0x00000219,0x00050083,0x00000020,0x0000021d,0x0000021a,0x0000021c,0x0003003e,0x00000216, + 0x0000021d,0x0004003d,0x00000020,0x00000221,0x00000216,0x0006000c,0x00000020,0x00000222, + 0x00000001,0x00000008,0x00000221,0x0004006e,0x00000046,0x00000223,0x00000222,0x00050041, + 0x00000060,0x00000224,0x0000021f,0x00000220,0x0003003e,0x00000224,0x00000223,0x0004003d, + 0x00000020,0x00000227,0x00000216,0x0003003e,0x00000226,0x00000227,0x00050039,0x00000020, + 0x00000228,0x00000024,0x00000226,0x0003003e,0x00000225,0x00000228,0x00060041,0x00000060, + 0x0000022a,0x0000021f,0x0000018c,0x0000018c,0x0003003e,0x0000022a,0x00000229,0x00060041, + 0x00000060,0x0000022c,0x0000021f,0x0000018c,0x00000154,0x0003003e,0x0000022c,0x0000022b, + 0x00060041,0x00000060,0x0000022e,0x0000021f,0x0000018c,0x00000220,0x0003003e,0x0000022e, + 0x0000022d,0x00060041,0x00000060,0x00000231,0x0000021f,0x0000018c,0x0000022f,0x0003003e, + 0x00000231,0x00000230,0x00050041,0x0000000d,0x00000232,0x00000225,0x00000164,0x0004003d, + 0x00000008,0x00000233,0x00000232,0x00050083,0x00000008,0x00000234,0x000000bb,0x00000233, + 0x00050041,0x0000000d,0x00000235,0x00000225,0x0000016a,0x0004003d,0x00000008,0x00000236, + 0x00000235,0x00050083,0x00000008,0x00000237,0x000000bb,0x00000236,0x00050085,0x00000008, + 0x00000238,0x00000234,0x00000237,0x00060041,0x0000000d,0x00000239,0x0000021f,0x00000154, + 0x0000018c,0x0003003e,0x00000239,0x00000238,0x00050041,0x0000000d,0x0000023a,0x00000225, + 0x00000164,0x0004003d,0x00000008,0x0000023b,0x0000023a,0x00050041,0x0000000d,0x0000023c, + 0x00000225,0x0000016a,0x0004003d,0x00000008,0x0000023d,0x0000023c,0x00050083,0x00000008, + 0x0000023e,0x000000bb,0x0000023d,0x00050085,0x00000008,0x0000023f,0x0000023b,0x0000023e, + 0x00060041,0x0000000d,0x00000240,0x0000021f,0x00000154,0x00000154,0x0003003e,0x00000240, + 0x0000023f,0x00050041,0x0000000d,0x00000241,0x00000225,0x00000164,0x0004003d,0x00000008, + 0x00000242,0x00000241,0x00050083,0x00000008,0x00000243,0x000000bb,0x00000242,0x00050041, + 0x0000000d,0x00000244,0x00000225,0x0000016a,0x0004003d,0x00000008,0x00000245,0x00000244, + 0x00050085,0x00000008,0x00000246,0x00000243,0x00000245,0x00060041,0x0000000d,0x00000247, + 0x0000021f,0x00000154,0x00000220,0x0003003e,0x00000247,0x00000246,0x00050041,0x0000000d, + 0x00000248,0x00000225,0x00000164,0x0004003d,0x00000008,0x00000249,0x00000248,0x00050041, + 0x0000000d,0x0000024a,0x00000225,0x0000016a,0x0004003d,0x00000008,0x0000024b,0x0000024a, + 0x00050085,0x00000008,0x0000024c,0x00000249,0x0000024b,0x00060041,0x0000000d,0x0000024d, + 0x0000021f,0x00000154,0x0000022f,0x0003003e,0x0000024d,0x0000024c,0x0004003d,0x00000086, + 0x0000024e,0x0000021f,0x000200fe,0x0000024e,0x00010038,0x00050036,0x0000008c,0x00000090, + 0x00000000,0x0000008d,0x00030037,0x00000060,0x0000008e,0x00030037,0x00000060,0x0000008f, + 0x000200f8,0x00000091,0x0004003d,0x00000046,0x00000251,0x0000008e,0x0004007c,0x00000069, + 0x00000252,0x00000251,0x0004003d,0x00000046,0x00000253,0x0000008f,0x0004007c,0x00000069, + 0x00000254,0x00000253,0x000500b0,0x00000255,0x00000256,0x00000252,0x00000254,0x0004009b, + 0x0000008c,0x00000257,0x00000256,0x000200fe,0x00000257,0x00010038,0x00050036,0x0000008c, + 0x00000094,0x00000000,0x00000092,0x00030037,0x00000021,0x00000093,0x000200f8,0x00000095, + 0x00050041,0x0000000d,0x0000025a,0x00000093,0x00000164,0x0004003d,0x00000008,0x0000025b, + 0x0000025a,0x000500ba,0x0000008c,0x0000025c,0x0000025b,0x000000b1,0x000300f7,0x0000025e, + 0x00000000,0x000400fa,0x0000025c,0x0000025d,0x0000025e,0x000200f8,0x0000025d,0x00050041, + 0x0000000d,0x0000025f,0x00000093,0x00000164,0x0004003d,0x00000008,0x00000260,0x0000025f, + 0x000500b8,0x0000008c,0x00000261,0x00000260,0x000000bb,0x000200f9,0x0000025e,0x000200f8, + 0x0000025e,0x000700f5,0x0000008c,0x00000262,0x0000025c,0x00000095,0x00000261,0x0000025d, + 0x000300f7,0x00000264,0x00000000,0x000400fa,0x00000262,0x00000263,0x00000264,0x000200f8, + 0x00000263,0x00050041,0x0000000d,0x00000265,0x00000093,0x0000016a,0x0004003d,0x00000008, + 0x00000266,0x00000265,0x000500ba,0x0000008c,0x00000267,0x00000266,0x000000b1,0x000300f7, + 0x00000269,0x00000000,0x000400fa,0x00000267,0x00000268,0x00000269,0x000200f8,0x00000268, + 0x00050041,0x0000000d,0x0000026a,0x00000093,0x0000016a,0x0004003d,0x00000008,0x0000026b, + 0x0000026a,0x000500b8,0x0000008c,0x0000026c,0x0000026b,0x000000bb,0x000200f9,0x00000269, + 0x000200f8,0x00000269,0x000700f5,0x0000008c,0x0000026d,0x00000267,0x00000263,0x0000026c, + 0x00000268,0x000200f9,0x00000264,0x000200f8,0x00000264,0x000700f5,0x0000008c,0x0000026e, + 0x00000262,0x0000025e,0x0000026d,0x00000269,0x000200fe,0x0000026e,0x00010038,0x00050036, + 0x00000008,0x00000099,0x00000000,0x00000096,0x00030037,0x00000008,0x00000097,0x00030037, + 0x00000008,0x00000098,0x000200f8,0x0000009a,0x0004003b,0x0000000d,0x00000271,0x00000007, + 0x0004003b,0x0000000d,0x00000272,0x00000007,0x0004003b,0x0000000d,0x00000273,0x00000007, + 0x0004003b,0x0000000d,0x00000277,0x00000007,0x0004003b,0x0000000d,0x0000027a,0x00000007, + 0x0004003b,0x0000000d,0x0000027b,0x00000007,0x0003003e,0x00000272,0x00000097,0x0003003e, + 0x00000273,0x00000098,0x00060039,0x00000008,0x00000274,0x00000030,0x00000272,0x00000273, + 0x0003003e,0x00000271,0x00000274,0x0004003d,0x00000008,0x00000275,0x00000271,0x000500b7, + 0x0000008c,0x00000276,0x00000275,0x000000b1,0x000300f7,0x00000279,0x00000000,0x000400fa, + 0x00000276,0x00000278,0x0000027f,0x000200f8,0x00000278,0x0003003e,0x0000027a,0x00000097, + 0x0003003e,0x0000027b,0x00000098,0x00060039,0x00000008,0x0000027c,0x0000002c,0x0000027a, + 0x0000027b,0x0004003d,0x00000008,0x0000027d,0x00000271,0x00050088,0x00000008,0x0000027e, + 0x0000027c,0x0000027d,0x0003003e,0x00000277,0x0000027e,0x000200f9,0x00000279,0x000200f8, + 0x0000027f,0x0003003e,0x00000277,0x000000b1,0x000200f9,0x00000279,0x000200f8,0x00000279, + 0x0004003d,0x00000008,0x00000280,0x00000277,0x000200fe,0x00000280,0x00010038,0x00050036, + 0x00000069,0x000000a1,0x00000000,0x0000009c,0x00030037,0x0000009b,0x0000009d,0x00030037, + 0x00000007,0x0000009e,0x00030037,0x00000007,0x0000009f,0x00030037,0x00000021,0x000000a0, + 0x000200f8,0x000000a2,0x0004003b,0x00000007,0x00000283,0x00000007,0x0004003b,0x00000007, + 0x00000294,0x00000007,0x0004003b,0x0000000d,0x00000296,0x00000007,0x0004003b,0x00000007, + 0x0000029b,0x00000007,0x0004003b,0x0000000d,0x0000029d,0x00000007,0x0004003d,0x0000008c, + 0x00000284,0x0000009d,0x000600a9,0x00000006,0x00000285,0x00000284,0x0000016a,0x00000164, + 0x00050084,0x00000006,0x00000287,0x00000285,0x00000286,0x0004003d,0x00000006,0x00000288, + 0x0000009e,0x000500c7,0x00000006,0x0000028a,0x00000288,0x00000289,0x000500c4,0x00000006, + 0x0000028c,0x0000028a,0x0000028b,0x000500c5,0x00000006,0x0000028d,0x00000287,0x0000028c, + 0x0004003d,0x00000006,0x0000028e,0x0000009f,0x000500c7,0x00000006,0x00000290,0x0000028e, + 0x0000028f,0x000500c4,0x00000006,0x00000292,0x00000290,0x00000291,0x000500c5,0x00000006, + 0x00000293,0x0000028d,0x00000292,0x0003003e,0x00000283,0x00000293,0x0004003d,0x00000006, + 0x00000295,0x00000283,0x00050041,0x0000000d,0x00000297,0x000000a0,0x00000164,0x0004003d, + 0x00000008,0x00000298,0x00000297,0x0003003e,0x00000296,0x00000298,0x00050039,0x00000006, + 0x00000299,0x00000010,0x00000296,0x000500c5,0x00000006,0x0000029a,0x00000295,0x00000299, + 0x0003003e,0x00000294,0x0000029a,0x0004003d,0x00000006,0x0000029c,0x00000283,0x00050041, + 0x0000000d,0x0000029e,0x000000a0,0x0000016a,0x0004003d,0x00000008,0x0000029f,0x0000029e, + 0x0003003e,0x0000029d,0x0000029f,0x00050039,0x00000006,0x000002a0,0x00000010,0x0000029d, + 0x000500c5,0x00000006,0x000002a1,0x0000029c,0x000002a0,0x0003003e,0x0000029b,0x000002a1, + 0x0004003d,0x00000006,0x000002a2,0x00000294,0x0004003d,0x00000006,0x000002a3,0x0000029b, + 0x00050050,0x00000069,0x000002a4,0x000002a2,0x000002a3,0x000200fe,0x000002a4,0x00010038, + 0x00050036,0x00000002,0x000000a6,0x00000000,0x000000a3,0x00030037,0x0000006a,0x000000a4, + 0x00030037,0x00000021,0x000000a5,0x000200f8,0x000000a7,0x0004003b,0x00000021,0x000002a7, + 0x00000007,0x0004003b,0x00000021,0x000002af,0x00000007,0x0004003b,0x0000001b,0x000002b2, + 0x00000007,0x0004003b,0x00000021,0x000002b6,0x00000007,0x0004003b,0x0000001b,0x000002b8, + 0x00000007,0x0004003b,0x00000021,0x000002b9,0x00000007,0x0004003b,0x0000000d,0x000002bc, + 0x00000007,0x0004003b,0x0000001b,0x000002be,0x00000007,0x0004003b,0x0000000d,0x000002c2, + 0x00000007,0x0004003b,0x0000001b,0x000002c3,0x00000007,0x0004003b,0x0000000d,0x000002c7, + 0x00000007,0x0004003b,0x00000007,0x000002cd,0x00000007,0x0004003b,0x0000000d,0x000002d8, + 0x00000007,0x0004003b,0x00000007,0x000002e2,0x00000007,0x0004003b,0x0000000d,0x000002e6, + 0x00000007,0x0004003b,0x0000000d,0x000002e7,0x00000007,0x0004003b,0x0000000d,0x000002eb, + 0x00000007,0x0004003b,0x00000021,0x000002f1,0x00000007,0x0004003b,0x0000006a,0x000002f5, + 0x00000007,0x0004003b,0x0000009b,0x000002f7,0x00000007,0x0004003b,0x00000007,0x000002f8, + 0x00000007,0x0004003b,0x00000007,0x000002fa,0x00000007,0x0004003b,0x00000021,0x000002fc, + 0x00000007,0x0004003b,0x0000021e,0x000002ff,0x00000007,0x0004003b,0x00000021,0x00000304, + 0x00000007,0x0004003b,0x00000060,0x00000305,0x00000007,0x0004003b,0x00000307,0x00000308, + 0x00000007,0x0004003b,0x00000060,0x00000311,0x00000007,0x0004003b,0x00000060,0x00000315, + 0x00000007,0x0004003b,0x00000060,0x0000031b,0x00000007,0x0004003b,0x00000060,0x0000031d, + 0x00000007,0x0004003b,0x00000060,0x00000321,0x00000007,0x0004003b,0x0000006a,0x00000323, + 0x00000007,0x0004003d,0x00000069,0x000002a8,0x000000a4,0x00040070,0x00000020,0x000002a9, + 0x000002a8,0x00050050,0x00000020,0x000002aa,0x0000021b,0x0000021b,0x00050081,0x00000020, + 0x000002ab,0x000002a9,0x000002aa,0x00040039,0x00000046,0x000002ac,0x0000004c,0x0004006f, + 0x00000020,0x000002ad,0x000002ac,0x00050088,0x00000020,0x000002ae,0x000002ab,0x000002ad, + 0x0003003e,0x000002a7,0x000002ae,0x0004003d,0x00000020,0x000002b0,0x000000a5,0x0005008e, + 0x00000020,0x000002b1,0x000002b0,0x0000021b,0x0003003e,0x000002af,0x000002b1,0x0004003d, + 0x00000020,0x000002b3,0x000002a7,0x0004003d,0x00000020,0x000002b4,0x000000a5,0x00050081, + 0x00000020,0x000002b5,0x000002b3,0x000002b4,0x0003003e,0x000002b6,0x000002b5,0x00050039, + 0x00000012,0x000002b7,0x0000005b,0x000002b6,0x0003003e,0x000002b2,0x000002b7,0x0004003d, + 0x00000020,0x000002ba,0x000002a7,0x0003003e,0x000002b9,0x000002ba,0x00050039,0x00000012, + 0x000002bb,0x0000005e,0x000002b9,0x0003003e,0x000002b8,0x000002bb,0x0004003d,0x00000012, + 0x000002bf,0x000002b2,0x0003003e,0x000002be,0x000002bf,0x00050039,0x00000008,0x000002c0, + 0x00000081,0x000002be,0x00050081,0x00000008,0x000002c1,0x000002bd,0x000002c0,0x0003003e, + 0x000002bc,0x000002c1,0x0004003d,0x00000012,0x000002c4,0x000002b8,0x0003003e,0x000002c3, + 0x000002c4,0x00050039,0x00000008,0x000002c5,0x00000081,0x000002c3,0x00050081,0x00000008, + 0x000002c6,0x000002bd,0x000002c5,0x0003003e,0x000002c2,0x000002c6,0x0004003d,0x00000020, + 0x000002c8,0x000000a5,0x00040039,0x00000046,0x000002c9,0x00000048,0x0004006f,0x00000020, + 0x000002ca,0x000002c9,0x00050085,0x00000020,0x000002cb,0x000002c8,0x000002ca,0x0006000c, + 0x00000008,0x000002cc,0x00000001,0x00000042,0x000002cb,0x0003003e,0x000002c7,0x000002cc, + 0x0004003d,0x00000008,0x000002ce,0x000002c7,0x000500ba,0x0000008c,0x000002cf,0x000002ce, + 0x000000bb,0x000600a9,0x00000006,0x000002d0,0x000002cf,0x0000016a,0x00000164,0x0004003d, + 0x00000008,0x000002d1,0x000002c7,0x00040039,0x00000046,0x000002d2,0x00000048,0x0004006f, + 0x00000020,0x000002d3,0x000002d2,0x0005008e,0x00000020,0x000002d5,0x000002d3,0x000002d4, + 0x0006000c,0x00000008,0x000002d6,0x00000001,0x00000042,0x000002d5,0x00050088,0x00000008, + 0x000002d7,0x000002d1,0x000002d6,0x0003003e,0x000002d8,0x000002d7,0x00050039,0x00000008, + 0x000002d9,0x00000019,0x000002d8,0x00050085,0x00000008,0x000002db,0x000002d9,0x000002da, + 0x0004006d,0x00000006,0x000002dc,0x000002db,0x00050084,0x00000006,0x000002dd,0x000002d0, + 0x000002dc,0x0003003e,0x000002cd,0x000002dd,0x0004003d,0x00000006,0x000002de,0x000002cd, + 0x000500ac,0x0000008c,0x000002df,0x000002de,0x00000164,0x000300f7,0x000002e1,0x00000000, + 0x000400fa,0x000002df,0x000002e0,0x000002e1,0x000200f8,0x000002e0,0x0004003d,0x00000008, + 0x000002e3,0x000002bc,0x0004003d,0x00000008,0x000002e4,0x000002c2,0x00060039,0x00000008, + 0x000002e5,0x00000099,0x000002e3,0x000002e4,0x0003003e,0x000002e6,0x000002e5,0x0003003e, + 0x000002e7,0x000000bb,0x00060039,0x00000008,0x000002e8,0x00000034,0x000002e6,0x000002e7, + 0x00050085,0x00000008,0x000002ea,0x000002e8,0x000002e9,0x0003003e,0x000002eb,0x000002ea, + 0x00050039,0x00000008,0x000002ec,0x00000027,0x000002eb,0x0004006d,0x00000006,0x000002ed, + 0x000002ec,0x0004003d,0x00000020,0x000002ee,0x000002a7,0x0004003d,0x00000020,0x000002ef, + 0x000000a5,0x00050081,0x00000020,0x000002f0,0x000002ee,0x000002ef,0x0003003e,0x000002f1, + 0x000002f0,0x00050039,0x0000008c,0x000002f2,0x00000094,0x000002f1,0x000600a9,0x00000006, + 0x000002f3,0x000002f2,0x0000016a,0x00000164,0x00050084,0x00000006,0x000002f4,0x000002ed, + 0x000002f3,0x0003003e,0x000002e2,0x000002f4,0x0003003e,0x000002f7,0x000002f6,0x0004003d, + 0x00000006,0x000002f9,0x000002cd,0x0003003e,0x000002f8,0x000002f9,0x0004003d,0x00000006, + 0x000002fb,0x000002e2,0x0003003e,0x000002fa,0x000002fb,0x0004003d,0x00000020,0x000002fd, + 0x000002af,0x0003003e,0x000002fc,0x000002fd,0x00080039,0x00000069,0x000002fe,0x000000a1, + 0x000002f7,0x000002f8,0x000002fa,0x000002fc,0x0003003e,0x000002f5,0x000002fe,0x0004003d, + 0x00000020,0x00000300,0x000002a7,0x0004003d,0x00000020,0x00000301,0x000002af,0x00050081, + 0x00000020,0x00000302,0x00000300,0x00000301,0x00040039,0x00000046,0x00000303,0x0000004c, + 0x0003003e,0x00000304,0x00000302,0x0003003e,0x00000305,0x00000303,0x00060039,0x00000086, + 0x00000306,0x0000008a,0x00000304,0x00000305,0x0003003e,0x000002ff,0x00000306,0x0003003e, + 0x00000308,0x0000018c,0x000200f9,0x00000309,0x000200f8,0x00000309,0x000400f6,0x0000030b, + 0x0000030c,0x00000000,0x000200f9,0x0000030d,0x000200f8,0x0000030d,0x0004003d,0x00000045, + 0x0000030e,0x00000308,0x000500b1,0x0000008c,0x00000310,0x0000030e,0x0000030f,0x000400fa, + 0x00000310,0x0000030a,0x0000030b,0x000200f8,0x0000030a,0x0004003d,0x00000045,0x00000312, + 0x00000308,0x00060041,0x00000060,0x00000313,0x000002ff,0x0000018c,0x00000312,0x0004003d, + 0x00000046,0x00000314,0x00000313,0x0003003e,0x00000311,0x00000314,0x00050041,0x00000060, + 0x00000316,0x000002ff,0x00000220,0x0004003d,0x00000046,0x00000317,0x00000316,0x0004003d, + 0x00000046,0x00000318,0x00000311,0x00050080,0x00000046,0x00000319,0x00000317,0x00000318, + 0x0003003e,0x00000315,0x00000319,0x00040039,0x00000046,0x0000031a,0x0000004c,0x0004003d, + 0x00000046,0x0000031c,0x00000315,0x0003003e,0x0000031b,0x0000031c,0x0003003e,0x0000031d, + 0x0000031a,0x00060039,0x0000008c,0x0000031e,0x00000090,0x0000031b,0x0000031d,0x000300f7, + 0x00000320,0x00000000,0x000400fa,0x0000031e,0x0000031f,0x00000320,0x000200f8,0x0000031f, + 0x0004003d,0x00000046,0x00000322,0x00000315,0x0003003e,0x00000321,0x00000322,0x0004003d, + 0x00000069,0x00000324,0x000002f5,0x0003003e,0x00000323,0x00000324,0x00060039,0x00000002, + 0x00000325,0x0000006e,0x00000321,0x00000323,0x000200f9,0x00000320,0x000200f8,0x00000320, + 0x000200f9,0x0000030c,0x000200f8,0x0000030c,0x0004003d,0x00000045,0x00000326,0x00000308, + 0x00050080,0x00000045,0x00000327,0x00000326,0x00000154,0x0003003e,0x00000308,0x00000327, + 0x000200f9,0x00000309,0x000200f8,0x0000030b,0x000200f9,0x000002e1,0x000200f8,0x000002e1, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000aa,0x00000000,0x000000a8,0x00030037, + 0x00000060,0x000000a9,0x000200f8,0x000000ab,0x0004003b,0x00000021,0x00000328,0x00000007, + 0x0004003b,0x00000021,0x0000032a,0x00000007,0x0004003b,0x00000307,0x0000032b,0x00000007, + 0x0004003b,0x0000000d,0x0000032c,0x00000007,0x0004003b,0x00000307,0x0000032d,0x00000007, + 0x0004003b,0x00000307,0x00000338,0x00000007,0x0004003b,0x00000060,0x00000343,0x00000007, + 0x0004003b,0x00000021,0x00000349,0x00000007,0x0004003b,0x00000060,0x0000034a,0x00000007, + 0x0004003b,0x0000000d,0x0000034d,0x00000007,0x0004003b,0x00000060,0x0000034e,0x00000007, + 0x0004003b,0x0000000d,0x00000351,0x00000007,0x0004003b,0x0000000d,0x00000352,0x00000007, + 0x0004003b,0x0000000d,0x00000354,0x00000007,0x0004003b,0x0000000d,0x0000035a,0x00000007, + 0x0004003b,0x0000000d,0x0000035e,0x00000007,0x0004003b,0x0000000d,0x0000035f,0x00000007, + 0x0004003b,0x0000000d,0x00000365,0x00000007,0x0004003b,0x00000307,0x00000377,0x00000007, + 0x0004003b,0x00000307,0x00000382,0x00000007,0x0004003b,0x00000060,0x0000038d,0x00000007, + 0x0004003b,0x00000021,0x00000393,0x00000007,0x0004003b,0x00000060,0x00000394,0x00000007, + 0x0004003b,0x0000000d,0x00000397,0x00000007,0x0004003b,0x00000060,0x00000398,0x00000007, + 0x0004003b,0x0000000d,0x0000039b,0x00000007,0x0004003b,0x0000000d,0x0000039c,0x00000007, + 0x0004003b,0x0000000d,0x0000039e,0x00000007,0x0004003b,0x0000000d,0x000003a4,0x00000007, + 0x0004003b,0x0000000d,0x000003a7,0x00000007,0x0004003b,0x0000000d,0x000003a8,0x00000007, + 0x0004003b,0x0000000d,0x000003ae,0x00000007,0x0004003b,0x0000000d,0x000003b3,0x00000007, + 0x0004003b,0x0000000d,0x000003b4,0x00000007,0x0004003b,0x0000000d,0x000003b6,0x00000007, + 0x0004003b,0x0000000d,0x000003b7,0x00000007,0x0004003b,0x0000006a,0x000003d1,0x00000007, + 0x0004003b,0x00000021,0x000003d2,0x00000007,0x0003003e,0x00000328,0x00000329,0x0003003e, + 0x0000032a,0x00000329,0x0003003e,0x0000032b,0x00000154,0x0003003e,0x0000032c,0x000000b1, + 0x0004003d,0x00000045,0x0000032e,0x0000032b,0x0004007e,0x00000045,0x0000032f,0x0000032e, + 0x0003003e,0x0000032d,0x0000032f,0x000200f9,0x00000330,0x000200f8,0x00000330,0x000400f6, + 0x00000332,0x00000333,0x00000000,0x000200f9,0x00000334,0x000200f8,0x00000334,0x0004003d, + 0x00000045,0x00000335,0x0000032d,0x0004003d,0x00000045,0x00000336,0x0000032b,0x000500b3, + 0x0000008c,0x00000337,0x00000335,0x00000336,0x000400fa,0x00000337,0x00000331,0x00000332, + 0x000200f8,0x00000331,0x0004003d,0x00000045,0x00000339,0x0000032b,0x0004007e,0x00000045, + 0x0000033a,0x00000339,0x0003003e,0x00000338,0x0000033a,0x000200f9,0x0000033b,0x000200f8, + 0x0000033b,0x000400f6,0x0000033d,0x0000033e,0x00000000,0x000200f9,0x0000033f,0x000200f8, + 0x0000033f,0x0004003d,0x00000045,0x00000340,0x00000338,0x0004003d,0x00000045,0x00000341, + 0x0000032b,0x000500b3,0x0000008c,0x00000342,0x00000340,0x00000341,0x000400fa,0x00000342, + 0x0000033c,0x0000033d,0x000200f8,0x0000033c,0x0004003d,0x00000046,0x00000344,0x000000a9, + 0x0004003d,0x00000045,0x00000345,0x00000338,0x0004003d,0x00000045,0x00000346,0x0000032d, + 0x00050050,0x00000046,0x00000347,0x00000345,0x00000346,0x00050080,0x00000046,0x00000348, + 0x00000344,0x00000347,0x0003003e,0x00000343,0x00000348,0x0004003d,0x00000046,0x0000034b, + 0x00000343,0x0003003e,0x0000034a,0x0000034b,0x00050039,0x00000020,0x0000034c,0x00000063, + 0x0000034a,0x0003003e,0x00000349,0x0000034c,0x0004003d,0x00000046,0x0000034f,0x00000343, + 0x0003003e,0x0000034e,0x0000034f,0x00050039,0x00000008,0x00000350,0x00000067,0x0000034e, + 0x0003003e,0x00000351,0x000002bd,0x0003003e,0x00000352,0x00000350,0x00060039,0x00000008, + 0x00000353,0x00000030,0x00000351,0x00000352,0x0003003e,0x0000034d,0x00000353,0x0004003d, + 0x00000020,0x00000355,0x00000349,0x00040039,0x00000046,0x00000356,0x00000048,0x0004006f, + 0x00000020,0x00000357,0x00000356,0x00050085,0x00000020,0x00000358,0x00000355,0x00000357, + 0x0006000c,0x00000008,0x00000359,0x00000001,0x00000042,0x00000358,0x0003003e,0x00000354, + 0x00000359,0x0004003d,0x00000008,0x0000035c,0x00000354,0x00050083,0x00000008,0x0000035d, + 0x0000035b,0x0000035c,0x0003003e,0x0000035e,0x000000b1,0x0003003e,0x0000035f,0x0000035d, + 0x00060039,0x00000008,0x00000360,0x00000030,0x0000035e,0x0000035f,0x0004003d,0x00000008, + 0x00000361,0x00000354,0x000500ba,0x0000008c,0x00000362,0x00000361,0x000000bb,0x000600a9, + 0x00000008,0x00000363,0x00000362,0x000000bb,0x000000b1,0x00050085,0x00000008,0x00000364, + 0x00000360,0x00000363,0x0003003e,0x0000035a,0x00000364,0x0004003d,0x00000008,0x00000366, + 0x0000035a,0x0003003e,0x00000365,0x00000366,0x0004003d,0x00000020,0x00000367,0x00000349, + 0x0004003d,0x00000008,0x00000368,0x00000365,0x0005008e,0x00000020,0x00000369,0x00000367, + 0x00000368,0x0004003d,0x00000020,0x0000036a,0x0000032a,0x00050081,0x00000020,0x0000036b, + 0x0000036a,0x00000369,0x0003003e,0x0000032a,0x0000036b,0x0004003d,0x00000008,0x0000036c, + 0x00000365,0x0004003d,0x00000008,0x0000036d,0x0000032c,0x00050081,0x00000008,0x0000036e, + 0x0000036d,0x0000036c,0x0003003e,0x0000032c,0x0000036e,0x000200f9,0x0000033e,0x000200f8, + 0x0000033e,0x0004003d,0x00000045,0x0000036f,0x00000338,0x00050080,0x00000045,0x00000370, + 0x0000036f,0x00000154,0x0003003e,0x00000338,0x00000370,0x000200f9,0x0000033b,0x000200f8, + 0x0000033d,0x000200f9,0x00000333,0x000200f8,0x00000333,0x0004003d,0x00000045,0x00000371, + 0x0000032d,0x00050080,0x00000045,0x00000372,0x00000371,0x00000154,0x0003003e,0x0000032d, + 0x00000372,0x000200f9,0x00000330,0x000200f8,0x00000332,0x0004003d,0x00000008,0x00000373, + 0x0000032c,0x0004003d,0x00000020,0x00000374,0x0000032a,0x00050050,0x00000020,0x00000375, + 0x00000373,0x00000373,0x00050088,0x00000020,0x00000376,0x00000374,0x00000375,0x0003003e, + 0x0000032a,0x00000376,0x0003003e,0x0000032c,0x000000b1,0x0004003d,0x00000045,0x00000378, + 0x0000032b,0x0004007e,0x00000045,0x00000379,0x00000378,0x0003003e,0x00000377,0x00000379, + 0x000200f9,0x0000037a,0x000200f8,0x0000037a,0x000400f6,0x0000037c,0x0000037d,0x00000000, + 0x000200f9,0x0000037e,0x000200f8,0x0000037e,0x0004003d,0x00000045,0x0000037f,0x00000377, + 0x0004003d,0x00000045,0x00000380,0x0000032b,0x000500b3,0x0000008c,0x00000381,0x0000037f, + 0x00000380,0x000400fa,0x00000381,0x0000037b,0x0000037c,0x000200f8,0x0000037b,0x0004003d, + 0x00000045,0x00000383,0x0000032b,0x0004007e,0x00000045,0x00000384,0x00000383,0x0003003e, + 0x00000382,0x00000384,0x000200f9,0x00000385,0x000200f8,0x00000385,0x000400f6,0x00000387, + 0x00000388,0x00000000,0x000200f9,0x00000389,0x000200f8,0x00000389,0x0004003d,0x00000045, + 0x0000038a,0x00000382,0x0004003d,0x00000045,0x0000038b,0x0000032b,0x000500b3,0x0000008c, + 0x0000038c,0x0000038a,0x0000038b,0x000400fa,0x0000038c,0x00000386,0x00000387,0x000200f8, + 0x00000386,0x0004003d,0x00000046,0x0000038e,0x000000a9,0x0004003d,0x00000045,0x0000038f, + 0x00000382,0x0004003d,0x00000045,0x00000390,0x00000377,0x00050050,0x00000046,0x00000391, + 0x0000038f,0x00000390,0x00050080,0x00000046,0x00000392,0x0000038e,0x00000391,0x0003003e, + 0x0000038d,0x00000392,0x0004003d,0x00000046,0x00000395,0x0000038d,0x0003003e,0x00000394, + 0x00000395,0x00050039,0x00000020,0x00000396,0x00000063,0x00000394,0x0003003e,0x00000393, + 0x00000396,0x0004003d,0x00000046,0x00000399,0x0000038d,0x0003003e,0x00000398,0x00000399, + 0x00050039,0x00000008,0x0000039a,0x00000067,0x00000398,0x0003003e,0x0000039b,0x000002bd, + 0x0003003e,0x0000039c,0x0000039a,0x00060039,0x00000008,0x0000039d,0x00000030,0x0000039b, + 0x0000039c,0x0003003e,0x00000397,0x0000039d,0x0004003d,0x00000020,0x0000039f,0x00000393, + 0x00040039,0x00000046,0x000003a0,0x00000048,0x0004006f,0x00000020,0x000003a1,0x000003a0, + 0x00050085,0x00000020,0x000003a2,0x0000039f,0x000003a1,0x0006000c,0x00000008,0x000003a3, + 0x00000001,0x00000042,0x000003a2,0x0003003e,0x0000039e,0x000003a3,0x0004003d,0x00000008, + 0x000003a5,0x0000039e,0x00050083,0x00000008,0x000003a6,0x0000035b,0x000003a5,0x0003003e, + 0x000003a7,0x000000b1,0x0003003e,0x000003a8,0x000003a6,0x00060039,0x00000008,0x000003a9, + 0x00000030,0x000003a7,0x000003a8,0x0004003d,0x00000008,0x000003aa,0x0000039e,0x000500ba, + 0x0000008c,0x000003ab,0x000003aa,0x000000bb,0x000600a9,0x00000008,0x000003ac,0x000003ab, + 0x000000bb,0x000000b1,0x00050085,0x00000008,0x000003ad,0x000003a9,0x000003ac,0x0003003e, + 0x000003a4,0x000003ad,0x0004003d,0x00000020,0x000003af,0x0000032a,0x0004003d,0x00000020, + 0x000003b0,0x00000393,0x00050094,0x00000008,0x000003b1,0x000003af,0x000003b0,0x0003003e, + 0x000003b3,0x000003b1,0x0003003e,0x000003b4,0x000003b2,0x00060039,0x00000008,0x000003b5, + 0x00000034,0x000003b3,0x000003b4,0x0003003e,0x000003b6,0x000000b1,0x0003003e,0x000003b7, + 0x000003b5,0x00060039,0x00000008,0x000003b8,0x00000030,0x000003b6,0x000003b7,0x0004003d, + 0x00000008,0x000003b9,0x000003a4,0x00050085,0x00000008,0x000003ba,0x000003b8,0x000003b9, + 0x0003003e,0x000003ae,0x000003ba,0x0004003d,0x00000020,0x000003bb,0x00000393,0x0004003d, + 0x00000008,0x000003bc,0x000003ae,0x0005008e,0x00000020,0x000003bd,0x000003bb,0x000003bc, + 0x0004003d,0x00000020,0x000003be,0x00000328,0x00050081,0x00000020,0x000003bf,0x000003be, + 0x000003bd,0x0003003e,0x00000328,0x000003bf,0x0004003d,0x00000008,0x000003c0,0x000003ae, + 0x0004003d,0x00000008,0x000003c1,0x0000032c,0x00050081,0x00000008,0x000003c2,0x000003c1, + 0x000003c0,0x0003003e,0x0000032c,0x000003c2,0x000200f9,0x00000388,0x000200f8,0x00000388, + 0x0004003d,0x00000045,0x000003c3,0x00000382,0x00050080,0x00000045,0x000003c4,0x000003c3, + 0x00000154,0x0003003e,0x00000382,0x000003c4,0x000200f9,0x00000385,0x000200f8,0x00000387, + 0x000200f9,0x0000037d,0x000200f8,0x0000037d,0x0004003d,0x00000045,0x000003c5,0x00000377, + 0x00050080,0x00000045,0x000003c6,0x000003c5,0x00000154,0x0003003e,0x00000377,0x000003c6, + 0x000200f9,0x0000037a,0x000200f8,0x0000037c,0x0004003d,0x00000008,0x000003c7,0x0000032c, + 0x000500ba,0x0000008c,0x000003c8,0x000003c7,0x000002bd,0x000300f7,0x000003ca,0x00000000, + 0x000400fa,0x000003c8,0x000003c9,0x000003ca,0x000200f8,0x000003c9,0x0004003d,0x00000008, + 0x000003cb,0x0000032c,0x0004003d,0x00000020,0x000003cc,0x00000328,0x00050050,0x00000020, + 0x000003cd,0x000003cb,0x000003cb,0x00050088,0x00000020,0x000003ce,0x000003cc,0x000003cd, + 0x0003003e,0x00000328,0x000003ce,0x000200f9,0x000003ca,0x000200f8,0x000003ca,0x0004003d, + 0x00000046,0x000003cf,0x000000a9,0x0004007c,0x00000069,0x000003d0,0x000003cf,0x0003003e, + 0x000003d1,0x000003d0,0x0004003d,0x00000020,0x000003d3,0x00000328,0x0003003e,0x000003d2, + 0x000003d3,0x00060039,0x00000002,0x000003d4,0x000000a6,0x000003d1,0x000003d2,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h b/gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h new file mode 100644 index 000000000..627b7dd9c --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h @@ -0,0 +1,426 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_RECONSTRUCT_AND_DILATE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000001e3,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000001cb, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666, + 0x6e495573,0x28323374,0x003b3166,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000011, + 0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000010,0x00000078,0x00040005, + 0x00000014,0x7474694a,0x00287265,0x00070005,0x00000016,0x69746f4d,0x65566e6f,0x726f7463, + 0x6c616353,0x00002865,0x00050005,0x0000001b,0x646e6552,0x69537265,0x0028657a,0x00060005, + 0x0000001d,0x70736944,0x5379616c,0x28657a69,0x00000000,0x00070005,0x00000022,0x64616f4c, + 0x75706e49,0x70654474,0x76286874,0x003b3269,0x00040005,0x00000021,0x50785069,0x0000736f, + 0x00090005,0x00000026,0x64616f4c,0x75706e49,0x746f4d74,0x566e6f69,0x6f746365,0x69762872, + 0x00003b32,0x00090005,0x00000025,0x44785069,0x74616c69,0x6f4d6465,0x6e6f6974,0x74636556, + 0x6f50726f,0x00000073,0x000b0005,0x0000002b,0x726f7453,0x6c694465,0x64657461,0x69746f4d, + 0x65566e6f,0x726f7463,0x69762873,0x66763b32,0x00003b32,0x00040005,0x00000029,0x50785069, + 0x0000736f,0x00030005,0x0000002a,0x006c6176,0x00090005,0x00000030,0x726f7453,0x6c694465, + 0x64657461,0x74706544,0x69762868,0x31663b32,0x0000003b,0x00040005,0x0000002e,0x50785069, + 0x0000736f,0x00030005,0x0000002f,0x006c6176,0x000e0005,0x00000034,0x61647055,0x65526574, + 0x736e6f63,0x63757274,0x44646574,0x68747065,0x76657250,0x73756f69,0x6d617246,0x69762865, + 0x31663b32,0x0000003b,0x00050005,0x00000032,0x53785069,0x6c706d61,0x00000065,0x00040005, + 0x00000033,0x70654466,0x00006874,0x00080005,0x00000039,0x696c6942,0x7261656e,0x706d6153, + 0x676e696c,0x61746144,0x00000000,0x00060006,0x00000039,0x00000000,0x66664f69,0x73746573, + 0x00000000,0x00060006,0x00000039,0x00000001,0x69655766,0x73746867,0x00000000,0x00060006, + 0x00000039,0x00000002,0x73614269,0x736f5065,0x00000000,0x000b0005,0x0000003d,0x42746547, + 0x6e696c69,0x53726165,0x6c706d61,0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000, + 0x00030005,0x0000003b,0x00765566,0x00040005,0x0000003c,0x7a695369,0x00000065,0x00070005, + 0x00000043,0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x00000041, + 0x00736f70,0x00040005,0x00000042,0x657a6973,0x00000000,0x00090005,0x00000047,0x706d6f43, + 0x48657475,0x736f5072,0x6d6f7246,0x6f50724c,0x69762873,0x00003b32,0x00050005,0x00000046, + 0x4c785069,0x736f5072,0x00000000,0x000c0005,0x0000004e,0x6f636552,0x7274736e,0x50746375, + 0x44766572,0x68747065,0x32697628,0x3b31663b,0x3b326676,0x3b326976,0x00000000,0x00040005, + 0x0000004a,0x50785069,0x0000736f,0x00040005,0x0000004b,0x70654466,0x00006874,0x00060005, + 0x0000004c,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00060005,0x0000004d,0x44785069, + 0x68747065,0x657a6953,0x00000000,0x000b0005,0x00000055,0x646e6946,0x7261654e,0x44747365, + 0x68747065,0x32697628,0x3269763b,0x3b31663b,0x3b326976,0x00000000,0x00040005,0x00000051, + 0x50785069,0x0000736f,0x00040005,0x00000052,0x53785069,0x00657a69,0x00060005,0x00000053, + 0x61654e66,0x74736572,0x74706544,0x00000068,0x00070005,0x00000054,0x61654e66,0x74736572, + 0x74706544,0x6f6f4368,0x00006472,0x00090005,0x00000059,0x6f636552,0x7274736e,0x41746375, + 0x6944646e,0x6574616c,0x32697628,0x0000003b,0x00050005,0x00000058,0x4c785069,0x736f5072, + 0x00000000,0x00040005,0x00000065,0x49466263,0x0000745f,0x00060006,0x00000065,0x00000000, + 0x646e6572,0x69537265,0x0000657a,0x00060006,0x00000065,0x00000001,0x70736964,0x5379616c, + 0x00657a69,0x00070006,0x00000065,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063, + 0x00060006,0x00000065,0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x00000065, + 0x00000004,0x656d6163,0x61466172,0x00000072,0x00080006,0x00000065,0x00000005,0x63737075, + 0x72656c61,0x67726154,0x69537465,0x0000657a,0x00050006,0x00000065,0x00000006,0x65646f4d, + 0x00000000,0x00050006,0x00000065,0x00000007,0x65736572,0x00000074,0x00080006,0x00000065, + 0x00000008,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x00000065, + 0x00000009,0x746c6564,0x6d695461,0x00000065,0x00090006,0x00000065,0x0000000a,0x4c445548, + 0x41737365,0x63617474,0x46646568,0x6f746361,0x00000072,0x00080006,0x00000065,0x0000000b, + 0x74736964,0x6974726f,0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x00000065,0x0000000c, + 0x6974706f,0x466c6163,0x53776f6c,0x656c6163,0x00000000,0x00090006,0x00000065,0x0000000d, + 0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x00000065, + 0x0000000e,0x70736964,0x68637461,0x67616c46,0x00000073,0x00070006,0x00000065,0x0000000f, + 0x5278616d,0x65646e65,0x7a695372,0x00000065,0x00090006,0x00000065,0x00000010,0x6974706f, + 0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x00000065,0x00000011, + 0x496d754e,0x6174736e,0x7365636e,0x00000000,0x00090006,0x00000065,0x00000012,0x65746e69, + 0x6c6f7072,0x6f697461,0x6365526e,0x73614274,0x00000065,0x00090006,0x00000065,0x00000013, + 0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x00000065, + 0x00000014,0x75626564,0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x00000065,0x00000015, + 0x6b636162,0x66667542,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006, + 0x00000065,0x00000016,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x00000065, + 0x00000017,0x6e615466,0x666c6148,0x00564f46,0x00050006,0x00000065,0x00000018,0x6461705f, + 0x00000031,0x00050006,0x00000065,0x00000019,0x74694a66,0x00726574,0x00080006,0x00000065, + 0x0000001a,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x00000067, + 0x49466263,0x00000000,0x00060005,0x00000080,0x6e695f72,0x5f747570,0x74706564,0x00000068, + 0x00070005,0x00000088,0x63725366,0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00080005, + 0x00000089,0x6e695f72,0x5f747570,0x69746f6d,0x765f6e6f,0x6f746365,0x00007372,0x00060005, + 0x0000008e,0x4d765566,0x6f69746f,0x6365566e,0x00726f74,0x00090005,0x00000097,0x645f7772, + 0x74616c69,0x6d5f6465,0x6f69746f,0x65765f6e,0x726f7463,0x00000073,0x00070005,0x000000a1, + 0x645f7772,0x74616c69,0x645f6465,0x68747065,0x00000000,0x00040005,0x000000a7,0x70654475, + 0x00006874,0x00040005,0x000000a8,0x61726170,0x0000006d,0x000c0005,0x000000ad,0x725f7772, + 0x6e6f6365,0x75727473,0x64657463,0x7065645f,0x705f6874,0x69766572,0x5f73756f,0x6d617266, + 0x00000065,0x00050005,0x000000b4,0x53785066,0x6c706d61,0x00000065,0x00040005,0x000000bd, + 0x61746164,0x00000000,0x00040005,0x000000c3,0x46785066,0x00636172,0x00040005,0x000000c4, + 0x61726170,0x0000006d,0x00060005,0x000000fa,0x63725366,0x7474694a,0x64657265,0x00736f50, + 0x00050005,0x00000101,0x50724c66,0x6e49736f,0x00007248,0x00050005,0x00000109,0x48785069, + 0x736f5072,0x00000000,0x00030005,0x0000011a,0x00765566,0x00060005,0x00000122,0x70655266, + 0x656a6f72,0x64657463,0x00007655,0x00060005,0x00000126,0x696c6962,0x7261656e,0x6f666e49, + 0x00000000,0x00040005,0x00000128,0x61726170,0x0000006d,0x00040005,0x0000012a,0x61726170, + 0x0000006d,0x00060005,0x0000012d,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005, + 0x00000136,0x66664f69,0x00746573,0x00040005,0x0000013a,0x69655766,0x00746867,0x00050005, + 0x00000143,0x6f745369,0x6f506572,0x00000073,0x00040005,0x00000148,0x61726170,0x0000006d, + 0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005,0x0000014f,0x61726170,0x0000006d, + 0x00040005,0x00000151,0x61726170,0x0000006d,0x00060005,0x00000156,0x6d615369,0x49656c70, + 0x7865646e,0x00000000,0x00040005,0x0000015f,0x736f5069,0x00000000,0x00050005,0x0000016c, + 0x65646e69,0x6c626178,0x00000065,0x00040005,0x00000172,0x74706564,0x00000068,0x00040005, + 0x00000174,0x61726170,0x0000006d,0x00040005,0x00000184,0x736f5069,0x00000000,0x00050005, + 0x00000187,0x65646e69,0x6c626178,0x00000065,0x00040005,0x0000018b,0x61726170,0x0000006d, + 0x00040005,0x0000018d,0x61726170,0x0000006d,0x00050005,0x00000192,0x44644e66,0x68747065, + 0x00000000,0x00060005,0x000001a0,0x6c694466,0x64657461,0x74706544,0x00000068,0x00070005, + 0x000001a1,0x61654e69,0x74736572,0x74706544,0x6f6f4368,0x00006472,0x00040005,0x000001a2, + 0x61726170,0x0000006d,0x00040005,0x000001a4,0x61726170,0x0000006d,0x00040005,0x000001a5, + 0x61726170,0x0000006d,0x00040005,0x000001a6,0x61726170,0x0000006d,0x00050005,0x000001aa, + 0x6d615369,0x50656c70,0x0000736f,0x00040005,0x000001ab,0x61726170,0x0000006d,0x00070005, + 0x000001ae,0x746f4d69,0x566e6f69,0x6f746365,0x736f5072,0x00000000,0x00040005,0x000001af, + 0x61726170,0x0000006d,0x00080005,0x000001b2,0x6c694466,0x64657461,0x69746f4d,0x65566e6f, + 0x726f7463,0x00000000,0x00040005,0x000001b3,0x61726170,0x0000006d,0x00040005,0x000001b6, + 0x61726170,0x0000006d,0x00040005,0x000001b8,0x61726170,0x0000006d,0x00040005,0x000001bb, + 0x61726170,0x0000006d,0x00040005,0x000001bd,0x61726170,0x0000006d,0x00040005,0x000001c1, + 0x61726170,0x0000006d,0x00040005,0x000001c3,0x61726170,0x0000006d,0x00040005,0x000001c5, + 0x61726170,0x0000006d,0x00040005,0x000001c7,0x61726170,0x0000006d,0x00080005,0x000001cb, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x000001cf, + 0x61726170,0x0000006d,0x00060005,0x000001d6,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x00000065,0x00000002,0x00050048,0x00000065,0x00000000,0x00000023,0x00000000, + 0x00050048,0x00000065,0x00000001,0x00000023,0x00000008,0x00050048,0x00000065,0x00000002, + 0x00000023,0x00000010,0x00050048,0x00000065,0x00000003,0x00000023,0x00000018,0x00050048, + 0x00000065,0x00000004,0x00000023,0x0000001c,0x00050048,0x00000065,0x00000005,0x00000023, + 0x00000020,0x00050048,0x00000065,0x00000006,0x00000023,0x00000028,0x00050048,0x00000065, + 0x00000007,0x00000023,0x0000002c,0x00050048,0x00000065,0x00000008,0x00000023,0x00000030, + 0x00050048,0x00000065,0x00000009,0x00000023,0x00000040,0x00050048,0x00000065,0x0000000a, + 0x00000023,0x00000044,0x00050048,0x00000065,0x0000000b,0x00000023,0x00000048,0x00050048, + 0x00000065,0x0000000c,0x00000023,0x00000050,0x00050048,0x00000065,0x0000000d,0x00000023, + 0x00000058,0x00050048,0x00000065,0x0000000e,0x00000023,0x0000005c,0x00050048,0x00000065, + 0x0000000f,0x00000023,0x00000060,0x00050048,0x00000065,0x00000010,0x00000023,0x00000068, + 0x00050048,0x00000065,0x00000011,0x00000023,0x0000006c,0x00050048,0x00000065,0x00000012, + 0x00000023,0x00000070,0x00050048,0x00000065,0x00000013,0x00000023,0x00000078,0x00050048, + 0x00000065,0x00000014,0x00000023,0x00000080,0x00050048,0x00000065,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x00000065,0x00000016,0x00000023,0x00000090,0x00050048,0x00000065, + 0x00000017,0x00000023,0x00000098,0x00050048,0x00000065,0x00000018,0x00000023,0x0000009c, + 0x00050048,0x00000065,0x00000019,0x00000023,0x000000a0,0x00050048,0x00000065,0x0000001a, + 0x00000023,0x000000a8,0x00040047,0x00000067,0x00000021,0x00000005,0x00040047,0x00000067, + 0x00000022,0x00000000,0x00040047,0x00000080,0x00000021,0x00000001,0x00040047,0x00000080, + 0x00000022,0x00000000,0x00040047,0x00000089,0x00000021,0x00000000,0x00040047,0x00000089, + 0x00000022,0x00000000,0x00040047,0x00000097,0x00000021,0x00000003,0x00040047,0x00000097, + 0x00000022,0x00000000,0x00040047,0x000000a1,0x00000021,0x00000004,0x00040047,0x000000a1, + 0x00000022,0x00000000,0x00040047,0x000000ad,0x00000021,0x00000002,0x00040047,0x000000ad, + 0x00000022,0x00000000,0x00040047,0x000001cb,0x0000000b,0x0000001c,0x00040047,0x000001d6, + 0x00000021,0x000003e8,0x00040047,0x000001d6,0x00000022,0x00000000,0x00040047,0x000001e2, + 0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000008, + 0x00000020,0x00000000,0x00040021,0x00000009,0x00000008,0x00000007,0x00040017,0x0000000d, + 0x00000006,0x00000002,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00040021,0x0000000f, + 0x0000000d,0x0000000e,0x00030021,0x00000013,0x0000000d,0x00040015,0x00000018,0x00000020, + 0x00000001,0x00040017,0x00000019,0x00000018,0x00000002,0x00030021,0x0000001a,0x00000019, + 0x00040020,0x0000001f,0x00000007,0x00000019,0x00040021,0x00000020,0x00000006,0x0000001f, + 0x00040021,0x00000024,0x0000000d,0x0000001f,0x00050021,0x00000028,0x00000002,0x0000001f, + 0x0000000e,0x00050021,0x0000002d,0x00000002,0x0000001f,0x00000007,0x0004002b,0x00000008, + 0x00000036,0x00000004,0x0004001c,0x00000037,0x00000019,0x00000036,0x0004001c,0x00000038, + 0x00000006,0x00000036,0x0005001e,0x00000039,0x00000037,0x00000038,0x00000019,0x00050021, + 0x0000003a,0x00000039,0x0000000e,0x0000001f,0x00020014,0x0000003f,0x00050021,0x00000040, + 0x0000003f,0x0000001f,0x0000001f,0x00040021,0x00000045,0x00000019,0x0000001f,0x00070021, + 0x00000049,0x00000002,0x0000001f,0x00000007,0x0000000e,0x0000001f,0x00070021,0x00000050, + 0x00000002,0x0000001f,0x0000001f,0x00000007,0x0000001f,0x00040021,0x00000057,0x00000002, + 0x0000001f,0x00040017,0x00000063,0x00000006,0x00000004,0x00040017,0x00000064,0x00000006, + 0x00000003,0x001d001e,0x00000065,0x00000019,0x00000019,0x0000000d,0x00000006,0x00000006, + 0x00000019,0x00000018,0x00000018,0x00000063,0x00000006,0x00000018,0x00000019,0x0000000d, + 0x00000018,0x00000008,0x00000019,0x00000018,0x00000018,0x00000019,0x00000019,0x00000064, + 0x00000008,0x0000000d,0x00000006,0x00000018,0x0000000d,0x0000000d,0x00040020,0x00000066, + 0x00000002,0x00000065,0x0004003b,0x00000066,0x00000067,0x00000002,0x0004002b,0x00000018, + 0x00000068,0x00000019,0x00040020,0x00000069,0x00000002,0x0000000d,0x0004002b,0x00000018, + 0x0000006e,0x0000001a,0x0004002b,0x00000018,0x00000073,0x00000000,0x00040020,0x00000074, + 0x00000002,0x00000019,0x0004002b,0x00000018,0x00000079,0x00000001,0x00090019,0x0000007e, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000007f,0x00000000,0x0000007e,0x0004003b,0x0000007f,0x00000080,0x00000000,0x0004002b, + 0x00000008,0x00000084,0x00000000,0x0004003b,0x0000007f,0x00000089,0x00000000,0x00090019, + 0x00000095,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000007, + 0x00040020,0x00000096,0x00000000,0x00000095,0x0004003b,0x00000096,0x00000097,0x00000000, + 0x0004002b,0x00000006,0x0000009b,0x00000000,0x00090019,0x0000009f,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000003,0x00040020,0x000000a0,0x00000000, + 0x0000009f,0x0004003b,0x000000a0,0x000000a1,0x00000000,0x00040020,0x000000a6,0x00000007, + 0x00000008,0x00090019,0x000000ab,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000021,0x00040020,0x000000ac,0x00000000,0x000000ab,0x0004003b,0x000000ac, + 0x000000ad,0x00000000,0x00040020,0x000000b0,0x0000000b,0x00000008,0x0004002b,0x00000008, + 0x000000b2,0x00000001,0x0004002b,0x00000006,0x000000b9,0x3f000000,0x0005002c,0x0000000d, + 0x000000ba,0x000000b9,0x000000b9,0x00040020,0x000000bc,0x00000007,0x00000039,0x0004002b, + 0x00000018,0x000000be,0x00000002,0x0005002c,0x00000019,0x000000c7,0x00000073,0x00000073, + 0x0005002c,0x00000019,0x000000c9,0x00000079,0x00000073,0x0005002c,0x00000019,0x000000cb, + 0x00000073,0x00000079,0x0004002b,0x00000018,0x000000cd,0x00000003,0x0005002c,0x00000019, + 0x000000ce,0x00000079,0x00000079,0x0004002b,0x00000006,0x000000d0,0x3f800000,0x00040017, + 0x000000f1,0x00000008,0x00000002,0x00040017,0x000000f5,0x0000003f,0x00000002,0x0004002b, + 0x00000006,0x00000115,0x3dcccccd,0x00040020,0x0000012c,0x00000007,0x00000018,0x0004002b, + 0x00000018,0x00000134,0x00000004,0x0004002b,0x00000006,0x0000013f,0x3a83126f,0x0004002b, + 0x00000018,0x0000015d,0x00000009,0x0004002b,0x00000008,0x00000161,0x00000009,0x0004001c, + 0x00000162,0x00000019,0x00000161,0x0004002b,0x00000018,0x00000163,0xffffffff,0x0005002c, + 0x00000019,0x00000164,0x00000073,0x00000163,0x0005002c,0x00000019,0x00000165,0x00000163, + 0x00000073,0x0005002c,0x00000019,0x00000166,0x00000163,0x00000079,0x0005002c,0x00000019, + 0x00000167,0x00000163,0x00000163,0x0005002c,0x00000019,0x00000168,0x00000079,0x00000163, + 0x000c002c,0x00000162,0x00000169,0x000000c7,0x000000c9,0x000000cb,0x00000164,0x00000165, + 0x00000166,0x000000ce,0x00000167,0x00000168,0x00040020,0x0000016b,0x00000007,0x00000162, + 0x0004001c,0x00000170,0x00000006,0x00000161,0x00040020,0x00000171,0x00000007,0x00000170, + 0x00040017,0x000001c9,0x00000008,0x00000003,0x00040020,0x000001ca,0x00000001,0x000001c9, + 0x0004003b,0x000001ca,0x000001cb,0x00000001,0x0004002b,0x00000006,0x000001d1,0x387fda40, + 0x0004002b,0x00000006,0x000001d2,0x477fe000,0x0004002b,0x00000006,0x000001d3,0x37801002, + 0x0002001a,0x000001d4,0x00040020,0x000001d5,0x00000000,0x000001d4,0x0004003b,0x000001d5, + 0x000001d6,0x00000000,0x0004002b,0x00000006,0x000001d7,0x7f7fffff,0x0004002b,0x00000006, + 0x000001d8,0x00800000,0x0004002b,0x00000008,0x000001d9,0x00000020,0x0004002b,0x00000008, + 0x000001da,0x00000010,0x0004002b,0x00000008,0x000001db,0x00000005,0x0004002b,0x00000008, + 0x000001dc,0x0000000a,0x0004002b,0x00000008,0x000001dd,0x80000000,0x0004002b,0x00000008, + 0x000001de,0x0000001f,0x0004002b,0x00000008,0x000001df,0x000003ff,0x0004002b,0x00000008, + 0x000001e0,0x00000015,0x0004002b,0x00000008,0x000001e1,0x00000008,0x0006002c,0x000001c9, + 0x000001e2,0x000001e1,0x000001e1,0x000000b2,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000001f,0x000001cf,0x00000007,0x0004003d, + 0x000001c9,0x000001cc,0x000001cb,0x0007004f,0x000000f1,0x000001cd,0x000001cc,0x000001cc, + 0x00000000,0x00000001,0x0004007c,0x00000019,0x000001ce,0x000001cd,0x0003003e,0x000001cf, + 0x000001ce,0x00050039,0x00000002,0x000001d0,0x00000059,0x000001cf,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x0000005b,0x0000000a,0x0004007c,0x00000008, + 0x0000005c,0x0000005b,0x000200fe,0x0000005c,0x00010038,0x00050036,0x0000000d,0x00000011, + 0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x0000000d,0x0000005f,0x00000010,0x0006000c,0x0000000d,0x00000060,0x00000001,0x0000000a, + 0x0000005f,0x000200fe,0x00000060,0x00010038,0x00050036,0x0000000d,0x00000014,0x00000000, + 0x00000013,0x000200f8,0x00000015,0x00050041,0x00000069,0x0000006a,0x00000067,0x00000068, + 0x0004003d,0x0000000d,0x0000006b,0x0000006a,0x000200fe,0x0000006b,0x00010038,0x00050036, + 0x0000000d,0x00000016,0x00000000,0x00000013,0x000200f8,0x00000017,0x00050041,0x00000069, + 0x0000006f,0x00000067,0x0000006e,0x0004003d,0x0000000d,0x00000070,0x0000006f,0x000200fe, + 0x00000070,0x00010038,0x00050036,0x00000019,0x0000001b,0x00000000,0x0000001a,0x000200f8, + 0x0000001c,0x00050041,0x00000074,0x00000075,0x00000067,0x00000073,0x0004003d,0x00000019, + 0x00000076,0x00000075,0x000200fe,0x00000076,0x00010038,0x00050036,0x00000019,0x0000001d, + 0x00000000,0x0000001a,0x000200f8,0x0000001e,0x00050041,0x00000074,0x0000007a,0x00000067, + 0x00000079,0x0004003d,0x00000019,0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038, + 0x00050036,0x00000006,0x00000022,0x00000000,0x00000020,0x00030037,0x0000001f,0x00000021, + 0x000200f8,0x00000023,0x0004003d,0x0000007e,0x00000081,0x00000080,0x0004003d,0x00000019, + 0x00000082,0x00000021,0x0007005f,0x00000063,0x00000083,0x00000081,0x00000082,0x00000002, + 0x00000073,0x00050051,0x00000006,0x00000085,0x00000083,0x00000000,0x000200fe,0x00000085, + 0x00010038,0x00050036,0x0000000d,0x00000026,0x00000000,0x00000024,0x00030037,0x0000001f, + 0x00000025,0x000200f8,0x00000027,0x0004003b,0x0000000e,0x00000088,0x00000007,0x0004003b, + 0x0000000e,0x0000008e,0x00000007,0x0004003d,0x0000007e,0x0000008a,0x00000089,0x0004003d, + 0x00000019,0x0000008b,0x00000025,0x0007005f,0x00000063,0x0000008c,0x0000008a,0x0000008b, + 0x00000002,0x00000073,0x0007004f,0x0000000d,0x0000008d,0x0000008c,0x0000008c,0x00000000, + 0x00000001,0x0003003e,0x00000088,0x0000008d,0x0004003d,0x0000000d,0x0000008f,0x00000088, + 0x00040039,0x0000000d,0x00000090,0x00000016,0x00050085,0x0000000d,0x00000091,0x0000008f, + 0x00000090,0x0003003e,0x0000008e,0x00000091,0x0004003d,0x0000000d,0x00000092,0x0000008e, + 0x000200fe,0x00000092,0x00010038,0x00050036,0x00000002,0x0000002b,0x00000000,0x00000028, + 0x00030037,0x0000001f,0x00000029,0x00030037,0x0000000e,0x0000002a,0x000200f8,0x0000002c, + 0x0004003d,0x00000095,0x00000098,0x00000097,0x0004003d,0x00000019,0x00000099,0x00000029, + 0x0004003d,0x0000000d,0x0000009a,0x0000002a,0x00050051,0x00000006,0x0000009c,0x0000009a, + 0x00000000,0x00050051,0x00000006,0x0000009d,0x0000009a,0x00000001,0x00070050,0x00000063, + 0x0000009e,0x0000009c,0x0000009d,0x0000009b,0x0000009b,0x00040063,0x00000098,0x00000099, + 0x0000009e,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000030,0x00000000,0x0000002d, + 0x00030037,0x0000001f,0x0000002e,0x00030037,0x00000007,0x0000002f,0x000200f8,0x00000031, + 0x0004003d,0x0000009f,0x000000a2,0x000000a1,0x0004003d,0x00000019,0x000000a3,0x0000002e, + 0x0004003d,0x00000006,0x000000a4,0x0000002f,0x00070050,0x00000063,0x000000a5,0x000000a4, + 0x0000009b,0x0000009b,0x0000009b,0x00040063,0x000000a2,0x000000a3,0x000000a5,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000034,0x00000000,0x0000002d,0x00030037,0x0000001f, + 0x00000032,0x00030037,0x00000007,0x00000033,0x000200f8,0x00000035,0x0004003b,0x000000a6, + 0x000000a7,0x00000007,0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003d,0x00000006, + 0x000000a9,0x00000033,0x0003003e,0x000000a8,0x000000a9,0x00050039,0x00000008,0x000000aa, + 0x0000000b,0x000000a8,0x0003003e,0x000000a7,0x000000aa,0x0004003d,0x00000019,0x000000ae, + 0x00000032,0x0004003d,0x00000008,0x000000af,0x000000a7,0x0006003c,0x000000b0,0x000000b1, + 0x000000ad,0x000000ae,0x00000084,0x000700ef,0x00000008,0x000000b3,0x000000b1,0x000000b2, + 0x00000084,0x000000af,0x000100fd,0x00010038,0x00050036,0x00000039,0x0000003d,0x00000000, + 0x0000003a,0x00030037,0x0000000e,0x0000003b,0x00030037,0x0000001f,0x0000003c,0x000200f8, + 0x0000003e,0x0004003b,0x0000000e,0x000000b4,0x00000007,0x0004003b,0x000000bc,0x000000bd, + 0x00000007,0x0004003b,0x0000000e,0x000000c3,0x00000007,0x0004003b,0x0000000e,0x000000c4, + 0x00000007,0x0004003d,0x0000000d,0x000000b5,0x0000003b,0x0004003d,0x00000019,0x000000b6, + 0x0000003c,0x0004006f,0x0000000d,0x000000b7,0x000000b6,0x00050085,0x0000000d,0x000000b8, + 0x000000b5,0x000000b7,0x00050083,0x0000000d,0x000000bb,0x000000b8,0x000000ba,0x0003003e, + 0x000000b4,0x000000bb,0x0004003d,0x0000000d,0x000000bf,0x000000b4,0x0006000c,0x0000000d, + 0x000000c0,0x00000001,0x00000008,0x000000bf,0x0004006e,0x00000019,0x000000c1,0x000000c0, + 0x00050041,0x0000001f,0x000000c2,0x000000bd,0x000000be,0x0003003e,0x000000c2,0x000000c1, + 0x0004003d,0x0000000d,0x000000c5,0x000000b4,0x0003003e,0x000000c4,0x000000c5,0x00050039, + 0x0000000d,0x000000c6,0x00000011,0x000000c4,0x0003003e,0x000000c3,0x000000c6,0x00060041, + 0x0000001f,0x000000c8,0x000000bd,0x00000073,0x00000073,0x0003003e,0x000000c8,0x000000c7, + 0x00060041,0x0000001f,0x000000ca,0x000000bd,0x00000073,0x00000079,0x0003003e,0x000000ca, + 0x000000c9,0x00060041,0x0000001f,0x000000cc,0x000000bd,0x00000073,0x000000be,0x0003003e, + 0x000000cc,0x000000cb,0x00060041,0x0000001f,0x000000cf,0x000000bd,0x00000073,0x000000cd, + 0x0003003e,0x000000cf,0x000000ce,0x00050041,0x00000007,0x000000d1,0x000000c3,0x00000084, + 0x0004003d,0x00000006,0x000000d2,0x000000d1,0x00050083,0x00000006,0x000000d3,0x000000d0, + 0x000000d2,0x00050041,0x00000007,0x000000d4,0x000000c3,0x000000b2,0x0004003d,0x00000006, + 0x000000d5,0x000000d4,0x00050083,0x00000006,0x000000d6,0x000000d0,0x000000d5,0x00050085, + 0x00000006,0x000000d7,0x000000d3,0x000000d6,0x00060041,0x00000007,0x000000d8,0x000000bd, + 0x00000079,0x00000073,0x0003003e,0x000000d8,0x000000d7,0x00050041,0x00000007,0x000000d9, + 0x000000c3,0x00000084,0x0004003d,0x00000006,0x000000da,0x000000d9,0x00050041,0x00000007, + 0x000000db,0x000000c3,0x000000b2,0x0004003d,0x00000006,0x000000dc,0x000000db,0x00050083, + 0x00000006,0x000000dd,0x000000d0,0x000000dc,0x00050085,0x00000006,0x000000de,0x000000da, + 0x000000dd,0x00060041,0x00000007,0x000000df,0x000000bd,0x00000079,0x00000079,0x0003003e, + 0x000000df,0x000000de,0x00050041,0x00000007,0x000000e0,0x000000c3,0x00000084,0x0004003d, + 0x00000006,0x000000e1,0x000000e0,0x00050083,0x00000006,0x000000e2,0x000000d0,0x000000e1, + 0x00050041,0x00000007,0x000000e3,0x000000c3,0x000000b2,0x0004003d,0x00000006,0x000000e4, + 0x000000e3,0x00050085,0x00000006,0x000000e5,0x000000e2,0x000000e4,0x00060041,0x00000007, + 0x000000e6,0x000000bd,0x00000079,0x000000be,0x0003003e,0x000000e6,0x000000e5,0x00050041, + 0x00000007,0x000000e7,0x000000c3,0x00000084,0x0004003d,0x00000006,0x000000e8,0x000000e7, + 0x00050041,0x00000007,0x000000e9,0x000000c3,0x000000b2,0x0004003d,0x00000006,0x000000ea, + 0x000000e9,0x00050085,0x00000006,0x000000eb,0x000000e8,0x000000ea,0x00060041,0x00000007, + 0x000000ec,0x000000bd,0x00000079,0x000000cd,0x0003003e,0x000000ec,0x000000eb,0x0004003d, + 0x00000039,0x000000ed,0x000000bd,0x000200fe,0x000000ed,0x00010038,0x00050036,0x0000003f, + 0x00000043,0x00000000,0x00000040,0x00030037,0x0000001f,0x00000041,0x00030037,0x0000001f, + 0x00000042,0x000200f8,0x00000044,0x0004003d,0x00000019,0x000000f0,0x00000041,0x0004007c, + 0x000000f1,0x000000f2,0x000000f0,0x0004003d,0x00000019,0x000000f3,0x00000042,0x0004007c, + 0x000000f1,0x000000f4,0x000000f3,0x000500b0,0x000000f5,0x000000f6,0x000000f2,0x000000f4, + 0x0004009b,0x0000003f,0x000000f7,0x000000f6,0x000200fe,0x000000f7,0x00010038,0x00050036, + 0x00000019,0x00000047,0x00000000,0x00000045,0x00030037,0x0000001f,0x00000046,0x000200f8, + 0x00000048,0x0004003b,0x0000000e,0x000000fa,0x00000007,0x0004003b,0x0000000e,0x00000101, + 0x00000007,0x0004003b,0x0000001f,0x00000109,0x00000007,0x0004003d,0x00000019,0x000000fb, + 0x00000046,0x0004006f,0x0000000d,0x000000fc,0x000000fb,0x00050050,0x0000000d,0x000000fd, + 0x000000b9,0x000000b9,0x00050081,0x0000000d,0x000000fe,0x000000fc,0x000000fd,0x00040039, + 0x0000000d,0x000000ff,0x00000014,0x00050083,0x0000000d,0x00000100,0x000000fe,0x000000ff, + 0x0003003e,0x000000fa,0x00000100,0x0004003d,0x0000000d,0x00000102,0x000000fa,0x00040039, + 0x00000019,0x00000103,0x0000001b,0x0004006f,0x0000000d,0x00000104,0x00000103,0x00050088, + 0x0000000d,0x00000105,0x00000102,0x00000104,0x00040039,0x00000019,0x00000106,0x0000001d, + 0x0004006f,0x0000000d,0x00000107,0x00000106,0x00050085,0x0000000d,0x00000108,0x00000105, + 0x00000107,0x0003003e,0x00000101,0x00000108,0x0004003d,0x0000000d,0x0000010a,0x00000101, + 0x0006000c,0x0000000d,0x0000010b,0x00000001,0x00000008,0x0000010a,0x0004006e,0x00000019, + 0x0000010c,0x0000010b,0x0003003e,0x00000109,0x0000010c,0x0004003d,0x00000019,0x0000010d, + 0x00000109,0x000200fe,0x0000010d,0x00010038,0x00050036,0x00000002,0x0000004e,0x00000000, + 0x00000049,0x00030037,0x0000001f,0x0000004a,0x00030037,0x00000007,0x0000004b,0x00030037, + 0x0000000e,0x0000004c,0x00030037,0x0000001f,0x0000004d,0x000200f8,0x0000004f,0x0004003b, + 0x0000000e,0x0000011a,0x00000007,0x0004003b,0x0000000e,0x00000122,0x00000007,0x0004003b, + 0x000000bc,0x00000126,0x00000007,0x0004003b,0x0000000e,0x00000128,0x00000007,0x0004003b, + 0x0000001f,0x0000012a,0x00000007,0x0004003b,0x0000012c,0x0000012d,0x00000007,0x0004003b, + 0x0000001f,0x00000136,0x00000007,0x0004003b,0x00000007,0x0000013a,0x00000007,0x0004003b, + 0x0000001f,0x00000143,0x00000007,0x0004003b,0x0000001f,0x00000148,0x00000007,0x0004003b, + 0x0000001f,0x0000014a,0x00000007,0x0004003b,0x0000001f,0x0000014f,0x00000007,0x0004003b, + 0x00000007,0x00000151,0x00000007,0x0004003d,0x0000000d,0x00000110,0x0000004c,0x00040039, + 0x00000019,0x00000111,0x0000001d,0x0004006f,0x0000000d,0x00000112,0x00000111,0x00050085, + 0x0000000d,0x00000113,0x00000110,0x00000112,0x0006000c,0x00000006,0x00000114,0x00000001, + 0x00000042,0x00000113,0x000500ba,0x0000003f,0x00000116,0x00000114,0x00000115,0x000600a9, + 0x00000006,0x00000117,0x00000116,0x000000d0,0x0000009b,0x0004003d,0x0000000d,0x00000118, + 0x0000004c,0x0005008e,0x0000000d,0x00000119,0x00000118,0x00000117,0x0003003e,0x0000004c, + 0x00000119,0x0004003d,0x00000019,0x0000011b,0x0000004a,0x0004006f,0x0000000d,0x0000011c, + 0x0000011b,0x00050050,0x0000000d,0x0000011d,0x000000b9,0x000000b9,0x00050081,0x0000000d, + 0x0000011e,0x0000011c,0x0000011d,0x0004003d,0x00000019,0x0000011f,0x0000004d,0x0004006f, + 0x0000000d,0x00000120,0x0000011f,0x00050088,0x0000000d,0x00000121,0x0000011e,0x00000120, + 0x0003003e,0x0000011a,0x00000121,0x0004003d,0x0000000d,0x00000123,0x0000011a,0x0004003d, + 0x0000000d,0x00000124,0x0000004c,0x00050081,0x0000000d,0x00000125,0x00000123,0x00000124, + 0x0003003e,0x00000122,0x00000125,0x00040039,0x00000019,0x00000127,0x0000001b,0x0004003d, + 0x0000000d,0x00000129,0x00000122,0x0003003e,0x00000128,0x00000129,0x0003003e,0x0000012a, + 0x00000127,0x00060039,0x00000039,0x0000012b,0x0000003d,0x00000128,0x0000012a,0x0003003e, + 0x00000126,0x0000012b,0x0003003e,0x0000012d,0x00000073,0x000200f9,0x0000012e,0x000200f8, + 0x0000012e,0x000400f6,0x00000130,0x00000131,0x00000000,0x000200f9,0x00000132,0x000200f8, + 0x00000132,0x0004003d,0x00000018,0x00000133,0x0000012d,0x000500b1,0x0000003f,0x00000135, + 0x00000133,0x00000134,0x000400fa,0x00000135,0x0000012f,0x00000130,0x000200f8,0x0000012f, + 0x0004003d,0x00000018,0x00000137,0x0000012d,0x00060041,0x0000001f,0x00000138,0x00000126, + 0x00000073,0x00000137,0x0004003d,0x00000019,0x00000139,0x00000138,0x0003003e,0x00000136, + 0x00000139,0x0004003d,0x00000018,0x0000013b,0x0000012d,0x00060041,0x00000007,0x0000013c, + 0x00000126,0x00000079,0x0000013b,0x0004003d,0x00000006,0x0000013d,0x0000013c,0x0003003e, + 0x0000013a,0x0000013d,0x0004003d,0x00000006,0x0000013e,0x0000013a,0x000500ba,0x0000003f, + 0x00000140,0x0000013e,0x0000013f,0x000300f7,0x00000142,0x00000000,0x000400fa,0x00000140, + 0x00000141,0x00000142,0x000200f8,0x00000141,0x00050041,0x0000001f,0x00000144,0x00000126, + 0x000000be,0x0004003d,0x00000019,0x00000145,0x00000144,0x0004003d,0x00000019,0x00000146, + 0x00000136,0x00050080,0x00000019,0x00000147,0x00000145,0x00000146,0x0003003e,0x00000143, + 0x00000147,0x0004003d,0x00000019,0x00000149,0x00000143,0x0003003e,0x00000148,0x00000149, + 0x0004003d,0x00000019,0x0000014b,0x0000004d,0x0003003e,0x0000014a,0x0000014b,0x00060039, + 0x0000003f,0x0000014c,0x00000043,0x00000148,0x0000014a,0x000300f7,0x0000014e,0x00000000, + 0x000400fa,0x0000014c,0x0000014d,0x0000014e,0x000200f8,0x0000014d,0x0004003d,0x00000019, + 0x00000150,0x00000143,0x0003003e,0x0000014f,0x00000150,0x0004003d,0x00000006,0x00000152, + 0x0000004b,0x0003003e,0x00000151,0x00000152,0x00060039,0x00000002,0x00000153,0x00000034, + 0x0000014f,0x00000151,0x000200f9,0x0000014e,0x000200f8,0x0000014e,0x000200f9,0x00000142, + 0x000200f8,0x00000142,0x000200f9,0x00000131,0x000200f8,0x00000131,0x0004003d,0x00000018, + 0x00000154,0x0000012d,0x00050080,0x00000018,0x00000155,0x00000154,0x00000079,0x0003003e, + 0x0000012d,0x00000155,0x000200f9,0x0000012e,0x000200f8,0x00000130,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000055,0x00000000,0x00000050,0x00030037,0x0000001f,0x00000051, + 0x00030037,0x0000001f,0x00000052,0x00030037,0x00000007,0x00000053,0x00030037,0x0000001f, + 0x00000054,0x000200f8,0x00000056,0x0004003b,0x0000012c,0x00000156,0x00000007,0x0004003b, + 0x0000001f,0x0000015f,0x00000007,0x0004003b,0x0000016b,0x0000016c,0x00000007,0x0004003b, + 0x00000171,0x00000172,0x00000007,0x0004003b,0x0000001f,0x00000174,0x00000007,0x0004003b, + 0x0000001f,0x00000184,0x00000007,0x0004003b,0x0000016b,0x00000187,0x00000007,0x0004003b, + 0x0000001f,0x0000018b,0x00000007,0x0004003b,0x0000001f,0x0000018d,0x00000007,0x0004003b, + 0x00000007,0x00000192,0x00000007,0x0003003e,0x00000156,0x00000073,0x0003003e,0x00000156, + 0x00000073,0x000200f9,0x00000157,0x000200f8,0x00000157,0x000400f6,0x00000159,0x0000015a, + 0x00000000,0x000200f9,0x0000015b,0x000200f8,0x0000015b,0x0004003d,0x00000018,0x0000015c, + 0x00000156,0x000500b1,0x0000003f,0x0000015e,0x0000015c,0x0000015d,0x000400fa,0x0000015e, + 0x00000158,0x00000159,0x000200f8,0x00000158,0x0004003d,0x00000019,0x00000160,0x00000051, + 0x0004003d,0x00000018,0x0000016a,0x00000156,0x0003003e,0x0000016c,0x00000169,0x00050041, + 0x0000001f,0x0000016d,0x0000016c,0x0000016a,0x0004003d,0x00000019,0x0000016e,0x0000016d, + 0x00050080,0x00000019,0x0000016f,0x00000160,0x0000016e,0x0003003e,0x0000015f,0x0000016f, + 0x0004003d,0x00000018,0x00000173,0x00000156,0x0004003d,0x00000019,0x00000175,0x0000015f, + 0x0003003e,0x00000174,0x00000175,0x00050039,0x00000006,0x00000176,0x00000022,0x00000174, + 0x00050041,0x00000007,0x00000177,0x00000172,0x00000173,0x0003003e,0x00000177,0x00000176, + 0x000200f9,0x0000015a,0x000200f8,0x0000015a,0x0004003d,0x00000018,0x00000178,0x00000156, + 0x00050080,0x00000018,0x00000179,0x00000178,0x00000079,0x0003003e,0x00000156,0x00000179, + 0x000200f9,0x00000157,0x000200f8,0x00000159,0x0004003d,0x00000019,0x0000017a,0x00000051, + 0x0003003e,0x00000054,0x0000017a,0x00050041,0x00000007,0x0000017b,0x00000172,0x00000073, + 0x0004003d,0x00000006,0x0000017c,0x0000017b,0x0003003e,0x00000053,0x0000017c,0x0003003e, + 0x00000156,0x00000079,0x000200f9,0x0000017d,0x000200f8,0x0000017d,0x000400f6,0x0000017f, + 0x00000180,0x00000000,0x000200f9,0x00000181,0x000200f8,0x00000181,0x0004003d,0x00000018, + 0x00000182,0x00000156,0x000500b1,0x0000003f,0x00000183,0x00000182,0x0000015d,0x000400fa, + 0x00000183,0x0000017e,0x0000017f,0x000200f8,0x0000017e,0x0004003d,0x00000019,0x00000185, + 0x00000051,0x0004003d,0x00000018,0x00000186,0x00000156,0x0003003e,0x00000187,0x00000169, + 0x00050041,0x0000001f,0x00000188,0x00000187,0x00000186,0x0004003d,0x00000019,0x00000189, + 0x00000188,0x00050080,0x00000019,0x0000018a,0x00000185,0x00000189,0x0003003e,0x00000184, + 0x0000018a,0x0004003d,0x00000019,0x0000018c,0x00000184,0x0003003e,0x0000018b,0x0000018c, + 0x0004003d,0x00000019,0x0000018e,0x00000052,0x0003003e,0x0000018d,0x0000018e,0x00060039, + 0x0000003f,0x0000018f,0x00000043,0x0000018b,0x0000018d,0x000300f7,0x00000191,0x00000000, + 0x000400fa,0x0000018f,0x00000190,0x00000191,0x000200f8,0x00000190,0x0004003d,0x00000018, + 0x00000193,0x00000156,0x00050041,0x00000007,0x00000194,0x00000172,0x00000193,0x0004003d, + 0x00000006,0x00000195,0x00000194,0x0003003e,0x00000192,0x00000195,0x0004003d,0x00000006, + 0x00000196,0x00000192,0x0004003d,0x00000006,0x00000197,0x00000053,0x000500ba,0x0000003f, + 0x00000198,0x00000196,0x00000197,0x000300f7,0x0000019a,0x00000000,0x000400fa,0x00000198, + 0x00000199,0x0000019a,0x000200f8,0x00000199,0x0004003d,0x00000019,0x0000019b,0x00000184, + 0x0003003e,0x00000054,0x0000019b,0x0004003d,0x00000006,0x0000019c,0x00000192,0x0003003e, + 0x00000053,0x0000019c,0x000200f9,0x0000019a,0x000200f8,0x0000019a,0x000200f9,0x00000191, + 0x000200f8,0x00000191,0x000200f9,0x00000180,0x000200f8,0x00000180,0x0004003d,0x00000018, + 0x0000019d,0x00000156,0x00050080,0x00000018,0x0000019e,0x0000019d,0x00000079,0x0003003e, + 0x00000156,0x0000019e,0x000200f9,0x0000017d,0x000200f8,0x0000017f,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000059,0x00000000,0x00000057,0x00030037,0x0000001f,0x00000058, + 0x000200f8,0x0000005a,0x0004003b,0x00000007,0x000001a0,0x00000007,0x0004003b,0x0000001f, + 0x000001a1,0x00000007,0x0004003b,0x0000001f,0x000001a2,0x00000007,0x0004003b,0x0000001f, + 0x000001a4,0x00000007,0x0004003b,0x00000007,0x000001a5,0x00000007,0x0004003b,0x0000001f, + 0x000001a6,0x00000007,0x0004003b,0x0000001f,0x000001aa,0x00000007,0x0004003b,0x0000001f, + 0x000001ab,0x00000007,0x0004003b,0x0000001f,0x000001ae,0x00000007,0x0004003b,0x0000001f, + 0x000001af,0x00000007,0x0004003b,0x0000000e,0x000001b2,0x00000007,0x0004003b,0x0000001f, + 0x000001b3,0x00000007,0x0004003b,0x0000001f,0x000001b6,0x00000007,0x0004003b,0x00000007, + 0x000001b8,0x00000007,0x0004003b,0x0000001f,0x000001bb,0x00000007,0x0004003b,0x0000000e, + 0x000001bd,0x00000007,0x0004003b,0x0000001f,0x000001c1,0x00000007,0x0004003b,0x00000007, + 0x000001c3,0x00000007,0x0004003b,0x0000000e,0x000001c5,0x00000007,0x0004003b,0x0000001f, + 0x000001c7,0x00000007,0x00040039,0x00000019,0x0000019f,0x0000001b,0x0004003d,0x00000019, + 0x000001a3,0x00000058,0x0003003e,0x000001a2,0x000001a3,0x0003003e,0x000001a4,0x0000019f, + 0x00080039,0x00000002,0x000001a7,0x00000055,0x000001a2,0x000001a4,0x000001a5,0x000001a6, + 0x0004003d,0x00000006,0x000001a8,0x000001a5,0x0003003e,0x000001a0,0x000001a8,0x0004003d, + 0x00000019,0x000001a9,0x000001a6,0x0003003e,0x000001a1,0x000001a9,0x0004003d,0x00000019, + 0x000001ac,0x00000058,0x0003003e,0x000001ab,0x000001ac,0x00050039,0x00000019,0x000001ad, + 0x00000047,0x000001ab,0x0003003e,0x000001aa,0x000001ad,0x0004003d,0x00000019,0x000001b0, + 0x000001a1,0x0003003e,0x000001af,0x000001b0,0x00050039,0x00000019,0x000001b1,0x00000047, + 0x000001af,0x0003003e,0x000001ae,0x000001b1,0x0004003d,0x00000019,0x000001b4,0x000001ae, + 0x0003003e,0x000001b3,0x000001b4,0x00050039,0x0000000d,0x000001b5,0x00000026,0x000001b3, + 0x0003003e,0x000001b2,0x000001b5,0x0004003d,0x00000019,0x000001b7,0x00000058,0x0003003e, + 0x000001b6,0x000001b7,0x0004003d,0x00000006,0x000001b9,0x000001a0,0x0003003e,0x000001b8, + 0x000001b9,0x00060039,0x00000002,0x000001ba,0x00000030,0x000001b6,0x000001b8,0x0004003d, + 0x00000019,0x000001bc,0x00000058,0x0003003e,0x000001bb,0x000001bc,0x0004003d,0x0000000d, + 0x000001be,0x000001b2,0x0003003e,0x000001bd,0x000001be,0x00060039,0x00000002,0x000001bf, + 0x0000002b,0x000001bb,0x000001bd,0x00040039,0x00000019,0x000001c0,0x0000001b,0x0004003d, + 0x00000019,0x000001c2,0x00000058,0x0003003e,0x000001c1,0x000001c2,0x0004003d,0x00000006, + 0x000001c4,0x000001a0,0x0003003e,0x000001c3,0x000001c4,0x0004003d,0x0000000d,0x000001c6, + 0x000001b2,0x0003003e,0x000001c5,0x000001c6,0x0003003e,0x000001c7,0x000001c0,0x00080039, + 0x00000002,0x000001c8,0x0000004e,0x000001c1,0x000001c3,0x000001c5,0x000001c7,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h b/gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h new file mode 100644 index 000000000..9b7382807 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h @@ -0,0 +1,307 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_RECONSTRUCT_PREVIOUS_DEPTH_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000014a,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000134,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004, + 0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75, + 0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70, + 0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f, + 0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004, + 0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b,0x41786666,0x6e495573,0x28323374, + 0x003b3166,0x00030005,0x0000000a,0x00000078,0x00060005,0x00000011,0x46786666,0x74636172, + 0x32667628,0x0000003b,0x00030005,0x00000010,0x00000078,0x00050005,0x00000016,0x646e6552, + 0x69537265,0x0028657a,0x000a0005,0x0000001b,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f, + 0x6365566e,0x28726f74,0x3b326976,0x00000000,0x00040005,0x0000001a,0x50785069,0x0000736f, + 0x00080005,0x0000001f,0x64616f4c,0x616c6944,0x44646574,0x68747065,0x32697628,0x0000003b, + 0x00040005,0x0000001e,0x50785069,0x0000736f,0x00090005,0x00000022,0x706d6153,0x6944656c, + 0x726f7473,0x6e6f6974,0x6c656946,0x66762864,0x00003b32,0x00030005,0x00000021,0x00765566, + 0x000f0005,0x00000027,0x61647055,0x65526574,0x736e6f63,0x63757274,0x44646574,0x68747065, + 0x65746e49,0x6c6f7072,0x64657461,0x6d617246,0x69762865,0x31663b32,0x0000003b,0x00050005, + 0x00000025,0x53785069,0x6c706d61,0x00000065,0x00040005,0x00000026,0x70654466,0x00006874, + 0x00080005,0x0000002c,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000, + 0x00060006,0x0000002c,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x0000002c, + 0x00000001,0x69655766,0x73746867,0x00000000,0x00060006,0x0000002c,0x00000002,0x73614269, + 0x736f5065,0x00000000,0x000b0005,0x00000030,0x42746547,0x6e696c69,0x53726165,0x6c706d61, + 0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x0000002e,0x00765566, + 0x00040005,0x0000002f,0x7a695369,0x00000065,0x00070005,0x00000036,0x6e4f7349,0x65726353, + 0x76286e65,0x763b3269,0x003b3269,0x00030005,0x00000034,0x00736f70,0x00040005,0x00000035, + 0x657a6973,0x00000000,0x000c0005,0x0000003f,0x6f636552,0x7274736e,0x50746375,0x44766572, + 0x68747065,0x32697628,0x3b31753b,0x763b3166,0x763b3266,0x003b3269,0x00040005,0x0000003a, + 0x50785069,0x0000736f,0x00050005,0x0000003b,0x74706564,0x72615468,0x00746567,0x00040005, + 0x0000003c,0x70654466,0x00006874,0x00060005,0x0000003d,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00060005,0x0000003e,0x44785069,0x68747065,0x657a6953,0x00000000,0x000a0005, + 0x00000043,0x6f636572,0x7274736e,0x50746375,0x69766572,0x4473756f,0x68747065,0x32697628, + 0x0000003b,0x00040005,0x00000042,0x50785069,0x0000736f,0x00040005,0x0000004f,0x49466263, + 0x0000745f,0x00060006,0x0000004f,0x00000000,0x646e6572,0x69537265,0x0000657a,0x00060006, + 0x0000004f,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006,0x0000004f,0x00000002, + 0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000004f,0x00000003,0x656d6163, + 0x654e6172,0x00007261,0x00060006,0x0000004f,0x00000004,0x656d6163,0x61466172,0x00000072, + 0x00080006,0x0000004f,0x00000005,0x63737075,0x72656c61,0x67726154,0x69537465,0x0000657a, + 0x00050006,0x0000004f,0x00000006,0x65646f4d,0x00000000,0x00050006,0x0000004f,0x00000007, + 0x65736572,0x00000074,0x00080006,0x0000004f,0x00000008,0x76654466,0x54656369,0x6569566f, + 0x70654477,0x00006874,0x00060006,0x0000004f,0x00000009,0x746c6564,0x6d695461,0x00000065, + 0x00090006,0x0000004f,0x0000000a,0x4c445548,0x41737365,0x63617474,0x46646568,0x6f746361, + 0x00000072,0x00080006,0x0000004f,0x0000000b,0x74736964,0x6974726f,0x69466e6f,0x53646c65, + 0x00657a69,0x00080006,0x0000004f,0x0000000c,0x6974706f,0x466c6163,0x53776f6c,0x656c6163, + 0x00000000,0x00090006,0x0000004f,0x0000000d,0x6974706f,0x466c6163,0x42776f6c,0x6b636f6c, + 0x657a6953,0x00000000,0x00070006,0x0000004f,0x0000000e,0x70736964,0x68637461,0x67616c46, + 0x00000073,0x00070006,0x0000004f,0x0000000f,0x5278616d,0x65646e65,0x7a695372,0x00000065, + 0x00090006,0x0000004f,0x00000010,0x6974706f,0x466c6163,0x48776f6c,0x52666c61,0x6f4d7365, + 0x00006564,0x00070006,0x0000004f,0x00000011,0x496d754e,0x6174736e,0x7365636e,0x00000000, + 0x00090006,0x0000004f,0x00000012,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e,0x73614274, + 0x00000065,0x00090006,0x0000004f,0x00000013,0x65746e69,0x6c6f7072,0x6f697461,0x6365526e, + 0x7a695374,0x00000065,0x00070006,0x0000004f,0x00000014,0x75626564,0x72614267,0x6f6c6f43, + 0x00000072,0x000a0006,0x0000004f,0x00000015,0x6b636162,0x66667542,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000004f,0x00000016,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00060006,0x0000004f,0x00000017,0x6e615466,0x666c6148,0x00564f46, + 0x00050006,0x0000004f,0x00000018,0x6461705f,0x00000031,0x00050006,0x0000004f,0x00000019, + 0x74694a66,0x00726574,0x00080006,0x0000004f,0x0000001a,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00040005,0x00000051,0x49466263,0x00000000,0x00090005,0x0000005a, + 0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00060005, + 0x00000061,0x69645f72,0x6574616c,0x65645f64,0x00687470,0x00090005,0x00000069,0x6e695f72, + 0x5f747570,0x74736964,0x6974726f,0x665f6e6f,0x646c6569,0x00000000,0x00060005,0x0000006d, + 0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00040005,0x00000077,0x70654475,0x00006874, + 0x00040005,0x00000078,0x61726170,0x0000006d,0x000d0005,0x0000007d,0x725f7772,0x6e6f6365, + 0x75727473,0x64657463,0x7065645f,0x695f6874,0x7265746e,0x616c6f70,0x5f646574,0x6d617266, + 0x00000065,0x00050005,0x00000084,0x53785066,0x6c706d61,0x00000065,0x00040005,0x0000008d, + 0x61746164,0x00000000,0x00040005,0x00000093,0x46785066,0x00636172,0x00040005,0x00000094, + 0x61726170,0x0000006d,0x00030005,0x000000cb,0x00765566,0x00060005,0x000000d3,0x696c6962, + 0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000000d8,0x61726170,0x0000006d,0x00040005, + 0x000000d9,0x61726170,0x0000006d,0x00060005,0x000000dc,0x6d615369,0x49656c70,0x7865646e, + 0x00000000,0x00040005,0x000000e5,0x66664f69,0x00746573,0x00050005,0x000000e9,0x6d615369, + 0x50656c70,0x0000736f,0x00060005,0x000000ee,0x6d615366,0x57656c70,0x68676965,0x00000074, + 0x00040005,0x000000f8,0x61726170,0x0000006d,0x00040005,0x000000fa,0x61726170,0x0000006d, + 0x00040005,0x00000102,0x61726170,0x0000006d,0x00040005,0x00000104,0x61726170,0x0000006d, + 0x00030005,0x00000109,0x00765566,0x00070005,0x00000111,0x73694466,0x74726f74,0x466e6f69, + 0x646c6569,0x00007655,0x00040005,0x00000112,0x61726170,0x0000006d,0x00080005,0x00000115, + 0x73694469,0x74726f74,0x506e6f69,0x6c657869,0x7366664f,0x00007465,0x00060005,0x0000011b, + 0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00040005,0x0000011f,0x61726170,0x0000006d, + 0x00060005,0x00000121,0x6c694466,0x64657461,0x74706544,0x00000068,0x00040005,0x00000125, + 0x61726170,0x0000006d,0x00040005,0x0000012a,0x61726170,0x0000006d,0x00040005,0x0000012c, + 0x61726170,0x0000006d,0x00040005,0x0000012d,0x61726170,0x0000006d,0x00040005,0x0000012f, + 0x61726170,0x0000006d,0x00040005,0x00000130,0x61726170,0x0000006d,0x00080005,0x00000134, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000138, + 0x61726170,0x0000006d,0x000a0005,0x0000013d,0x75635f72,0x6e657272,0x6e695f74,0x70726574, + 0x74616c6f,0x5f6e6f69,0x72756f73,0x00006563,0x00030047,0x0000004f,0x00000002,0x00050048, + 0x0000004f,0x00000000,0x00000023,0x00000000,0x00050048,0x0000004f,0x00000001,0x00000023, + 0x00000008,0x00050048,0x0000004f,0x00000002,0x00000023,0x00000010,0x00050048,0x0000004f, + 0x00000003,0x00000023,0x00000018,0x00050048,0x0000004f,0x00000004,0x00000023,0x0000001c, + 0x00050048,0x0000004f,0x00000005,0x00000023,0x00000020,0x00050048,0x0000004f,0x00000006, + 0x00000023,0x00000028,0x00050048,0x0000004f,0x00000007,0x00000023,0x0000002c,0x00050048, + 0x0000004f,0x00000008,0x00000023,0x00000030,0x00050048,0x0000004f,0x00000009,0x00000023, + 0x00000040,0x00050048,0x0000004f,0x0000000a,0x00000023,0x00000044,0x00050048,0x0000004f, + 0x0000000b,0x00000023,0x00000048,0x00050048,0x0000004f,0x0000000c,0x00000023,0x00000050, + 0x00050048,0x0000004f,0x0000000d,0x00000023,0x00000058,0x00050048,0x0000004f,0x0000000e, + 0x00000023,0x0000005c,0x00050048,0x0000004f,0x0000000f,0x00000023,0x00000060,0x00050048, + 0x0000004f,0x00000010,0x00000023,0x00000068,0x00050048,0x0000004f,0x00000011,0x00000023, + 0x0000006c,0x00050048,0x0000004f,0x00000012,0x00000023,0x00000070,0x00050048,0x0000004f, + 0x00000013,0x00000023,0x00000078,0x00050048,0x0000004f,0x00000014,0x00000023,0x00000080, + 0x00050048,0x0000004f,0x00000015,0x00000023,0x0000008c,0x00050048,0x0000004f,0x00000016, + 0x00000023,0x00000090,0x00050048,0x0000004f,0x00000017,0x00000023,0x00000098,0x00050048, + 0x0000004f,0x00000018,0x00000023,0x0000009c,0x00050048,0x0000004f,0x00000019,0x00000023, + 0x000000a0,0x00050048,0x0000004f,0x0000001a,0x00000023,0x000000a8,0x00040047,0x00000051, + 0x00000021,0x00000005,0x00040047,0x00000051,0x00000022,0x00000000,0x00040047,0x0000005a, + 0x00000021,0x00000000,0x00040047,0x0000005a,0x00000022,0x00000000,0x00040047,0x00000061, + 0x00000021,0x00000001,0x00040047,0x00000061,0x00000022,0x00000000,0x00040047,0x00000069, + 0x00000021,0x00000003,0x00040047,0x00000069,0x00000022,0x00000000,0x00040047,0x0000006d, + 0x00000021,0x000003e8,0x00040047,0x0000006d,0x00000022,0x00000000,0x00040047,0x0000007d, + 0x00000021,0x00000004,0x00040047,0x0000007d,0x00000022,0x00000000,0x00040047,0x00000134, + 0x0000000b,0x0000001c,0x00040047,0x0000013d,0x00000021,0x00000002,0x00040047,0x0000013d, + 0x00000022,0x00000000,0x00040047,0x00000149,0x0000000b,0x00000019,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00040015,0x00000008,0x00000020,0x00000000,0x00040021,0x00000009, + 0x00000008,0x00000007,0x00040017,0x0000000d,0x00000006,0x00000002,0x00040020,0x0000000e, + 0x00000007,0x0000000d,0x00040021,0x0000000f,0x0000000d,0x0000000e,0x00040015,0x00000013, + 0x00000020,0x00000001,0x00040017,0x00000014,0x00000013,0x00000002,0x00030021,0x00000015, + 0x00000014,0x00040020,0x00000018,0x00000007,0x00000014,0x00040021,0x00000019,0x0000000d, + 0x00000018,0x00040021,0x0000001d,0x00000006,0x00000018,0x00050021,0x00000024,0x00000002, + 0x00000018,0x00000007,0x0004002b,0x00000008,0x00000029,0x00000004,0x0004001c,0x0000002a, + 0x00000014,0x00000029,0x0004001c,0x0000002b,0x00000006,0x00000029,0x0005001e,0x0000002c, + 0x0000002a,0x0000002b,0x00000014,0x00050021,0x0000002d,0x0000002c,0x0000000e,0x00000018, + 0x00020014,0x00000032,0x00050021,0x00000033,0x00000032,0x00000018,0x00000018,0x00040020, + 0x00000038,0x00000007,0x00000008,0x00080021,0x00000039,0x00000002,0x00000018,0x00000038, + 0x00000007,0x0000000e,0x00000018,0x00040021,0x00000041,0x00000002,0x00000018,0x00040017, + 0x0000004d,0x00000006,0x00000004,0x00040017,0x0000004e,0x00000006,0x00000003,0x001d001e, + 0x0000004f,0x00000014,0x00000014,0x0000000d,0x00000006,0x00000006,0x00000014,0x00000013, + 0x00000013,0x0000004d,0x00000006,0x00000013,0x00000014,0x0000000d,0x00000013,0x00000008, + 0x00000014,0x00000013,0x00000013,0x00000014,0x00000014,0x0000004e,0x00000008,0x0000000d, + 0x00000006,0x00000013,0x0000000d,0x0000000d,0x00040020,0x00000050,0x00000002,0x0000004f, + 0x0004003b,0x00000050,0x00000051,0x00000002,0x0004002b,0x00000013,0x00000052,0x00000000, + 0x00040020,0x00000053,0x00000002,0x00000014,0x00090019,0x00000058,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000059,0x00000000, + 0x00000058,0x0004003b,0x00000059,0x0000005a,0x00000000,0x0004003b,0x00000059,0x00000061, + 0x00000000,0x0004002b,0x00000008,0x00000065,0x00000000,0x0004003b,0x00000059,0x00000069, + 0x00000000,0x0002001a,0x0000006b,0x00040020,0x0000006c,0x00000000,0x0000006b,0x0004003b, + 0x0000006c,0x0000006d,0x00000000,0x0003001b,0x0000006f,0x00000058,0x0004002b,0x00000006, + 0x00000072,0x00000000,0x00090019,0x0000007b,0x00000008,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000021,0x00040020,0x0000007c,0x00000000,0x0000007b,0x0004003b, + 0x0000007c,0x0000007d,0x00000000,0x00040020,0x00000080,0x0000000b,0x00000008,0x0004002b, + 0x00000008,0x00000082,0x00000001,0x0004002b,0x00000006,0x00000089,0x3f000000,0x0005002c, + 0x0000000d,0x0000008a,0x00000089,0x00000089,0x00040020,0x0000008c,0x00000007,0x0000002c, + 0x0004002b,0x00000013,0x0000008e,0x00000002,0x0005002c,0x00000014,0x00000097,0x00000052, + 0x00000052,0x0004002b,0x00000013,0x00000099,0x00000001,0x0005002c,0x00000014,0x0000009a, + 0x00000099,0x00000052,0x0005002c,0x00000014,0x0000009c,0x00000052,0x00000099,0x0004002b, + 0x00000013,0x0000009e,0x00000003,0x0005002c,0x00000014,0x0000009f,0x00000099,0x00000099, + 0x0004002b,0x00000006,0x000000a1,0x3f800000,0x00040017,0x000000c2,0x00000008,0x00000002, + 0x00040017,0x000000c6,0x00000032,0x00000002,0x00040020,0x000000db,0x00000007,0x00000013, + 0x0004002b,0x00000013,0x000000e3,0x00000004,0x0004002b,0x00000006,0x000000f3,0x3a83126f, + 0x00040017,0x00000132,0x00000008,0x00000003,0x00040020,0x00000133,0x00000001,0x00000132, + 0x0004003b,0x00000133,0x00000134,0x00000001,0x0004002b,0x00000006,0x0000013a,0x387fda40, + 0x0004002b,0x00000006,0x0000013b,0x477fe000,0x0004002b,0x00000006,0x0000013c,0x37801002, + 0x0004003b,0x00000059,0x0000013d,0x00000000,0x0004002b,0x00000006,0x0000013e,0x7f7fffff, + 0x0004002b,0x00000006,0x0000013f,0x00800000,0x0004002b,0x00000008,0x00000140,0x00000020, + 0x0004002b,0x00000008,0x00000141,0x00000010,0x0004002b,0x00000008,0x00000142,0x00000005, + 0x0004002b,0x00000008,0x00000143,0x0000000a,0x0004002b,0x00000008,0x00000144,0x80000000, + 0x0004002b,0x00000008,0x00000145,0x0000001f,0x0004002b,0x00000008,0x00000146,0x000003ff, + 0x0004002b,0x00000008,0x00000147,0x00000015,0x0004002b,0x00000008,0x00000148,0x00000008, + 0x0006002c,0x00000132,0x00000149,0x00000148,0x00000148,0x00000082,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000018,0x00000138, + 0x00000007,0x0004003d,0x00000132,0x00000135,0x00000134,0x0007004f,0x000000c2,0x00000136, + 0x00000135,0x00000135,0x00000000,0x00000001,0x0004007c,0x00000014,0x00000137,0x00000136, + 0x0003003e,0x00000138,0x00000137,0x00050039,0x00000002,0x00000139,0x00000043,0x00000138, + 0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037, + 0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000045,0x0000000a, + 0x0004007c,0x00000008,0x00000046,0x00000045,0x000200fe,0x00000046,0x00010038,0x00050036, + 0x0000000d,0x00000011,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x000200f8, + 0x00000012,0x0004003d,0x0000000d,0x00000049,0x00000010,0x0006000c,0x0000000d,0x0000004a, + 0x00000001,0x0000000a,0x00000049,0x000200fe,0x0000004a,0x00010038,0x00050036,0x00000014, + 0x00000016,0x00000000,0x00000015,0x000200f8,0x00000017,0x00050041,0x00000053,0x00000054, + 0x00000051,0x00000052,0x0004003d,0x00000014,0x00000055,0x00000054,0x000200fe,0x00000055, + 0x00010038,0x00050036,0x0000000d,0x0000001b,0x00000000,0x00000019,0x00030037,0x00000018, + 0x0000001a,0x000200f8,0x0000001c,0x0004003d,0x00000058,0x0000005b,0x0000005a,0x0004003d, + 0x00000014,0x0000005c,0x0000001a,0x0007005f,0x0000004d,0x0000005d,0x0000005b,0x0000005c, + 0x00000002,0x00000052,0x0007004f,0x0000000d,0x0000005e,0x0000005d,0x0000005d,0x00000000, + 0x00000001,0x000200fe,0x0000005e,0x00010038,0x00050036,0x00000006,0x0000001f,0x00000000, + 0x0000001d,0x00030037,0x00000018,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000058, + 0x00000062,0x00000061,0x0004003d,0x00000014,0x00000063,0x0000001e,0x0007005f,0x0000004d, + 0x00000064,0x00000062,0x00000063,0x00000002,0x00000052,0x00050051,0x00000006,0x00000066, + 0x00000064,0x00000000,0x000200fe,0x00000066,0x00010038,0x00050036,0x0000000d,0x00000022, + 0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000021,0x000200f8,0x00000023,0x0004003d, + 0x00000058,0x0000006a,0x00000069,0x0004003d,0x0000006b,0x0000006e,0x0000006d,0x00050056, + 0x0000006f,0x00000070,0x0000006a,0x0000006e,0x0004003d,0x0000000d,0x00000071,0x00000021, + 0x00070058,0x0000004d,0x00000073,0x00000070,0x00000071,0x00000002,0x00000072,0x0007004f, + 0x0000000d,0x00000074,0x00000073,0x00000073,0x00000000,0x00000001,0x000200fe,0x00000074, + 0x00010038,0x00050036,0x00000002,0x00000027,0x00000000,0x00000024,0x00030037,0x00000018, + 0x00000025,0x00030037,0x00000007,0x00000026,0x000200f8,0x00000028,0x0004003b,0x00000038, + 0x00000077,0x00000007,0x0004003b,0x00000007,0x00000078,0x00000007,0x0004003d,0x00000006, + 0x00000079,0x00000026,0x0003003e,0x00000078,0x00000079,0x00050039,0x00000008,0x0000007a, + 0x0000000b,0x00000078,0x0003003e,0x00000077,0x0000007a,0x0004003d,0x00000014,0x0000007e, + 0x00000025,0x0004003d,0x00000008,0x0000007f,0x00000077,0x0006003c,0x00000080,0x00000081, + 0x0000007d,0x0000007e,0x00000065,0x000700ef,0x00000008,0x00000083,0x00000081,0x00000082, + 0x00000065,0x0000007f,0x000100fd,0x00010038,0x00050036,0x0000002c,0x00000030,0x00000000, + 0x0000002d,0x00030037,0x0000000e,0x0000002e,0x00030037,0x00000018,0x0000002f,0x000200f8, + 0x00000031,0x0004003b,0x0000000e,0x00000084,0x00000007,0x0004003b,0x0000008c,0x0000008d, + 0x00000007,0x0004003b,0x0000000e,0x00000093,0x00000007,0x0004003b,0x0000000e,0x00000094, + 0x00000007,0x0004003d,0x0000000d,0x00000085,0x0000002e,0x0004003d,0x00000014,0x00000086, + 0x0000002f,0x0004006f,0x0000000d,0x00000087,0x00000086,0x00050085,0x0000000d,0x00000088, + 0x00000085,0x00000087,0x00050083,0x0000000d,0x0000008b,0x00000088,0x0000008a,0x0003003e, + 0x00000084,0x0000008b,0x0004003d,0x0000000d,0x0000008f,0x00000084,0x0006000c,0x0000000d, + 0x00000090,0x00000001,0x00000008,0x0000008f,0x0004006e,0x00000014,0x00000091,0x00000090, + 0x00050041,0x00000018,0x00000092,0x0000008d,0x0000008e,0x0003003e,0x00000092,0x00000091, + 0x0004003d,0x0000000d,0x00000095,0x00000084,0x0003003e,0x00000094,0x00000095,0x00050039, + 0x0000000d,0x00000096,0x00000011,0x00000094,0x0003003e,0x00000093,0x00000096,0x00060041, + 0x00000018,0x00000098,0x0000008d,0x00000052,0x00000052,0x0003003e,0x00000098,0x00000097, + 0x00060041,0x00000018,0x0000009b,0x0000008d,0x00000052,0x00000099,0x0003003e,0x0000009b, + 0x0000009a,0x00060041,0x00000018,0x0000009d,0x0000008d,0x00000052,0x0000008e,0x0003003e, + 0x0000009d,0x0000009c,0x00060041,0x00000018,0x000000a0,0x0000008d,0x00000052,0x0000009e, + 0x0003003e,0x000000a0,0x0000009f,0x00050041,0x00000007,0x000000a2,0x00000093,0x00000065, + 0x0004003d,0x00000006,0x000000a3,0x000000a2,0x00050083,0x00000006,0x000000a4,0x000000a1, + 0x000000a3,0x00050041,0x00000007,0x000000a5,0x00000093,0x00000082,0x0004003d,0x00000006, + 0x000000a6,0x000000a5,0x00050083,0x00000006,0x000000a7,0x000000a1,0x000000a6,0x00050085, + 0x00000006,0x000000a8,0x000000a4,0x000000a7,0x00060041,0x00000007,0x000000a9,0x0000008d, + 0x00000099,0x00000052,0x0003003e,0x000000a9,0x000000a8,0x00050041,0x00000007,0x000000aa, + 0x00000093,0x00000065,0x0004003d,0x00000006,0x000000ab,0x000000aa,0x00050041,0x00000007, + 0x000000ac,0x00000093,0x00000082,0x0004003d,0x00000006,0x000000ad,0x000000ac,0x00050083, + 0x00000006,0x000000ae,0x000000a1,0x000000ad,0x00050085,0x00000006,0x000000af,0x000000ab, + 0x000000ae,0x00060041,0x00000007,0x000000b0,0x0000008d,0x00000099,0x00000099,0x0003003e, + 0x000000b0,0x000000af,0x00050041,0x00000007,0x000000b1,0x00000093,0x00000065,0x0004003d, + 0x00000006,0x000000b2,0x000000b1,0x00050083,0x00000006,0x000000b3,0x000000a1,0x000000b2, + 0x00050041,0x00000007,0x000000b4,0x00000093,0x00000082,0x0004003d,0x00000006,0x000000b5, + 0x000000b4,0x00050085,0x00000006,0x000000b6,0x000000b3,0x000000b5,0x00060041,0x00000007, + 0x000000b7,0x0000008d,0x00000099,0x0000008e,0x0003003e,0x000000b7,0x000000b6,0x00050041, + 0x00000007,0x000000b8,0x00000093,0x00000065,0x0004003d,0x00000006,0x000000b9,0x000000b8, + 0x00050041,0x00000007,0x000000ba,0x00000093,0x00000082,0x0004003d,0x00000006,0x000000bb, + 0x000000ba,0x00050085,0x00000006,0x000000bc,0x000000b9,0x000000bb,0x00060041,0x00000007, + 0x000000bd,0x0000008d,0x00000099,0x0000009e,0x0003003e,0x000000bd,0x000000bc,0x0004003d, + 0x0000002c,0x000000be,0x0000008d,0x000200fe,0x000000be,0x00010038,0x00050036,0x00000032, + 0x00000036,0x00000000,0x00000033,0x00030037,0x00000018,0x00000034,0x00030037,0x00000018, + 0x00000035,0x000200f8,0x00000037,0x0004003d,0x00000014,0x000000c1,0x00000034,0x0004007c, + 0x000000c2,0x000000c3,0x000000c1,0x0004003d,0x00000014,0x000000c4,0x00000035,0x0004007c, + 0x000000c2,0x000000c5,0x000000c4,0x000500b0,0x000000c6,0x000000c7,0x000000c3,0x000000c5, + 0x0004009b,0x00000032,0x000000c8,0x000000c7,0x000200fe,0x000000c8,0x00010038,0x00050036, + 0x00000002,0x0000003f,0x00000000,0x00000039,0x00030037,0x00000018,0x0000003a,0x00030037, + 0x00000038,0x0000003b,0x00030037,0x00000007,0x0000003c,0x00030037,0x0000000e,0x0000003d, + 0x00030037,0x00000018,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x0000000e,0x000000cb, + 0x00000007,0x0004003b,0x0000008c,0x000000d3,0x00000007,0x0004003b,0x0000000e,0x000000d8, + 0x00000007,0x0004003b,0x00000018,0x000000d9,0x00000007,0x0004003b,0x000000db,0x000000dc, + 0x00000007,0x0004003b,0x00000018,0x000000e5,0x00000007,0x0004003b,0x00000018,0x000000e9, + 0x00000007,0x0004003b,0x00000007,0x000000ee,0x00000007,0x0004003b,0x00000018,0x000000f8, + 0x00000007,0x0004003b,0x00000018,0x000000fa,0x00000007,0x0004003b,0x00000018,0x00000102, + 0x00000007,0x0004003b,0x00000007,0x00000104,0x00000007,0x0004003d,0x00000014,0x000000cc, + 0x0000003a,0x0004006f,0x0000000d,0x000000cd,0x000000cc,0x00050050,0x0000000d,0x000000ce, + 0x00000089,0x00000089,0x00050081,0x0000000d,0x000000cf,0x000000cd,0x000000ce,0x0004003d, + 0x00000014,0x000000d0,0x0000003e,0x0004006f,0x0000000d,0x000000d1,0x000000d0,0x00050088, + 0x0000000d,0x000000d2,0x000000cf,0x000000d1,0x0003003e,0x000000cb,0x000000d2,0x0004003d, + 0x0000000d,0x000000d4,0x000000cb,0x0004003d,0x0000000d,0x000000d5,0x0000003d,0x00050081, + 0x0000000d,0x000000d6,0x000000d4,0x000000d5,0x00040039,0x00000014,0x000000d7,0x00000016, + 0x0003003e,0x000000d8,0x000000d6,0x0003003e,0x000000d9,0x000000d7,0x00060039,0x0000002c, + 0x000000da,0x00000030,0x000000d8,0x000000d9,0x0003003e,0x000000d3,0x000000da,0x0003003e, + 0x000000dc,0x00000052,0x000200f9,0x000000dd,0x000200f8,0x000000dd,0x000400f6,0x000000df, + 0x000000e0,0x00000000,0x000200f9,0x000000e1,0x000200f8,0x000000e1,0x0004003d,0x00000013, + 0x000000e2,0x000000dc,0x000500b1,0x00000032,0x000000e4,0x000000e2,0x000000e3,0x000400fa, + 0x000000e4,0x000000de,0x000000df,0x000200f8,0x000000de,0x0004003d,0x00000013,0x000000e6, + 0x000000dc,0x00060041,0x00000018,0x000000e7,0x000000d3,0x00000052,0x000000e6,0x0004003d, + 0x00000014,0x000000e8,0x000000e7,0x0003003e,0x000000e5,0x000000e8,0x00050041,0x00000018, + 0x000000ea,0x000000d3,0x0000008e,0x0004003d,0x00000014,0x000000eb,0x000000ea,0x0004003d, + 0x00000014,0x000000ec,0x000000e5,0x00050080,0x00000014,0x000000ed,0x000000eb,0x000000ec, + 0x0003003e,0x000000e9,0x000000ed,0x0004003d,0x00000013,0x000000ef,0x000000dc,0x00060041, + 0x00000007,0x000000f0,0x000000d3,0x00000099,0x000000ef,0x0004003d,0x00000006,0x000000f1, + 0x000000f0,0x0003003e,0x000000ee,0x000000f1,0x0004003d,0x00000006,0x000000f2,0x000000ee, + 0x000500ba,0x00000032,0x000000f4,0x000000f2,0x000000f3,0x000300f7,0x000000f6,0x00000000, + 0x000400fa,0x000000f4,0x000000f5,0x000000f6,0x000200f8,0x000000f5,0x00040039,0x00000014, + 0x000000f7,0x00000016,0x0004003d,0x00000014,0x000000f9,0x000000e9,0x0003003e,0x000000f8, + 0x000000f9,0x0003003e,0x000000fa,0x000000f7,0x00060039,0x00000032,0x000000fb,0x00000036, + 0x000000f8,0x000000fa,0x000300f7,0x000000fd,0x00000000,0x000400fa,0x000000fb,0x000000fc, + 0x000000fd,0x000200f8,0x000000fc,0x0004003d,0x00000008,0x000000fe,0x0000003b,0x000500ab, + 0x00000032,0x000000ff,0x000000fe,0x00000065,0x000300f7,0x00000101,0x00000000,0x000400fa, + 0x000000ff,0x00000100,0x00000101,0x000200f8,0x00000100,0x0004003d,0x00000014,0x00000103, + 0x000000e9,0x0003003e,0x00000102,0x00000103,0x0004003d,0x00000006,0x00000105,0x0000003c, + 0x0003003e,0x00000104,0x00000105,0x00060039,0x00000002,0x00000106,0x00000027,0x00000102, + 0x00000104,0x000200f9,0x00000101,0x000200f8,0x00000101,0x000200f9,0x000000fd,0x000200f8, + 0x000000fd,0x000200f9,0x000000f6,0x000200f8,0x000000f6,0x000200f9,0x000000e0,0x000200f8, + 0x000000e0,0x0004003d,0x00000013,0x00000107,0x000000dc,0x00050080,0x00000013,0x00000108, + 0x00000107,0x00000099,0x0003003e,0x000000dc,0x00000108,0x000200f9,0x000000dd,0x000200f8, + 0x000000df,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000043,0x00000000,0x00000041, + 0x00030037,0x00000018,0x00000042,0x000200f8,0x00000044,0x0004003b,0x0000000e,0x00000109, + 0x00000007,0x0004003b,0x0000000e,0x00000111,0x00000007,0x0004003b,0x0000000e,0x00000112, + 0x00000007,0x0004003b,0x00000018,0x00000115,0x00000007,0x0004003b,0x0000000e,0x0000011b, + 0x00000007,0x0004003b,0x00000018,0x0000011f,0x00000007,0x0004003b,0x00000007,0x00000121, + 0x00000007,0x0004003b,0x00000018,0x00000125,0x00000007,0x0004003b,0x00000018,0x0000012a, + 0x00000007,0x0004003b,0x00000038,0x0000012c,0x00000007,0x0004003b,0x00000007,0x0000012d, + 0x00000007,0x0004003b,0x0000000e,0x0000012f,0x00000007,0x0004003b,0x00000018,0x00000130, + 0x00000007,0x0004003d,0x00000014,0x0000010a,0x00000042,0x0004006f,0x0000000d,0x0000010b, + 0x0000010a,0x00050050,0x0000000d,0x0000010c,0x00000089,0x00000089,0x00050081,0x0000000d, + 0x0000010d,0x0000010b,0x0000010c,0x00040039,0x00000014,0x0000010e,0x00000016,0x0004006f, + 0x0000000d,0x0000010f,0x0000010e,0x00050088,0x0000000d,0x00000110,0x0000010d,0x0000010f, + 0x0003003e,0x00000109,0x00000110,0x0004003d,0x0000000d,0x00000113,0x00000109,0x0003003e, + 0x00000112,0x00000113,0x00050039,0x0000000d,0x00000114,0x00000022,0x00000112,0x0003003e, + 0x00000111,0x00000114,0x0004003d,0x0000000d,0x00000116,0x00000111,0x00040039,0x00000014, + 0x00000117,0x00000016,0x0004006f,0x0000000d,0x00000118,0x00000117,0x00050085,0x0000000d, + 0x00000119,0x00000116,0x00000118,0x0004006e,0x00000014,0x0000011a,0x00000119,0x0003003e, + 0x00000115,0x0000011a,0x0004003d,0x00000014,0x0000011c,0x00000042,0x0004003d,0x00000014, + 0x0000011d,0x00000115,0x00050080,0x00000014,0x0000011e,0x0000011c,0x0000011d,0x0003003e, + 0x0000011f,0x0000011e,0x00050039,0x0000000d,0x00000120,0x0000001b,0x0000011f,0x0003003e, + 0x0000011b,0x00000120,0x0004003d,0x00000014,0x00000122,0x00000042,0x0004003d,0x00000014, + 0x00000123,0x00000115,0x00050080,0x00000014,0x00000124,0x00000122,0x00000123,0x0003003e, + 0x00000125,0x00000124,0x00050039,0x00000006,0x00000126,0x0000001f,0x00000125,0x0003003e, + 0x00000121,0x00000126,0x0004003d,0x0000000d,0x00000127,0x0000011b,0x0005008e,0x0000000d, + 0x00000128,0x00000127,0x00000089,0x00040039,0x00000014,0x00000129,0x00000016,0x0004003d, + 0x00000014,0x0000012b,0x00000042,0x0003003e,0x0000012a,0x0000012b,0x0003003e,0x0000012c, + 0x00000082,0x0004003d,0x00000006,0x0000012e,0x00000121,0x0003003e,0x0000012d,0x0000012e, + 0x0003003e,0x0000012f,0x00000128,0x0003003e,0x00000130,0x00000129,0x00090039,0x00000002, + 0x00000131,0x0000003f,0x0000012a,0x0000012c,0x0000012d,0x0000012f,0x00000130,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_fi_setup_comp_spv.h b/gpu/vk/shaders/fsr3_fi_setup_comp_spv.h new file mode 100644 index 000000000..27542e630 --- /dev/null +++ b/gpu/vk/shaders/fsr3_fi_setup_comp_spv.h @@ -0,0 +1,232 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_FI_SETUP_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000000d1,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000000b7, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00040005,0x00000008,0x65736552, + 0x00002874,0x00070005,0x0000000a,0x53736148,0x656e6563,0x6e616843,0x28646567,0x00000000, + 0x000a0005,0x00000015,0x726f7453,0x73694465,0x6c63636f,0x6f697375,0x73614d6e,0x6976286b, + 0x66763b32,0x00003b32,0x00040005,0x00000013,0x50785069,0x0000736f,0x00030005,0x00000014, + 0x006c6176,0x000b0005,0x0000001c,0x726f7453,0x6d614765,0x746f4d65,0x566e6f69,0x6f746365, + 0x65694672,0x2858646c,0x3b326976,0x003b3175,0x00040005,0x0000001a,0x50785069,0x0000736f, + 0x00030005,0x0000001b,0x006c6176,0x000b0005,0x00000020,0x726f7453,0x6d614765,0x746f4d65, + 0x566e6f69,0x6f746365,0x65694672,0x2859646c,0x3b326976,0x003b3175,0x00040005,0x0000001e, + 0x50785069,0x0000736f,0x00030005,0x0000001f,0x006c6176,0x000d0005,0x00000024,0x726f7453, + 0x74704f65,0x6c616369,0x776f6c66,0x69746f4d,0x65566e6f,0x726f7463,0x6c656946,0x76285864, + 0x753b3269,0x00003b31,0x00040005,0x00000022,0x50785069,0x0000736f,0x00030005,0x00000023, + 0x006c6176,0x000d0005,0x00000028,0x726f7453,0x74704f65,0x6c616369,0x776f6c66,0x69746f4d, + 0x65566e6f,0x726f7463,0x6c656946,0x76285964,0x753b3269,0x00003b31,0x00040005,0x00000026, + 0x50785069,0x0000736f,0x00030005,0x00000027,0x006c6176,0x00070005,0x0000002d,0x6f4c5752, + 0x6f436461,0x65746e75,0x31692872,0x0000003b,0x00040005,0x0000002c,0x50785069,0x0000736f, + 0x00070005,0x00000032,0x726f7453,0x756f4365,0x7265746e,0x3b316928,0x003b3175,0x00040005, + 0x00000030,0x50785069,0x0000736f,0x00040005,0x00000031,0x6e756f63,0x00726574,0x000c0005, + 0x00000036,0x75746573,0x61724670,0x6e69656d,0x70726574,0x74616c6f,0x526e6f69,0x756f7365, + 0x73656372,0x32697628,0x0000003b,0x00040005,0x00000035,0x50785069,0x0000736f,0x00040005, + 0x0000003a,0x49466263,0x0000745f,0x00060006,0x0000003a,0x00000000,0x646e6572,0x69537265, + 0x0000657a,0x00060006,0x0000003a,0x00000001,0x70736964,0x5379616c,0x00657a69,0x00070006, + 0x0000003a,0x00000002,0x70736964,0x5379616c,0x52657a69,0x00007063,0x00060006,0x0000003a, + 0x00000003,0x656d6163,0x654e6172,0x00007261,0x00060006,0x0000003a,0x00000004,0x656d6163, + 0x61466172,0x00000072,0x00080006,0x0000003a,0x00000005,0x63737075,0x72656c61,0x67726154, + 0x69537465,0x0000657a,0x00050006,0x0000003a,0x00000006,0x65646f4d,0x00000000,0x00050006, + 0x0000003a,0x00000007,0x65736572,0x00000074,0x00080006,0x0000003a,0x00000008,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00060006,0x0000003a,0x00000009,0x746c6564, + 0x6d695461,0x00000065,0x00090006,0x0000003a,0x0000000a,0x4c445548,0x41737365,0x63617474, + 0x46646568,0x6f746361,0x00000072,0x00080006,0x0000003a,0x0000000b,0x74736964,0x6974726f, + 0x69466e6f,0x53646c65,0x00657a69,0x00080006,0x0000003a,0x0000000c,0x6974706f,0x466c6163, + 0x53776f6c,0x656c6163,0x00000000,0x00090006,0x0000003a,0x0000000d,0x6974706f,0x466c6163, + 0x42776f6c,0x6b636f6c,0x657a6953,0x00000000,0x00070006,0x0000003a,0x0000000e,0x70736964, + 0x68637461,0x67616c46,0x00000073,0x00070006,0x0000003a,0x0000000f,0x5278616d,0x65646e65, + 0x7a695372,0x00000065,0x00090006,0x0000003a,0x00000010,0x6974706f,0x466c6163,0x48776f6c, + 0x52666c61,0x6f4d7365,0x00006564,0x00070006,0x0000003a,0x00000011,0x496d754e,0x6174736e, + 0x7365636e,0x00000000,0x00090006,0x0000003a,0x00000012,0x65746e69,0x6c6f7072,0x6f697461, + 0x6365526e,0x73614274,0x00000065,0x00090006,0x0000003a,0x00000013,0x65746e69,0x6c6f7072, + 0x6f697461,0x6365526e,0x7a695374,0x00000065,0x00070006,0x0000003a,0x00000014,0x75626564, + 0x72614267,0x6f6c6f43,0x00000072,0x000a0006,0x0000003a,0x00000015,0x6b636162,0x66667542, + 0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x0000003a,0x00000016, + 0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00060006,0x0000003a,0x00000017,0x6e615466, + 0x666c6148,0x00564f46,0x00050006,0x0000003a,0x00000018,0x6461705f,0x00000031,0x00050006, + 0x0000003a,0x00000019,0x74694a66,0x00726574,0x00080006,0x0000003a,0x0000001a,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00040005,0x0000003c,0x49466263,0x00000000, + 0x00070005,0x00000047,0x706f5f72,0x61636974,0x6c665f6c,0x735f776f,0x00006463,0x00080005, + 0x00000056,0x645f7772,0x636f7369,0x73756c63,0x5f6e6f69,0x6b73616d,0x00000000,0x000a0005, + 0x00000060,0x675f7772,0x5f656d61,0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65, + 0x00000078,0x000a0005,0x00000065,0x675f7772,0x5f656d61,0x69746f6d,0x765f6e6f,0x6f746365, + 0x69665f72,0x5f646c65,0x00000079,0x000c0005,0x0000006a,0x6f5f7772,0x63697470,0x665f6c61, + 0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365,0x69665f72,0x5f646c65,0x00000078,0x000c0005, + 0x0000006f,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x69746f6d,0x765f6e6f,0x6f746365, + 0x69665f72,0x5f646c65,0x00000079,0x000a0005,0x00000075,0x6d617246,0x746e4965,0x6f707265, + 0x6974616c,0x57526e6f,0x6e756f43,0x73726574,0x0000745f,0x00050006,0x00000075,0x00000000, + 0x61746164,0x00000000,0x00050005,0x00000077,0x635f7772,0x746e756f,0x00737265,0x00040005, + 0x00000081,0x61726170,0x0000006d,0x00040005,0x00000082,0x61726170,0x0000006d,0x00040005, + 0x00000093,0x61726170,0x0000006d,0x00040005,0x00000094,0x61726170,0x0000006d,0x00040005, + 0x00000097,0x6e756f63,0x00726574,0x00040005,0x00000098,0x61726170,0x0000006d,0x00040005, + 0x0000009d,0x61726170,0x0000006d,0x00040005,0x0000009e,0x61726170,0x0000006d,0x00040005, + 0x000000a0,0x61726170,0x0000006d,0x00040005,0x000000a2,0x61726170,0x0000006d,0x00040005, + 0x000000a4,0x61726170,0x0000006d,0x00040005,0x000000a6,0x61726170,0x0000006d,0x00040005, + 0x000000a8,0x61726170,0x0000006d,0x00040005,0x000000aa,0x61726170,0x0000006d,0x00040005, + 0x000000ac,0x61726170,0x0000006d,0x00040005,0x000000ae,0x61726170,0x0000006d,0x00040005, + 0x000000b1,0x61726170,0x0000006d,0x00040005,0x000000b3,0x61726170,0x0000006d,0x00080005, + 0x000000b7,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005, + 0x000000bc,0x61726170,0x0000006d,0x00060005,0x000000c3,0x694c5f73,0x7261656e,0x6d616c43, + 0x00000070,0x00030047,0x0000003a,0x00000002,0x00050048,0x0000003a,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000003a,0x00000001,0x00000023,0x00000008,0x00050048,0x0000003a, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000003a,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000003a,0x00000004,0x00000023,0x0000001c,0x00050048,0x0000003a,0x00000005, + 0x00000023,0x00000020,0x00050048,0x0000003a,0x00000006,0x00000023,0x00000028,0x00050048, + 0x0000003a,0x00000007,0x00000023,0x0000002c,0x00050048,0x0000003a,0x00000008,0x00000023, + 0x00000030,0x00050048,0x0000003a,0x00000009,0x00000023,0x00000040,0x00050048,0x0000003a, + 0x0000000a,0x00000023,0x00000044,0x00050048,0x0000003a,0x0000000b,0x00000023,0x00000048, + 0x00050048,0x0000003a,0x0000000c,0x00000023,0x00000050,0x00050048,0x0000003a,0x0000000d, + 0x00000023,0x00000058,0x00050048,0x0000003a,0x0000000e,0x00000023,0x0000005c,0x00050048, + 0x0000003a,0x0000000f,0x00000023,0x00000060,0x00050048,0x0000003a,0x00000010,0x00000023, + 0x00000068,0x00050048,0x0000003a,0x00000011,0x00000023,0x0000006c,0x00050048,0x0000003a, + 0x00000012,0x00000023,0x00000070,0x00050048,0x0000003a,0x00000013,0x00000023,0x00000078, + 0x00050048,0x0000003a,0x00000014,0x00000023,0x00000080,0x00050048,0x0000003a,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000003a,0x00000016,0x00000023,0x00000090,0x00050048, + 0x0000003a,0x00000017,0x00000023,0x00000098,0x00050048,0x0000003a,0x00000018,0x00000023, + 0x0000009c,0x00050048,0x0000003a,0x00000019,0x00000023,0x000000a0,0x00050048,0x0000003a, + 0x0000001a,0x00000023,0x000000a8,0x00040047,0x0000003c,0x00000021,0x00000007,0x00040047, + 0x0000003c,0x00000022,0x00000000,0x00040047,0x00000047,0x00000021,0x00000000,0x00040047, + 0x00000047,0x00000022,0x00000000,0x00040047,0x00000056,0x00000021,0x00000005,0x00040047, + 0x00000056,0x00000022,0x00000000,0x00040047,0x00000060,0x00000021,0x00000001,0x00040047, + 0x00000060,0x00000022,0x00000000,0x00040047,0x00000065,0x00000021,0x00000002,0x00040047, + 0x00000065,0x00000022,0x00000000,0x00040047,0x0000006a,0x00000021,0x00000003,0x00040047, + 0x0000006a,0x00000022,0x00000000,0x00040047,0x0000006f,0x00000021,0x00000004,0x00040047, + 0x0000006f,0x00000022,0x00000000,0x00040047,0x00000074,0x00000006,0x00000004,0x00030047, + 0x00000075,0x00000002,0x00040048,0x00000075,0x00000000,0x00000017,0x00050048,0x00000075, + 0x00000000,0x00000023,0x00000000,0x00030047,0x00000077,0x00000017,0x00040047,0x00000077, + 0x00000021,0x00000006,0x00040047,0x00000077,0x00000022,0x00000000,0x00040047,0x000000b7, + 0x0000000b,0x0000001c,0x00040047,0x000000c3,0x00000021,0x000003e8,0x00040047,0x000000c3, + 0x00000022,0x00000000,0x00040047,0x000000d0,0x0000000b,0x00000019,0x00020013,0x00000002, + 0x00030021,0x00000003,0x00000002,0x00020014,0x00000006,0x00030021,0x00000007,0x00000006, + 0x00040015,0x0000000c,0x00000020,0x00000001,0x00040017,0x0000000d,0x0000000c,0x00000002, + 0x00040020,0x0000000e,0x00000007,0x0000000d,0x00030016,0x0000000f,0x00000020,0x00040017, + 0x00000010,0x0000000f,0x00000002,0x00040020,0x00000011,0x00000007,0x00000010,0x00050021, + 0x00000012,0x00000002,0x0000000e,0x00000011,0x00040015,0x00000017,0x00000020,0x00000000, + 0x00040020,0x00000018,0x00000007,0x00000017,0x00050021,0x00000019,0x00000002,0x0000000e, + 0x00000018,0x00040020,0x0000002a,0x00000007,0x0000000c,0x00040021,0x0000002b,0x00000017, + 0x0000002a,0x00050021,0x0000002f,0x00000002,0x0000002a,0x00000018,0x00040021,0x00000034, + 0x00000002,0x0000000e,0x00040017,0x00000038,0x0000000f,0x00000004,0x00040017,0x00000039, + 0x0000000f,0x00000003,0x001d001e,0x0000003a,0x0000000d,0x0000000d,0x00000010,0x0000000f, + 0x0000000f,0x0000000d,0x0000000c,0x0000000c,0x00000038,0x0000000f,0x0000000c,0x0000000d, + 0x00000010,0x0000000c,0x00000017,0x0000000d,0x0000000c,0x0000000c,0x0000000d,0x0000000d, + 0x00000039,0x00000017,0x00000010,0x0000000f,0x0000000c,0x00000010,0x00000010,0x00040020, + 0x0000003b,0x00000002,0x0000003a,0x0004003b,0x0000003b,0x0000003c,0x00000002,0x0004002b, + 0x0000000c,0x0000003d,0x00000007,0x00040020,0x0000003e,0x00000002,0x0000000c,0x0004002b, + 0x0000000c,0x00000041,0x00000001,0x00090019,0x00000045,0x00000017,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000046,0x00000000,0x00000045, + 0x0004003b,0x00000046,0x00000047,0x00000000,0x0004002b,0x0000000c,0x00000049,0x00000000, + 0x0005002c,0x0000000d,0x0000004a,0x00000041,0x00000049,0x00040017,0x0000004b,0x00000017, + 0x00000004,0x0004002b,0x00000017,0x0000004d,0x00000000,0x0004002b,0x00000017,0x0000004f, + 0x0000000f,0x00090019,0x00000054,0x0000000f,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000000d,0x00040020,0x00000055,0x00000000,0x00000054,0x0004003b,0x00000055, + 0x00000056,0x00000000,0x0004002b,0x0000000f,0x0000005a,0x00000000,0x00090019,0x0000005e, + 0x00000017,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020, + 0x0000005f,0x00000000,0x0000005e,0x0004003b,0x0000005f,0x00000060,0x00000000,0x0004003b, + 0x0000005f,0x00000065,0x00000000,0x0004003b,0x0000005f,0x0000006a,0x00000000,0x0004003b, + 0x0000005f,0x0000006f,0x00000000,0x0003001d,0x00000074,0x00000017,0x0003001e,0x00000075, + 0x00000074,0x00040020,0x00000076,0x0000000c,0x00000075,0x0004003b,0x00000076,0x00000077, + 0x0000000c,0x00040020,0x00000079,0x0000000c,0x00000017,0x0005002c,0x0000000d,0x00000085, + 0x00000049,0x00000049,0x00040017,0x00000086,0x00000006,0x00000002,0x0004002b,0x00000017, + 0x0000009b,0x00000001,0x0005002c,0x00000010,0x000000b0,0x0000005a,0x0000005a,0x00040017, + 0x000000b5,0x00000017,0x00000003,0x00040020,0x000000b6,0x00000001,0x000000b5,0x0004003b, + 0x000000b6,0x000000b7,0x00000001,0x00040017,0x000000b8,0x00000017,0x00000002,0x0004002b, + 0x0000000f,0x000000be,0x387fda40,0x0004002b,0x0000000f,0x000000bf,0x477fe000,0x0004002b, + 0x0000000f,0x000000c0,0x37801002,0x0002001a,0x000000c1,0x00040020,0x000000c2,0x00000000, + 0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000000,0x0004002b,0x0000000f,0x000000c4, + 0x3a83126f,0x0004002b,0x0000000f,0x000000c5,0x7f7fffff,0x0004002b,0x0000000f,0x000000c6, + 0x00800000,0x0004002b,0x00000017,0x000000c7,0x00000020,0x0004002b,0x00000017,0x000000c8, + 0x00000010,0x0004002b,0x00000017,0x000000c9,0x00000005,0x0004002b,0x00000017,0x000000ca, + 0x0000000a,0x0004002b,0x00000017,0x000000cb,0x80000000,0x0004002b,0x00000017,0x000000cc, + 0x0000001f,0x0004002b,0x00000017,0x000000cd,0x000003ff,0x0004002b,0x00000017,0x000000ce, + 0x00000015,0x0004002b,0x00000017,0x000000cf,0x00000008,0x0006002c,0x000000b5,0x000000d0, + 0x000000cf,0x000000cf,0x0000009b,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000000e,0x000000bc,0x00000007,0x0004003d,0x000000b5, + 0x000000b9,0x000000b7,0x0007004f,0x000000b8,0x000000ba,0x000000b9,0x000000b9,0x00000000, + 0x00000001,0x0004007c,0x0000000d,0x000000bb,0x000000ba,0x0003003e,0x000000bc,0x000000bb, + 0x00050039,0x00000002,0x000000bd,0x00000036,0x000000bc,0x000100fd,0x00010038,0x00050036, + 0x00000006,0x00000008,0x00000000,0x00000007,0x000200f8,0x00000009,0x00050041,0x0000003e, + 0x0000003f,0x0000003c,0x0000003d,0x0004003d,0x0000000c,0x00000040,0x0000003f,0x000500aa, + 0x00000006,0x00000042,0x00000040,0x00000041,0x000200fe,0x00000042,0x00010038,0x00050036, + 0x00000006,0x0000000a,0x00000000,0x00000007,0x000200f8,0x0000000b,0x0004003d,0x00000045, + 0x00000048,0x00000047,0x0007005f,0x0000004b,0x0000004c,0x00000048,0x0000004a,0x00000002, + 0x00000049,0x00050051,0x00000017,0x0000004e,0x0000004c,0x00000000,0x000500c7,0x00000017, + 0x00000050,0x0000004e,0x0000004f,0x000500ab,0x00000006,0x00000051,0x00000050,0x0000004d, + 0x000200fe,0x00000051,0x00010038,0x00050036,0x00000002,0x00000015,0x00000000,0x00000012, + 0x00030037,0x0000000e,0x00000013,0x00030037,0x00000011,0x00000014,0x000200f8,0x00000016, + 0x0004003d,0x00000054,0x00000057,0x00000056,0x0004003d,0x0000000d,0x00000058,0x00000013, + 0x0004003d,0x00000010,0x00000059,0x00000014,0x00050051,0x0000000f,0x0000005b,0x00000059, + 0x00000000,0x00050051,0x0000000f,0x0000005c,0x00000059,0x00000001,0x00070050,0x00000038, + 0x0000005d,0x0000005b,0x0000005c,0x0000005a,0x0000005a,0x00040063,0x00000057,0x00000058, + 0x0000005d,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000001c,0x00000000,0x00000019, + 0x00030037,0x0000000e,0x0000001a,0x00030037,0x00000018,0x0000001b,0x000200f8,0x0000001d, + 0x0004003d,0x0000005e,0x00000061,0x00000060,0x0004003d,0x0000000d,0x00000062,0x0000001a, + 0x0004003d,0x00000017,0x00000063,0x0000001b,0x00070050,0x0000004b,0x00000064,0x00000063, + 0x0000004d,0x0000004d,0x0000004d,0x00040063,0x00000061,0x00000062,0x00000064,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000020,0x00000000,0x00000019,0x00030037,0x0000000e, + 0x0000001e,0x00030037,0x00000018,0x0000001f,0x000200f8,0x00000021,0x0004003d,0x0000005e, + 0x00000066,0x00000065,0x0004003d,0x0000000d,0x00000067,0x0000001e,0x0004003d,0x00000017, + 0x00000068,0x0000001f,0x00070050,0x0000004b,0x00000069,0x00000068,0x0000004d,0x0000004d, + 0x0000004d,0x00040063,0x00000066,0x00000067,0x00000069,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000024,0x00000000,0x00000019,0x00030037,0x0000000e,0x00000022,0x00030037, + 0x00000018,0x00000023,0x000200f8,0x00000025,0x0004003d,0x0000005e,0x0000006b,0x0000006a, + 0x0004003d,0x0000000d,0x0000006c,0x00000022,0x0004003d,0x00000017,0x0000006d,0x00000023, + 0x00070050,0x0000004b,0x0000006e,0x0000006d,0x0000004d,0x0000004d,0x0000004d,0x00040063, + 0x0000006b,0x0000006c,0x0000006e,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000028, + 0x00000000,0x00000019,0x00030037,0x0000000e,0x00000026,0x00030037,0x00000018,0x00000027, + 0x000200f8,0x00000029,0x0004003d,0x0000005e,0x00000070,0x0000006f,0x0004003d,0x0000000d, + 0x00000071,0x00000026,0x0004003d,0x00000017,0x00000072,0x00000027,0x00070050,0x0000004b, + 0x00000073,0x00000072,0x0000004d,0x0000004d,0x0000004d,0x00040063,0x00000070,0x00000071, + 0x00000073,0x000100fd,0x00010038,0x00050036,0x00000017,0x0000002d,0x00000000,0x0000002b, + 0x00030037,0x0000002a,0x0000002c,0x000200f8,0x0000002e,0x0004003d,0x0000000c,0x00000078, + 0x0000002c,0x00060041,0x00000079,0x0000007a,0x00000077,0x00000049,0x00000078,0x0004003d, + 0x00000017,0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038,0x00050036,0x00000002, + 0x00000032,0x00000000,0x0000002f,0x00030037,0x0000002a,0x00000030,0x00030037,0x00000018, + 0x00000031,0x000200f8,0x00000033,0x0004003d,0x0000000c,0x0000007e,0x00000030,0x0004003d, + 0x00000017,0x0000007f,0x00000031,0x00060041,0x00000079,0x00000080,0x00000077,0x00000049, + 0x0000007e,0x0003003e,0x00000080,0x0000007f,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000036,0x00000000,0x00000034,0x00030037,0x0000000e,0x00000035,0x000200f8,0x00000037, + 0x0004003b,0x0000002a,0x00000081,0x00000007,0x0004003b,0x00000018,0x00000082,0x00000007, + 0x0004003b,0x0000002a,0x00000093,0x00000007,0x0004003b,0x00000018,0x00000094,0x00000007, + 0x0004003b,0x00000018,0x00000097,0x00000007,0x0004003b,0x0000002a,0x00000098,0x00000007, + 0x0004003b,0x0000002a,0x0000009d,0x00000007,0x0004003b,0x00000018,0x0000009e,0x00000007, + 0x0004003b,0x0000000e,0x000000a0,0x00000007,0x0004003b,0x00000018,0x000000a2,0x00000007, + 0x0004003b,0x0000000e,0x000000a4,0x00000007,0x0004003b,0x00000018,0x000000a6,0x00000007, + 0x0004003b,0x0000000e,0x000000a8,0x00000007,0x0004003b,0x00000018,0x000000aa,0x00000007, + 0x0004003b,0x0000000e,0x000000ac,0x00000007,0x0004003b,0x00000018,0x000000ae,0x00000007, + 0x0004003b,0x0000000e,0x000000b1,0x00000007,0x0004003b,0x00000011,0x000000b3,0x00000007, + 0x0003003e,0x00000081,0x00000049,0x0003003e,0x00000082,0x0000004d,0x00060039,0x00000002, + 0x00000083,0x00000032,0x00000081,0x00000082,0x0004003d,0x0000000d,0x00000084,0x00000035, + 0x000500aa,0x00000086,0x00000087,0x00000084,0x00000085,0x0004009b,0x00000006,0x00000088, + 0x00000087,0x000300f7,0x0000008a,0x00000000,0x000400fa,0x00000088,0x00000089,0x0000008a, + 0x000200f8,0x00000089,0x00040039,0x00000006,0x0000008b,0x00000008,0x000400a8,0x00000006, + 0x0000008c,0x0000008b,0x000300f7,0x0000008e,0x00000000,0x000400fa,0x0000008c,0x0000008d, + 0x0000008e,0x000200f8,0x0000008d,0x00040039,0x00000006,0x0000008f,0x0000000a,0x000200f9, + 0x0000008e,0x000200f8,0x0000008e,0x000700f5,0x00000006,0x00000090,0x0000008b,0x00000089, + 0x0000008f,0x0000008d,0x000300f7,0x00000092,0x00000000,0x000400fa,0x00000090,0x00000091, + 0x00000096,0x000200f8,0x00000091,0x0003003e,0x00000093,0x00000041,0x0003003e,0x00000094, + 0x0000004d,0x00060039,0x00000002,0x00000095,0x00000032,0x00000093,0x00000094,0x000200f9, + 0x00000092,0x000200f8,0x00000096,0x0003003e,0x00000098,0x00000041,0x00050039,0x00000017, + 0x00000099,0x0000002d,0x00000098,0x0003003e,0x00000097,0x00000099,0x0004003d,0x00000017, + 0x0000009a,0x00000097,0x00050080,0x00000017,0x0000009c,0x0000009a,0x0000009b,0x0003003e, + 0x0000009d,0x00000041,0x0003003e,0x0000009e,0x0000009c,0x00060039,0x00000002,0x0000009f, + 0x00000032,0x0000009d,0x0000009e,0x000200f9,0x00000092,0x000200f8,0x00000092,0x000200f9, + 0x0000008a,0x000200f8,0x0000008a,0x0004003d,0x0000000d,0x000000a1,0x00000035,0x0003003e, + 0x000000a0,0x000000a1,0x0003003e,0x000000a2,0x0000004d,0x00060039,0x00000002,0x000000a3, + 0x0000001c,0x000000a0,0x000000a2,0x0004003d,0x0000000d,0x000000a5,0x00000035,0x0003003e, + 0x000000a4,0x000000a5,0x0003003e,0x000000a6,0x0000004d,0x00060039,0x00000002,0x000000a7, + 0x00000020,0x000000a4,0x000000a6,0x0004003d,0x0000000d,0x000000a9,0x00000035,0x0003003e, + 0x000000a8,0x000000a9,0x0003003e,0x000000aa,0x0000004d,0x00060039,0x00000002,0x000000ab, + 0x00000024,0x000000a8,0x000000aa,0x0004003d,0x0000000d,0x000000ad,0x00000035,0x0003003e, + 0x000000ac,0x000000ad,0x0003003e,0x000000ae,0x0000004d,0x00060039,0x00000002,0x000000af, + 0x00000028,0x000000ac,0x000000ae,0x0004003d,0x0000000d,0x000000b2,0x00000035,0x0003003e, + 0x000000b1,0x000000b2,0x0003003e,0x000000b3,0x000000b0,0x00060039,0x00000002,0x000000b4, + 0x00000015,0x000000b1,0x000000b3,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_luma_instability_comp_spv.h b/gpu/vk/shaders/fsr3_luma_instability_comp_spv.h new file mode 100644 index 000000000..eb4cbcc0b --- /dev/null +++ b/gpu/vk/shaders/fsr3_luma_instability_comp_spv.h @@ -0,0 +1,543 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_LUMA_INSTABILITY_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000027a,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000264,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005, + 0x0000000a,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x00000009,0x00000078, + 0x00060005,0x0000000f,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x0000000d, + 0x00000078,0x00030005,0x0000000e,0x00000079,0x00060005,0x00000016,0x4d786666,0x76286e69, + 0x763b3266,0x003b3266,0x00030005,0x00000014,0x00000078,0x00030005,0x00000015,0x00000079, + 0x00060005,0x0000001a,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x00000018, + 0x00000078,0x00030005,0x00000019,0x00000079,0x00060005,0x0000001e,0x4d786666,0x76287861, + 0x763b3266,0x003b3266,0x00030005,0x0000001c,0x00000078,0x00030005,0x0000001d,0x00000079, + 0x00050005,0x00000023,0x646e6552,0x69537265,0x0028657a,0x00090005,0x00000025,0x76657250, + 0x73756f69,0x6d617246,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00060005,0x00000027, + 0x5278614d,0x65646e65,0x7a695372,0x00002865,0x00040005,0x0000002a,0x7474694a,0x00287265, + 0x00080005,0x0000002c,0x76657250,0x73756f69,0x6d617246,0x74694a65,0x28726574,0x00000000, + 0x00070005,0x0000002f,0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028,0x00090005, + 0x00000037,0x726f7453,0x6d754c65,0x73694861,0x79726f74,0x32697628,0x3466763b,0x0000003b, + 0x00040005,0x00000035,0x50785069,0x0000736f,0x00060005,0x00000036,0x6d754c66,0x73694861, + 0x79726f74,0x00000000,0x00080005,0x0000003b,0x706d6153,0x754c656c,0x6948616d,0x726f7473, + 0x66762879,0x00003b32,0x00030005,0x0000003a,0x00565566,0x000c0005,0x0000003d,0x46746547, + 0x68747261,0x44747365,0x68747065,0x3170694d,0x6f736552,0x65637275,0x656d6944,0x6f69736e, + 0x0028736e,0x000a0005,0x00000041,0x706d6153,0x6146656c,0x65687472,0x65447473,0x4d687470, + 0x28317069,0x3b326676,0x00000000,0x00030005,0x00000040,0x00565566,0x00080005,0x00000044, + 0x706d6153,0x7543656c,0x6e657272,0x6d754c74,0x66762861,0x00003b32,0x00030005,0x00000043, + 0x00007675,0x000a0005,0x00000049,0x726f7453,0x6d754c65,0x736e4961,0x69626174,0x7974696c, + 0x32697628,0x3b31663b,0x00000000,0x00040005,0x00000047,0x50785069,0x0000736f,0x00070005, + 0x00000048,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x00000000,0x000a0005,0x0000004d, + 0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x00000000, + 0x00050005,0x0000004c,0x49785069,0x7475706e,0x00000000,0x00050005,0x0000004f,0x6f707845, + 0x65727573,0x00000028,0x000a0005,0x00000052,0x706d6153,0x6944656c,0x6574616c,0x61655264, + 0x76697463,0x73614d65,0x7628736b,0x003b3266,0x00030005,0x00000051,0x00565566,0x00070005, + 0x00000055,0x34746547,0x6c65564b,0x7469636f,0x66762879,0x00003b32,0x00060005,0x00000054, + 0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00090005,0x0000005b,0x446e694d,0x64697669, + 0x79426465,0x2878614d,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000058,0x00003076, + 0x00030005,0x00000059,0x00003176,0x00070005,0x0000005a,0x5a6e4f66,0x526f7265,0x72757465, + 0x6c61566e,0x00006575,0x00080005,0x00000060,0x446e694d,0x64697669,0x79426465,0x2878614d, + 0x663b3166,0x00003b31,0x00030005,0x0000005e,0x00003076,0x00030005,0x0000005f,0x00003176, + 0x00060005,0x00000065,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000064, + 0x00765566,0x00080005,0x0000006b,0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976, + 0x00000000,0x00030005,0x00000068,0x00765566,0x00060005,0x00000069,0x78655469,0x65727574, + 0x657a6953,0x00000000,0x00060005,0x0000006a,0x73655269,0x6372756f,0x7a695365,0x00000065, + 0x00090005,0x0000006d,0x616d754c,0x74736e49,0x6c696261,0x46797469,0x6f746361,0x74614472, + 0x00000061,0x00070006,0x0000006d,0x00000000,0x6d754c66,0x73694861,0x79726f74,0x00000000, + 0x00090006,0x0000006d,0x00000001,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x74636146, + 0x0000726f,0x00160005,0x00000073,0x706d6f43,0x4c657475,0x49616d75,0x6174736e,0x696c6962, + 0x61467974,0x726f7463,0x72747328,0x2d746375,0x616d754c,0x74736e49,0x6c696261,0x46797469, + 0x6f746361,0x74614472,0x66762d61,0x31662d34,0x31663b31,0x3b31663b,0x00000000,0x00040005, + 0x00000070,0x61746164,0x00000000,0x00070005,0x00000071,0x72754366,0x746e6572,0x6d617246, + 0x6d754c65,0x00000061,0x00080005,0x00000072,0x72614666,0x73656874,0x70654474,0x6e496874, + 0x6574654d,0x00007372,0x00080005,0x00000077,0x616d754c,0x74736e49,0x6c696261,0x28797469, + 0x3b326976,0x00000000,0x00040005,0x00000076,0x50785069,0x0000736f,0x00070005,0x00000093, + 0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x00000093,0x00000000, + 0x6e655269,0x53726564,0x00657a69,0x000a0006,0x00000093,0x00000001,0x65725069,0x756f6976, + 0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x00000093,0x00000002, + 0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x00000093,0x00000003,0x65725069, + 0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000093, + 0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x00000093,0x00000005, + 0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x00000093,0x00000006,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x00000093,0x00000007,0x74694a66, + 0x00726574,0x00090006,0x00000093,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d, + 0x72657474,0x00000000,0x00080006,0x00000093,0x00000009,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00080006,0x00000093,0x0000000a,0x776f4466,0x6163736e,0x6146656c, + 0x726f7463,0x00000000,0x000b0006,0x00000093,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365, + 0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x00000093,0x0000000c, + 0x6e615466,0x666c6148,0x00564f46,0x00090006,0x00000093,0x0000000d,0x74694a66,0x53726574, + 0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x00000093,0x0000000e,0x6c654466, + 0x69546174,0x0000656d,0x00080006,0x00000093,0x0000000f,0x6c654466,0x72506174,0x70784565, + 0x7275736f,0x00000065,0x000a0006,0x00000093,0x00000010,0x65695666,0x61705377,0x6f546563, + 0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x00000093,0x00000011,0x61724666, + 0x6e49656d,0x00786564,0x00070006,0x00000093,0x00000012,0x6c655666,0x7469636f,0x63614679, + 0x00726f74,0x00080006,0x00000093,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373, + 0x0000656c,0x00080006,0x00000093,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567, + 0x00656c61,0x000a0006,0x00000093,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e, + 0x65506465,0x61724672,0x0000656d,0x000b0006,0x00000093,0x00000016,0x6e694d66,0x6f736944, + 0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x00000095, + 0x53466263,0x70553352,0x6c616373,0x00007265,0x00060005,0x000000b9,0x6c5f7772,0x5f616d75, + 0x74736968,0x0079726f,0x00060005,0x000000bf,0x756c5f72,0x685f616d,0x6f747369,0x00007972, + 0x00060005,0x000000c3,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00080005,0x000000cb, + 0x61665f72,0x65687472,0x645f7473,0x68747065,0x70696d5f,0x00000031,0x00060005,0x000000da, + 0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00070005,0x000000e5,0x6c5f7772,0x5f616d75, + 0x74736e69,0x6c696261,0x00797469,0x00090005,0x000000ea,0x69645f72,0x6574616c,0x6f6d5f64, + 0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005,0x000000f1,0x6f707865,0x65727573, + 0x00000000,0x00070005,0x000000f2,0x6e695f72,0x5f747570,0x6f707865,0x65727573,0x00000000, + 0x00090005,0x000000fe,0x69645f72,0x6574616c,0x65725f64,0x69746361,0x6d5f6576,0x736b7361, + 0x00000000,0x00030005,0x0000010e,0x0000006d,0x00040005,0x0000010f,0x61726170,0x0000006d, + 0x00040005,0x00000110,0x61726170,0x0000006d,0x00040005,0x00000117,0x61726170,0x0000006d, + 0x00040005,0x00000118,0x61726170,0x0000006d,0x00030005,0x00000120,0x0000006d,0x00040005, + 0x00000121,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005, + 0x00000129,0x61726170,0x0000006d,0x00040005,0x0000012a,0x61726170,0x0000006d,0x00060005, + 0x0000014a,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x0000014f,0x616c4366, + 0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x00000155,0x61726170,0x0000006d, + 0x00040005,0x00000157,0x61726170,0x0000006d,0x00040005,0x00000159,0x61726170,0x0000006d, + 0x00040005,0x0000015a,0x61726170,0x0000006d,0x00050005,0x0000015c,0x616c4366,0x6465706d, + 0x00007655,0x00070005,0x00000164,0x6d754c66,0x736e4961,0x69626174,0x7974696c,0x00000000, + 0x00040005,0x00000165,0x66694466,0x00307366,0x00060005,0x0000016a,0x6d695366,0x72616c69, + 0x30797469,0x00000000,0x00060005,0x0000016f,0x78614d66,0x696d6953,0x6972616c,0x00007974, + 0x00030005,0x00000176,0x00000069,0x00040005,0x0000017f,0x66694466,0x00317366,0x00060005, + 0x00000185,0x6d695366,0x72616c69,0x31797469,0x00000000,0x00040005,0x00000192,0x61726170, + 0x0000006d,0x00040005,0x00000194,0x61726170,0x0000006d,0x00040005,0x000001ba,0x61746164, + 0x00000000,0x00080005,0x000001be,0x6c694466,0x64657461,0x69746f4d,0x65566e6f,0x726f7463, + 0x00000000,0x00040005,0x000001bf,0x61726170,0x0000006d,0x00030005,0x000001c2,0x00765566, + 0x00080005,0x000001ca,0x43765566,0x46727275,0x656d6172,0x7474694a,0x64657265,0x00000000, + 0x00080005,0x000001d1,0x50765566,0x46766572,0x656d6172,0x7474694a,0x64657265,0x00000000, + 0x00060005,0x000001d8,0x70655266,0x656a6f72,0x64657463,0x00007655,0x00040005,0x000001dc, + 0x61726170,0x0000006d,0x00060005,0x000001e1,0x52765566,0x74636165,0x5f657669,0x00005748, + 0x00040005,0x000001e4,0x61726170,0x0000006d,0x00040005,0x000001e6,0x61726170,0x0000006d, + 0x00040005,0x000001e7,0x61726170,0x0000006d,0x00080005,0x000001e9,0x6c694466,0x64657461, + 0x63616552,0x65766974,0x6b73614d,0x00000073,0x00040005,0x000001ea,0x61726170,0x0000006d, + 0x00060005,0x000001ed,0x61655266,0x76697463,0x73614d65,0x0000006b,0x00040005,0x000001ee, + 0x61726170,0x0000006d,0x00060005,0x000001f2,0x73694466,0x6c63636f,0x6f697375,0x0000006e, + 0x00040005,0x000001f3,0x61726170,0x0000006d,0x00060005,0x000001f7,0x61685366,0x676e6964, + 0x6e616843,0x00006567,0x00040005,0x000001f8,0x61726170,0x0000006d,0x00060005,0x000001fc, + 0x63634166,0x6c756d75,0x6f697461,0x0000006e,0x00040005,0x000001fd,0x61726170,0x0000006d, + 0x00070005,0x00000202,0x63634162,0x6c756d75,0x6f697461,0x6361466e,0x00726f74,0x00070005, + 0x00000206,0x6d6f4362,0x65747570,0x74736e49,0x6c696261,0x00797469,0x00040005,0x0000020b, + 0x5f765566,0x00005748,0x00040005,0x0000020e,0x61726170,0x0000006d,0x00040005,0x00000210, + 0x61726170,0x0000006d,0x00040005,0x00000211,0x61726170,0x0000006d,0x00070005,0x00000213, + 0x72754366,0x746e6572,0x6d617246,0x6d754c65,0x00000061,0x00040005,0x00000214,0x61726170, + 0x0000006d,0x00070005,0x00000219,0x70655266,0x656a6f72,0x64657463,0x485f7655,0x00000057, + 0x00040005,0x0000021c,0x61726170,0x0000006d,0x00040005,0x0000021e,0x61726170,0x0000006d, + 0x00040005,0x0000021f,0x61726170,0x0000006d,0x00040005,0x00000221,0x61726170,0x0000006d, + 0x00070005,0x00000229,0x72614666,0x73656874,0x70654474,0x76556874,0x0057485f,0x00040005, + 0x0000022f,0x61726170,0x0000006d,0x00040005,0x00000231,0x61726170,0x0000006d,0x00040005, + 0x00000232,0x61726170,0x0000006d,0x00080005,0x00000234,0x72614666,0x73656874,0x70654474, + 0x6e496874,0x6574654d,0x00007372,0x00040005,0x00000235,0x61726170,0x0000006d,0x00040005, + 0x00000238,0x61726170,0x0000006d,0x00040005,0x0000023a,0x61726170,0x0000006d,0x00040005, + 0x0000023c,0x61726170,0x0000006d,0x00060005,0x0000023f,0x6c655666,0x7469636f,0x69655779, + 0x00746867,0x00040005,0x00000240,0x61726170,0x0000006d,0x00040005,0x00000245,0x61726170, + 0x0000006d,0x00040005,0x00000256,0x61726170,0x0000006d,0x00040005,0x00000258,0x61726170, + 0x0000006d,0x00040005,0x0000025c,0x61726170,0x0000006d,0x00040005,0x0000025e,0x61726170, + 0x0000006d,0x00080005,0x00000264,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x00000044,0x00040005,0x00000269,0x61726170,0x0000006d,0x00060005,0x0000026e,0x6f505f73, + 0x43746e69,0x706d616c,0x00000000,0x00060005,0x0000026f,0x72665f72,0x5f656d61,0x6f666e69, + 0x00000000,0x00030047,0x00000093,0x00000002,0x00050048,0x00000093,0x00000000,0x00000023, + 0x00000000,0x00050048,0x00000093,0x00000001,0x00000023,0x00000008,0x00050048,0x00000093, + 0x00000002,0x00000023,0x00000010,0x00050048,0x00000093,0x00000003,0x00000023,0x00000018, + 0x00050048,0x00000093,0x00000004,0x00000023,0x00000020,0x00050048,0x00000093,0x00000005, + 0x00000023,0x00000028,0x00050048,0x00000093,0x00000006,0x00000023,0x00000030,0x00050048, + 0x00000093,0x00000007,0x00000023,0x00000040,0x00050048,0x00000093,0x00000008,0x00000023, + 0x00000048,0x00050048,0x00000093,0x00000009,0x00000023,0x00000050,0x00050048,0x00000093, + 0x0000000a,0x00000023,0x00000058,0x00050048,0x00000093,0x0000000b,0x00000023,0x00000060, + 0x00050048,0x00000093,0x0000000c,0x00000023,0x00000068,0x00050048,0x00000093,0x0000000d, + 0x00000023,0x0000006c,0x00050048,0x00000093,0x0000000e,0x00000023,0x00000070,0x00050048, + 0x00000093,0x0000000f,0x00000023,0x00000074,0x00050048,0x00000093,0x00000010,0x00000023, + 0x00000078,0x00050048,0x00000093,0x00000011,0x00000023,0x0000007c,0x00050048,0x00000093, + 0x00000012,0x00000023,0x00000080,0x00050048,0x00000093,0x00000013,0x00000023,0x00000084, + 0x00050048,0x00000093,0x00000014,0x00000023,0x00000088,0x00050048,0x00000093,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x00000093,0x00000016,0x00000023,0x00000090,0x00040047, + 0x00000095,0x00000021,0x00000009,0x00040047,0x00000095,0x00000022,0x00000000,0x00040047, + 0x000000b9,0x00000021,0x00000007,0x00040047,0x000000b9,0x00000022,0x00000000,0x00040047, + 0x000000bf,0x00000021,0x00000004,0x00040047,0x000000bf,0x00000022,0x00000000,0x00040047, + 0x000000c3,0x00000021,0x000003e9,0x00040047,0x000000c3,0x00000022,0x00000000,0x00040047, + 0x000000cb,0x00000021,0x00000005,0x00040047,0x000000cb,0x00000022,0x00000000,0x00040047, + 0x000000da,0x00000021,0x00000006,0x00040047,0x000000da,0x00000022,0x00000000,0x00040047, + 0x000000e5,0x00000021,0x00000008,0x00040047,0x000000e5,0x00000022,0x00000000,0x00040047, + 0x000000ea,0x00000021,0x00000002,0x00040047,0x000000ea,0x00000022,0x00000000,0x00040047, + 0x000000f2,0x00000021,0x00000000,0x00040047,0x000000f2,0x00000022,0x00000000,0x00040047, + 0x000000fe,0x00000021,0x00000001,0x00040047,0x000000fe,0x00000022,0x00000000,0x00040047, + 0x00000264,0x0000000b,0x0000001c,0x00040047,0x0000026e,0x00000021,0x000003e8,0x00040047, + 0x0000026e,0x00000022,0x00000000,0x00040047,0x0000026f,0x00000021,0x00000003,0x00040047, + 0x0000026f,0x00000022,0x00000000,0x00040047,0x00000279,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020, + 0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00050021, + 0x0000000c,0x00000006,0x00000007,0x00000007,0x00040017,0x00000011,0x00000006,0x00000002, + 0x00040020,0x00000012,0x00000007,0x00000011,0x00050021,0x00000013,0x00000011,0x00000012, + 0x00000012,0x00040015,0x00000020,0x00000020,0x00000001,0x00040017,0x00000021,0x00000020, + 0x00000002,0x00030021,0x00000022,0x00000021,0x00030021,0x00000029,0x00000011,0x00030021, + 0x0000002e,0x00000006,0x00040020,0x00000031,0x00000007,0x00000021,0x00040017,0x00000032, + 0x00000006,0x00000004,0x00040020,0x00000033,0x00000007,0x00000032,0x00050021,0x00000034, + 0x00000002,0x00000031,0x00000033,0x00040021,0x00000039,0x00000032,0x00000012,0x00040021, + 0x0000003f,0x00000006,0x00000012,0x00050021,0x00000046,0x00000002,0x00000031,0x00000007, + 0x00040021,0x0000004b,0x00000011,0x00000031,0x00060021,0x00000057,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00050021,0x0000005d,0x00000006,0x00000006,0x00000006,0x00020014, + 0x00000062,0x00040021,0x00000063,0x00000062,0x00000012,0x00060021,0x00000067,0x00000011, + 0x00000012,0x00000031,0x00000031,0x0004001e,0x0000006d,0x00000032,0x00000006,0x00040020, + 0x0000006e,0x00000007,0x0000006d,0x00060021,0x0000006f,0x0000006d,0x0000006e,0x00000007, + 0x00000007,0x00040021,0x00000075,0x00000002,0x00000031,0x0004002b,0x00000006,0x0000007a, + 0x00000000,0x0004002b,0x00000006,0x0000007b,0x3f800000,0x0019001e,0x00000093,0x00000021, + 0x00000021,0x00000021,0x00000021,0x00000021,0x00000021,0x00000032,0x00000011,0x00000011, + 0x00000011,0x00000011,0x00000011,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000094, + 0x00000002,0x00000093,0x0004003b,0x00000094,0x00000095,0x00000002,0x0004002b,0x00000020, + 0x00000096,0x00000000,0x00040020,0x00000097,0x00000002,0x00000021,0x0004002b,0x00000020, + 0x0000009c,0x00000001,0x0004002b,0x00000020,0x000000a1,0x00000004,0x0004002b,0x00000020, + 0x000000a6,0x00000007,0x00040020,0x000000a7,0x00000002,0x00000011,0x0004002b,0x00000020, + 0x000000ac,0x00000008,0x0004002b,0x00000020,0x000000b1,0x0000000f,0x00040020,0x000000b2, + 0x00000002,0x00000006,0x00090019,0x000000b7,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000004,0x00040020,0x000000b8,0x00000000,0x000000b7,0x0004003b, + 0x000000b8,0x000000b9,0x00000000,0x00090019,0x000000bd,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000000be,0x00000000,0x000000bd, + 0x0004003b,0x000000be,0x000000bf,0x00000000,0x0002001a,0x000000c1,0x00040020,0x000000c2, + 0x00000000,0x000000c1,0x0004003b,0x000000c2,0x000000c3,0x00000000,0x0003001b,0x000000c5, + 0x000000bd,0x0004003b,0x000000be,0x000000cb,0x00000000,0x00040015,0x000000d5,0x00000020, + 0x00000000,0x0004002b,0x000000d5,0x000000d6,0x00000000,0x0004003b,0x000000be,0x000000da, + 0x00000000,0x00090019,0x000000e3,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000009,0x00040020,0x000000e4,0x00000000,0x000000e3,0x0004003b,0x000000e4, + 0x000000e5,0x00000000,0x0004003b,0x000000be,0x000000ea,0x00000000,0x0004003b,0x000000be, + 0x000000f2,0x00000000,0x0005002c,0x00000021,0x000000f4,0x00000096,0x00000096,0x0004003b, + 0x000000be,0x000000fe,0x00000000,0x0004002b,0x00000006,0x00000107,0x45700000,0x0004002b, + 0x00000006,0x00000108,0x45070000,0x0005002c,0x00000011,0x00000109,0x00000107,0x00000108, + 0x0004002b,0x000000d5,0x0000013d,0x00000001,0x0004002b,0x00000006,0x00000150,0x3f000000, + 0x0005002c,0x00000011,0x00000151,0x00000150,0x00000150,0x00040020,0x00000175,0x00000007, + 0x00000020,0x0004002b,0x00000020,0x0000017d,0x00000003,0x0004002b,0x000000d5,0x0000019d, + 0x00000002,0x0004002b,0x000000d5,0x000001a0,0x00000003,0x0007002c,0x00000032,0x000001bc, + 0x0000007a,0x0000007a,0x0000007a,0x0000007a,0x00040020,0x00000201,0x00000007,0x00000062, + 0x0004002b,0x00000006,0x00000204,0x3f666666,0x0004002b,0x00000020,0x0000022b,0x00000002, + 0x0004002b,0x00000006,0x00000243,0x41a00000,0x00040017,0x00000262,0x000000d5,0x00000003, + 0x00040020,0x00000263,0x00000001,0x00000262,0x0004003b,0x00000263,0x00000264,0x00000001, + 0x00040017,0x00000265,0x000000d5,0x00000002,0x0004002b,0x00000006,0x0000026b,0x387fda40, + 0x0004002b,0x00000006,0x0000026c,0x477fe000,0x0004002b,0x00000006,0x0000026d,0x37801002, + 0x0004003b,0x000000c2,0x0000026e,0x00000000,0x0004003b,0x000000be,0x0000026f,0x00000000, + 0x0004002b,0x00000006,0x00000270,0x7f7fffff,0x0004002b,0x00000006,0x00000271,0x00800000, + 0x0004002b,0x00000006,0x00000272,0x3a1fe868,0x0004002b,0x00000006,0x00000273,0x3d800000, + 0x0004002b,0x00000006,0x00000274,0x3d3d70a4,0x0004002b,0x00000006,0x00000275,0x3e400000, + 0x0004002b,0x00000006,0x00000276,0x40000000,0x0004002b,0x00000006,0x00000277,0x461c4000, + 0x0004002b,0x000000d5,0x00000278,0x00000008,0x0006002c,0x00000262,0x00000279,0x00000278, + 0x00000278,0x0000013d,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x00000031,0x00000269,0x00000007,0x0004003d,0x00000262,0x00000266, + 0x00000264,0x0007004f,0x00000265,0x00000267,0x00000266,0x00000266,0x00000000,0x00000001, + 0x0004007c,0x00000021,0x00000268,0x00000267,0x0003003e,0x00000269,0x00000268,0x00050039, + 0x00000002,0x0000026a,0x00000077,0x00000269,0x000100fd,0x00010038,0x00050036,0x00000006, + 0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b, + 0x0004003d,0x00000006,0x00000079,0x00000009,0x0008000c,0x00000006,0x0000007c,0x00000001, + 0x0000002b,0x00000079,0x0000007a,0x0000007b,0x000200fe,0x0000007c,0x00010038,0x00050036, + 0x00000006,0x0000000f,0x00000000,0x0000000c,0x00030037,0x00000007,0x0000000d,0x00030037, + 0x00000007,0x0000000e,0x000200f8,0x00000010,0x0004003d,0x00000006,0x0000007f,0x0000000d, + 0x0004003d,0x00000006,0x00000080,0x0000000e,0x0007000c,0x00000006,0x00000081,0x00000001, + 0x00000025,0x0000007f,0x00000080,0x000200fe,0x00000081,0x00010038,0x00050036,0x00000011, + 0x00000016,0x00000000,0x00000013,0x00030037,0x00000012,0x00000014,0x00030037,0x00000012, + 0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000011,0x00000084,0x00000014,0x0004003d, + 0x00000011,0x00000085,0x00000015,0x0007000c,0x00000011,0x00000086,0x00000001,0x00000025, + 0x00000084,0x00000085,0x000200fe,0x00000086,0x00010038,0x00050036,0x00000006,0x0000001a, + 0x00000000,0x0000000c,0x00030037,0x00000007,0x00000018,0x00030037,0x00000007,0x00000019, + 0x000200f8,0x0000001b,0x0004003d,0x00000006,0x00000089,0x00000018,0x0004003d,0x00000006, + 0x0000008a,0x00000019,0x0007000c,0x00000006,0x0000008b,0x00000001,0x00000028,0x00000089, + 0x0000008a,0x000200fe,0x0000008b,0x00010038,0x00050036,0x00000011,0x0000001e,0x00000000, + 0x00000013,0x00030037,0x00000012,0x0000001c,0x00030037,0x00000012,0x0000001d,0x000200f8, + 0x0000001f,0x0004003d,0x00000011,0x0000008e,0x0000001c,0x0004003d,0x00000011,0x0000008f, + 0x0000001d,0x0007000c,0x00000011,0x00000090,0x00000001,0x00000028,0x0000008e,0x0000008f, + 0x000200fe,0x00000090,0x00010038,0x00050036,0x00000021,0x00000023,0x00000000,0x00000022, + 0x000200f8,0x00000024,0x00050041,0x00000097,0x00000098,0x00000095,0x00000096,0x0004003d, + 0x00000021,0x00000099,0x00000098,0x000200fe,0x00000099,0x00010038,0x00050036,0x00000021, + 0x00000025,0x00000000,0x00000022,0x000200f8,0x00000026,0x00050041,0x00000097,0x0000009d, + 0x00000095,0x0000009c,0x0004003d,0x00000021,0x0000009e,0x0000009d,0x000200fe,0x0000009e, + 0x00010038,0x00050036,0x00000021,0x00000027,0x00000000,0x00000022,0x000200f8,0x00000028, + 0x00050041,0x00000097,0x000000a2,0x00000095,0x000000a1,0x0004003d,0x00000021,0x000000a3, + 0x000000a2,0x000200fe,0x000000a3,0x00010038,0x00050036,0x00000011,0x0000002a,0x00000000, + 0x00000029,0x000200f8,0x0000002b,0x00050041,0x000000a7,0x000000a8,0x00000095,0x000000a6, + 0x0004003d,0x00000011,0x000000a9,0x000000a8,0x000200fe,0x000000a9,0x00010038,0x00050036, + 0x00000011,0x0000002c,0x00000000,0x00000029,0x000200f8,0x0000002d,0x00050041,0x000000a7, + 0x000000ad,0x00000095,0x000000ac,0x0004003d,0x00000011,0x000000ae,0x000000ad,0x000200fe, + 0x000000ae,0x00010038,0x00050036,0x00000006,0x0000002f,0x00000000,0x0000002e,0x000200f8, + 0x00000030,0x00050041,0x000000b2,0x000000b3,0x00000095,0x000000b1,0x0004003d,0x00000006, + 0x000000b4,0x000000b3,0x000200fe,0x000000b4,0x00010038,0x00050036,0x00000002,0x00000037, + 0x00000000,0x00000034,0x00030037,0x00000031,0x00000035,0x00030037,0x00000033,0x00000036, + 0x000200f8,0x00000038,0x0004003d,0x000000b7,0x000000ba,0x000000b9,0x0004003d,0x00000021, + 0x000000bb,0x00000035,0x0004003d,0x00000032,0x000000bc,0x00000036,0x00040063,0x000000ba, + 0x000000bb,0x000000bc,0x000100fd,0x00010038,0x00050036,0x00000032,0x0000003b,0x00000000, + 0x00000039,0x00030037,0x00000012,0x0000003a,0x000200f8,0x0000003c,0x0004003d,0x000000bd, + 0x000000c0,0x000000bf,0x0004003d,0x000000c1,0x000000c4,0x000000c3,0x00050056,0x000000c5, + 0x000000c6,0x000000c0,0x000000c4,0x0004003d,0x00000011,0x000000c7,0x0000003a,0x00070058, + 0x00000032,0x000000c8,0x000000c6,0x000000c7,0x00000002,0x0000007a,0x000200fe,0x000000c8, + 0x00010038,0x00050036,0x00000021,0x0000003d,0x00000000,0x00000022,0x000200f8,0x0000003e, + 0x0004003d,0x000000bd,0x000000cc,0x000000cb,0x00050067,0x00000021,0x000000cd,0x000000cc, + 0x00000096,0x000200fe,0x000000cd,0x00010038,0x00050036,0x00000006,0x00000041,0x00000000, + 0x0000003f,0x00030037,0x00000012,0x00000040,0x000200f8,0x00000042,0x0004003d,0x000000bd, + 0x000000d0,0x000000cb,0x0004003d,0x000000c1,0x000000d1,0x000000c3,0x00050056,0x000000c5, + 0x000000d2,0x000000d0,0x000000d1,0x0004003d,0x00000011,0x000000d3,0x00000040,0x00070058, + 0x00000032,0x000000d4,0x000000d2,0x000000d3,0x00000002,0x0000007a,0x00050051,0x00000006, + 0x000000d7,0x000000d4,0x00000000,0x000200fe,0x000000d7,0x00010038,0x00050036,0x00000006, + 0x00000044,0x00000000,0x0000003f,0x00030037,0x00000012,0x00000043,0x000200f8,0x00000045, + 0x0004003d,0x000000bd,0x000000db,0x000000da,0x0004003d,0x000000c1,0x000000dc,0x000000c3, + 0x00050056,0x000000c5,0x000000dd,0x000000db,0x000000dc,0x0004003d,0x00000011,0x000000de, + 0x00000043,0x00070058,0x00000032,0x000000df,0x000000dd,0x000000de,0x00000002,0x0000007a, + 0x00050051,0x00000006,0x000000e0,0x000000df,0x00000000,0x000200fe,0x000000e0,0x00010038, + 0x00050036,0x00000002,0x00000049,0x00000000,0x00000046,0x00030037,0x00000031,0x00000047, + 0x00030037,0x00000007,0x00000048,0x000200f8,0x0000004a,0x0004003d,0x000000e3,0x000000e6, + 0x000000e5,0x0004003d,0x00000021,0x000000e7,0x00000047,0x0004003d,0x00000006,0x000000e8, + 0x00000048,0x00070050,0x00000032,0x000000e9,0x000000e8,0x0000007a,0x0000007a,0x0000007a, + 0x00040063,0x000000e6,0x000000e7,0x000000e9,0x000100fd,0x00010038,0x00050036,0x00000011, + 0x0000004d,0x00000000,0x0000004b,0x00030037,0x00000031,0x0000004c,0x000200f8,0x0000004e, + 0x0004003d,0x000000bd,0x000000eb,0x000000ea,0x0004003d,0x00000021,0x000000ec,0x0000004c, + 0x0007005f,0x00000032,0x000000ed,0x000000eb,0x000000ec,0x00000002,0x00000096,0x0007004f, + 0x00000011,0x000000ee,0x000000ed,0x000000ed,0x00000000,0x00000001,0x000200fe,0x000000ee, + 0x00010038,0x00050036,0x00000006,0x0000004f,0x00000000,0x0000002e,0x000200f8,0x00000050, + 0x0004003b,0x00000007,0x000000f1,0x00000007,0x0004003d,0x000000bd,0x000000f3,0x000000f2, + 0x0007005f,0x00000032,0x000000f5,0x000000f3,0x000000f4,0x00000002,0x00000096,0x00050051, + 0x00000006,0x000000f6,0x000000f5,0x00000000,0x0003003e,0x000000f1,0x000000f6,0x0004003d, + 0x00000006,0x000000f7,0x000000f1,0x000500b4,0x00000062,0x000000f8,0x000000f7,0x0000007a, + 0x000300f7,0x000000fa,0x00000000,0x000400fa,0x000000f8,0x000000f9,0x000000fa,0x000200f8, + 0x000000f9,0x0003003e,0x000000f1,0x0000007b,0x000200f9,0x000000fa,0x000200f8,0x000000fa, + 0x0004003d,0x00000006,0x000000fb,0x000000f1,0x000200fe,0x000000fb,0x00010038,0x00050036, + 0x00000032,0x00000052,0x00000000,0x00000039,0x00030037,0x00000012,0x00000051,0x000200f8, + 0x00000053,0x0004003d,0x000000bd,0x000000ff,0x000000fe,0x0004003d,0x000000c1,0x00000100, + 0x000000c3,0x00050056,0x000000c5,0x00000101,0x000000ff,0x00000100,0x0004003d,0x00000011, + 0x00000102,0x00000051,0x00070058,0x00000032,0x00000103,0x00000101,0x00000102,0x00000002, + 0x0000007a,0x000200fe,0x00000103,0x00010038,0x00050036,0x00000006,0x00000055,0x00000000, + 0x0000003f,0x00030037,0x00000012,0x00000054,0x000200f8,0x00000056,0x0004003d,0x00000011, + 0x00000106,0x00000054,0x00050085,0x00000011,0x0000010a,0x00000106,0x00000109,0x0006000c, + 0x00000006,0x0000010b,0x00000001,0x00000042,0x0000010a,0x000200fe,0x0000010b,0x00010038, + 0x00050036,0x00000006,0x0000005b,0x00000000,0x00000057,0x00030037,0x00000006,0x00000058, + 0x00030037,0x00000006,0x00000059,0x00030037,0x00000006,0x0000005a,0x000200f8,0x0000005c, + 0x0004003b,0x00000007,0x0000010e,0x00000007,0x0004003b,0x00000007,0x0000010f,0x00000007, + 0x0004003b,0x00000007,0x00000110,0x00000007,0x0004003b,0x00000007,0x00000114,0x00000007, + 0x0004003b,0x00000007,0x00000117,0x00000007,0x0004003b,0x00000007,0x00000118,0x00000007, + 0x0003003e,0x0000010f,0x00000058,0x0003003e,0x00000110,0x00000059,0x00060039,0x00000006, + 0x00000111,0x0000001a,0x0000010f,0x00000110,0x0003003e,0x0000010e,0x00000111,0x0004003d, + 0x00000006,0x00000112,0x0000010e,0x000500b7,0x00000062,0x00000113,0x00000112,0x0000007a, + 0x000300f7,0x00000116,0x00000000,0x000400fa,0x00000113,0x00000115,0x0000011c,0x000200f8, + 0x00000115,0x0003003e,0x00000117,0x00000058,0x0003003e,0x00000118,0x00000059,0x00060039, + 0x00000006,0x00000119,0x0000000f,0x00000117,0x00000118,0x0004003d,0x00000006,0x0000011a, + 0x0000010e,0x00050088,0x00000006,0x0000011b,0x00000119,0x0000011a,0x0003003e,0x00000114, + 0x0000011b,0x000200f9,0x00000116,0x000200f8,0x0000011c,0x0003003e,0x00000114,0x0000005a, + 0x000200f9,0x00000116,0x000200f8,0x00000116,0x0004003d,0x00000006,0x0000011d,0x00000114, + 0x000200fe,0x0000011d,0x00010038,0x00050036,0x00000006,0x00000060,0x00000000,0x0000005d, + 0x00030037,0x00000006,0x0000005e,0x00030037,0x00000006,0x0000005f,0x000200f8,0x00000061, + 0x0004003b,0x00000007,0x00000120,0x00000007,0x0004003b,0x00000007,0x00000121,0x00000007, + 0x0004003b,0x00000007,0x00000122,0x00000007,0x0004003b,0x00000007,0x00000126,0x00000007, + 0x0004003b,0x00000007,0x00000129,0x00000007,0x0004003b,0x00000007,0x0000012a,0x00000007, + 0x0003003e,0x00000121,0x0000005e,0x0003003e,0x00000122,0x0000005f,0x00060039,0x00000006, + 0x00000123,0x0000001a,0x00000121,0x00000122,0x0003003e,0x00000120,0x00000123,0x0004003d, + 0x00000006,0x00000124,0x00000120,0x000500b7,0x00000062,0x00000125,0x00000124,0x0000007a, + 0x000300f7,0x00000128,0x00000000,0x000400fa,0x00000125,0x00000127,0x0000012e,0x000200f8, + 0x00000127,0x0003003e,0x00000129,0x0000005e,0x0003003e,0x0000012a,0x0000005f,0x00060039, + 0x00000006,0x0000012b,0x0000000f,0x00000129,0x0000012a,0x0004003d,0x00000006,0x0000012c, + 0x00000120,0x00050088,0x00000006,0x0000012d,0x0000012b,0x0000012c,0x0003003e,0x00000126, + 0x0000012d,0x000200f9,0x00000128,0x000200f8,0x0000012e,0x0003003e,0x00000126,0x0000007a, + 0x000200f9,0x00000128,0x000200f8,0x00000128,0x0004003d,0x00000006,0x0000012f,0x00000126, + 0x000200fe,0x0000012f,0x00010038,0x00050036,0x00000062,0x00000065,0x00000000,0x00000063, + 0x00030037,0x00000012,0x00000064,0x000200f8,0x00000066,0x00050041,0x00000007,0x00000132, + 0x00000064,0x000000d6,0x0004003d,0x00000006,0x00000133,0x00000132,0x000500be,0x00000062, + 0x00000134,0x00000133,0x0000007a,0x000300f7,0x00000136,0x00000000,0x000400fa,0x00000134, + 0x00000135,0x00000136,0x000200f8,0x00000135,0x00050041,0x00000007,0x00000137,0x00000064, + 0x000000d6,0x0004003d,0x00000006,0x00000138,0x00000137,0x000500bc,0x00000062,0x00000139, + 0x00000138,0x0000007b,0x000200f9,0x00000136,0x000200f8,0x00000136,0x000700f5,0x00000062, + 0x0000013a,0x00000134,0x00000066,0x00000139,0x00000135,0x000300f7,0x0000013c,0x00000000, + 0x000400fa,0x0000013a,0x0000013b,0x0000013c,0x000200f8,0x0000013b,0x00050041,0x00000007, + 0x0000013e,0x00000064,0x0000013d,0x0004003d,0x00000006,0x0000013f,0x0000013e,0x000500be, + 0x00000062,0x00000140,0x0000013f,0x0000007a,0x000300f7,0x00000142,0x00000000,0x000400fa, + 0x00000140,0x00000141,0x00000142,0x000200f8,0x00000141,0x00050041,0x00000007,0x00000143, + 0x00000064,0x0000013d,0x0004003d,0x00000006,0x00000144,0x00000143,0x000500bc,0x00000062, + 0x00000145,0x00000144,0x0000007b,0x000200f9,0x00000142,0x000200f8,0x00000142,0x000700f5, + 0x00000062,0x00000146,0x00000140,0x0000013b,0x00000145,0x00000141,0x000200f9,0x0000013c, + 0x000200f8,0x0000013c,0x000700f5,0x00000062,0x00000147,0x0000013a,0x00000136,0x00000146, + 0x00000142,0x000200fe,0x00000147,0x00010038,0x00050036,0x00000011,0x0000006b,0x00000000, + 0x00000067,0x00030037,0x00000012,0x00000068,0x00030037,0x00000031,0x00000069,0x00030037, + 0x00000031,0x0000006a,0x000200f8,0x0000006c,0x0004003b,0x00000012,0x0000014a,0x00000007, + 0x0004003b,0x00000012,0x0000014f,0x00000007,0x0004003b,0x00000012,0x00000155,0x00000007, + 0x0004003b,0x00000012,0x00000157,0x00000007,0x0004003b,0x00000012,0x00000159,0x00000007, + 0x0004003b,0x00000012,0x0000015a,0x00000007,0x0004003b,0x00000012,0x0000015c,0x00000007, + 0x0004003d,0x00000011,0x0000014b,0x00000068,0x0004003d,0x00000021,0x0000014c,0x00000069, + 0x0004006f,0x00000011,0x0000014d,0x0000014c,0x00050085,0x00000011,0x0000014e,0x0000014b, + 0x0000014d,0x0003003e,0x0000014a,0x0000014e,0x0004003d,0x00000021,0x00000152,0x00000069, + 0x0004006f,0x00000011,0x00000153,0x00000152,0x00050083,0x00000011,0x00000154,0x00000153, + 0x00000151,0x0004003d,0x00000011,0x00000156,0x0000014a,0x0003003e,0x00000155,0x00000156, + 0x0003003e,0x00000157,0x00000154,0x00060039,0x00000011,0x00000158,0x00000016,0x00000155, + 0x00000157,0x0003003e,0x00000159,0x00000151,0x0003003e,0x0000015a,0x00000158,0x00060039, + 0x00000011,0x0000015b,0x0000001e,0x00000159,0x0000015a,0x0003003e,0x0000014f,0x0000015b, + 0x0004003d,0x00000011,0x0000015d,0x0000014f,0x0004003d,0x00000021,0x0000015e,0x0000006a, + 0x0004006f,0x00000011,0x0000015f,0x0000015e,0x00050088,0x00000011,0x00000160,0x0000015d, + 0x0000015f,0x0003003e,0x0000015c,0x00000160,0x0004003d,0x00000011,0x00000161,0x0000015c, + 0x000200fe,0x00000161,0x00010038,0x00050036,0x0000006d,0x00000073,0x00000000,0x0000006f, + 0x00030037,0x0000006e,0x00000070,0x00030037,0x00000007,0x00000071,0x00030037,0x00000007, + 0x00000072,0x000200f8,0x00000074,0x0004003b,0x00000007,0x00000164,0x00000007,0x0004003b, + 0x00000007,0x00000165,0x00000007,0x0004003b,0x00000007,0x0000016a,0x00000007,0x0004003b, + 0x00000007,0x0000016f,0x00000007,0x0004003b,0x00000175,0x00000176,0x00000007,0x0004003b, + 0x00000007,0x0000017f,0x00000007,0x0004003b,0x00000007,0x00000185,0x00000007,0x0004003b, + 0x00000007,0x00000192,0x00000007,0x0004003b,0x00000007,0x00000194,0x00000007,0x0003003e, + 0x00000164,0x0000007a,0x0004003d,0x00000006,0x00000166,0x00000071,0x00060041,0x00000007, + 0x00000167,0x00000070,0x00000096,0x000000d6,0x0004003d,0x00000006,0x00000168,0x00000167, + 0x00050083,0x00000006,0x00000169,0x00000166,0x00000168,0x0003003e,0x00000165,0x00000169, + 0x0004003d,0x00000006,0x0000016b,0x00000071,0x00060041,0x00000007,0x0000016c,0x00000070, + 0x00000096,0x000000d6,0x0004003d,0x00000006,0x0000016d,0x0000016c,0x00070039,0x00000006, + 0x0000016e,0x0000005b,0x0000016b,0x0000016d,0x0000007b,0x0003003e,0x0000016a,0x0000016e, + 0x0004003d,0x00000006,0x00000170,0x0000016a,0x0003003e,0x0000016f,0x00000170,0x0004003d, + 0x00000006,0x00000171,0x0000016a,0x000500b8,0x00000062,0x00000172,0x00000171,0x0000007b, + 0x000300f7,0x00000174,0x00000000,0x000400fa,0x00000172,0x00000173,0x00000174,0x000200f8, + 0x00000173,0x0003003e,0x00000176,0x0000009c,0x000200f9,0x00000177,0x000200f8,0x00000177, + 0x000400f6,0x00000179,0x0000017a,0x00000000,0x000200f9,0x0000017b,0x000200f8,0x0000017b, + 0x0004003d,0x00000020,0x0000017c,0x00000176,0x000500b3,0x00000062,0x0000017e,0x0000017c, + 0x0000017d,0x000400fa,0x0000017e,0x00000178,0x00000179,0x000200f8,0x00000178,0x0004003d, + 0x00000006,0x00000180,0x00000071,0x0004003d,0x00000020,0x00000181,0x00000176,0x00060041, + 0x00000007,0x00000182,0x00000070,0x00000096,0x00000181,0x0004003d,0x00000006,0x00000183, + 0x00000182,0x00050083,0x00000006,0x00000184,0x00000180,0x00000183,0x0003003e,0x0000017f, + 0x00000184,0x0004003d,0x00000006,0x00000186,0x00000071,0x0004003d,0x00000020,0x00000187, + 0x00000176,0x00060041,0x00000007,0x00000188,0x00000070,0x00000096,0x00000187,0x0004003d, + 0x00000006,0x00000189,0x00000188,0x00060039,0x00000006,0x0000018a,0x00000060,0x00000186, + 0x00000189,0x0003003e,0x00000185,0x0000018a,0x0004003d,0x00000006,0x0000018b,0x00000165, + 0x0006000c,0x00000006,0x0000018c,0x00000001,0x00000006,0x0000018b,0x0004003d,0x00000006, + 0x0000018d,0x0000017f,0x0006000c,0x00000006,0x0000018e,0x00000001,0x00000006,0x0000018d, + 0x000500b4,0x00000062,0x0000018f,0x0000018c,0x0000018e,0x000300f7,0x00000191,0x00000000, + 0x000400fa,0x0000018f,0x00000190,0x00000191,0x000200f8,0x00000190,0x0004003d,0x00000006, + 0x00000193,0x0000016f,0x0003003e,0x00000192,0x00000193,0x0004003d,0x00000006,0x00000195, + 0x00000185,0x0003003e,0x00000194,0x00000195,0x00060039,0x00000006,0x00000196,0x0000001a, + 0x00000192,0x00000194,0x0003003e,0x0000016f,0x00000196,0x000200f9,0x00000191,0x000200f8, + 0x00000191,0x000200f9,0x0000017a,0x000200f8,0x0000017a,0x0004003d,0x00000020,0x00000197, + 0x00000176,0x00050080,0x00000020,0x00000198,0x00000197,0x0000009c,0x0003003e,0x00000176, + 0x00000198,0x000200f9,0x00000177,0x000200f8,0x00000179,0x0004003d,0x00000006,0x00000199, + 0x0000016f,0x0004003d,0x00000006,0x0000019a,0x0000016a,0x000500ba,0x00000062,0x0000019b, + 0x00000199,0x0000019a,0x000600a9,0x00000006,0x0000019c,0x0000019b,0x0000007b,0x0000007a, + 0x0003003e,0x00000164,0x0000019c,0x000200f9,0x00000174,0x000200f8,0x00000174,0x00060041, + 0x00000007,0x0000019e,0x00000070,0x00000096,0x0000019d,0x0004003d,0x00000006,0x0000019f, + 0x0000019e,0x00060041,0x00000007,0x000001a1,0x00000070,0x00000096,0x000001a0,0x0003003e, + 0x000001a1,0x0000019f,0x00060041,0x00000007,0x000001a2,0x00000070,0x00000096,0x0000013d, + 0x0004003d,0x00000006,0x000001a3,0x000001a2,0x00060041,0x00000007,0x000001a4,0x00000070, + 0x00000096,0x0000019d,0x0003003e,0x000001a4,0x000001a3,0x00060041,0x00000007,0x000001a5, + 0x00000070,0x00000096,0x000000d6,0x0004003d,0x00000006,0x000001a6,0x000001a5,0x00060041, + 0x00000007,0x000001a7,0x00000070,0x00000096,0x0000013d,0x0003003e,0x000001a7,0x000001a6, + 0x0004003d,0x00000006,0x000001a8,0x00000071,0x00060041,0x00000007,0x000001a9,0x00000070, + 0x00000096,0x000000d6,0x0003003e,0x000001a9,0x000001a8,0x00040039,0x00000006,0x000001aa, + 0x0000004f,0x00050041,0x00000033,0x000001ab,0x00000070,0x00000096,0x0004003d,0x00000032, + 0x000001ac,0x000001ab,0x00070050,0x00000032,0x000001ad,0x000001aa,0x000001aa,0x000001aa, + 0x000001aa,0x00050088,0x00000032,0x000001ae,0x000001ac,0x000001ad,0x00050041,0x00000033, + 0x000001af,0x00000070,0x00000096,0x0003003e,0x000001af,0x000001ae,0x0004003d,0x00000006, + 0x000001b0,0x00000164,0x00060041,0x00000007,0x000001b1,0x00000070,0x00000096,0x000001a0, + 0x0004003d,0x00000006,0x000001b2,0x000001b1,0x000500b7,0x00000062,0x000001b3,0x000001b2, + 0x0000007a,0x000600a9,0x00000006,0x000001b4,0x000001b3,0x0000007b,0x0000007a,0x00050085, + 0x00000006,0x000001b5,0x000001b0,0x000001b4,0x00050041,0x00000007,0x000001b6,0x00000070, + 0x0000009c,0x0003003e,0x000001b6,0x000001b5,0x0004003d,0x0000006d,0x000001b7,0x00000070, + 0x000200fe,0x000001b7,0x00010038,0x00050036,0x00000002,0x00000077,0x00000000,0x00000075, + 0x00030037,0x00000031,0x00000076,0x000200f8,0x00000078,0x0004003b,0x0000006e,0x000001ba, + 0x00000007,0x0004003b,0x00000012,0x000001be,0x00000007,0x0004003b,0x00000031,0x000001bf, + 0x00000007,0x0004003b,0x00000012,0x000001c2,0x00000007,0x0004003b,0x00000012,0x000001ca, + 0x00000007,0x0004003b,0x00000012,0x000001d1,0x00000007,0x0004003b,0x00000012,0x000001d8, + 0x00000007,0x0004003b,0x00000012,0x000001dc,0x00000007,0x0004003b,0x00000012,0x000001e1, + 0x00000007,0x0004003b,0x00000012,0x000001e4,0x00000007,0x0004003b,0x00000031,0x000001e6, + 0x00000007,0x0004003b,0x00000031,0x000001e7,0x00000007,0x0004003b,0x00000033,0x000001e9, + 0x00000007,0x0004003b,0x00000012,0x000001ea,0x00000007,0x0004003b,0x00000007,0x000001ed, + 0x00000007,0x0004003b,0x00000007,0x000001ee,0x00000007,0x0004003b,0x00000007,0x000001f2, + 0x00000007,0x0004003b,0x00000007,0x000001f3,0x00000007,0x0004003b,0x00000007,0x000001f7, + 0x00000007,0x0004003b,0x00000007,0x000001f8,0x00000007,0x0004003b,0x00000007,0x000001fc, + 0x00000007,0x0004003b,0x00000007,0x000001fd,0x00000007,0x0004003b,0x00000201,0x00000202, + 0x00000007,0x0004003b,0x00000201,0x00000206,0x00000007,0x0004003b,0x00000012,0x0000020b, + 0x00000007,0x0004003b,0x00000012,0x0000020e,0x00000007,0x0004003b,0x00000031,0x00000210, + 0x00000007,0x0004003b,0x00000031,0x00000211,0x00000007,0x0004003b,0x00000007,0x00000213, + 0x00000007,0x0004003b,0x00000012,0x00000214,0x00000007,0x0004003b,0x00000012,0x00000219, + 0x00000007,0x0004003b,0x00000012,0x0000021c,0x00000007,0x0004003b,0x00000031,0x0000021e, + 0x00000007,0x0004003b,0x00000031,0x0000021f,0x00000007,0x0004003b,0x00000012,0x00000221, + 0x00000007,0x0004003b,0x00000012,0x00000229,0x00000007,0x0004003b,0x00000012,0x0000022f, + 0x00000007,0x0004003b,0x00000031,0x00000231,0x00000007,0x0004003b,0x00000031,0x00000232, + 0x00000007,0x0004003b,0x00000007,0x00000234,0x00000007,0x0004003b,0x00000012,0x00000235, + 0x00000007,0x0004003b,0x0000006e,0x00000238,0x00000007,0x0004003b,0x00000007,0x0000023a, + 0x00000007,0x0004003b,0x00000007,0x0000023c,0x00000007,0x0004003b,0x00000007,0x0000023f, + 0x00000007,0x0004003b,0x00000012,0x00000240,0x00000007,0x0004003b,0x00000007,0x00000245, + 0x00000007,0x0004003b,0x00000031,0x00000256,0x00000007,0x0004003b,0x00000033,0x00000258, + 0x00000007,0x0004003b,0x00000031,0x0000025c,0x00000007,0x0004003b,0x00000007,0x0000025e, + 0x00000007,0x00050041,0x00000007,0x000001bb,0x000001ba,0x0000009c,0x0003003e,0x000001bb, + 0x0000007a,0x00050041,0x00000033,0x000001bd,0x000001ba,0x00000096,0x0003003e,0x000001bd, + 0x000001bc,0x0004003d,0x00000021,0x000001c0,0x00000076,0x0003003e,0x000001bf,0x000001c0, + 0x00050039,0x00000011,0x000001c1,0x0000004d,0x000001bf,0x0003003e,0x000001be,0x000001c1, + 0x0004003d,0x00000021,0x000001c3,0x00000076,0x0004006f,0x00000011,0x000001c4,0x000001c3, + 0x00050050,0x00000011,0x000001c5,0x00000150,0x00000150,0x00050081,0x00000011,0x000001c6, + 0x000001c4,0x000001c5,0x00040039,0x00000021,0x000001c7,0x00000023,0x0004006f,0x00000011, + 0x000001c8,0x000001c7,0x00050088,0x00000011,0x000001c9,0x000001c6,0x000001c8,0x0003003e, + 0x000001c2,0x000001c9,0x0004003d,0x00000011,0x000001cb,0x000001c2,0x00040039,0x00000011, + 0x000001cc,0x0000002a,0x00040039,0x00000021,0x000001cd,0x00000023,0x0004006f,0x00000011, + 0x000001ce,0x000001cd,0x00050088,0x00000011,0x000001cf,0x000001cc,0x000001ce,0x00050081, + 0x00000011,0x000001d0,0x000001cb,0x000001cf,0x0003003e,0x000001ca,0x000001d0,0x0004003d, + 0x00000011,0x000001d2,0x000001c2,0x00040039,0x00000011,0x000001d3,0x0000002c,0x00040039, + 0x00000021,0x000001d4,0x00000025,0x0004006f,0x00000011,0x000001d5,0x000001d4,0x00050088, + 0x00000011,0x000001d6,0x000001d3,0x000001d5,0x00050081,0x00000011,0x000001d7,0x000001d2, + 0x000001d6,0x0003003e,0x000001d1,0x000001d7,0x0004003d,0x00000011,0x000001d9,0x000001d1, + 0x0004003d,0x00000011,0x000001da,0x000001be,0x00050081,0x00000011,0x000001db,0x000001d9, + 0x000001da,0x0003003e,0x000001d8,0x000001db,0x0004003d,0x00000011,0x000001dd,0x000001d8, + 0x0003003e,0x000001dc,0x000001dd,0x00050039,0x00000062,0x000001de,0x00000065,0x000001dc, + 0x000300f7,0x000001e0,0x00000000,0x000400fa,0x000001de,0x000001df,0x000001e0,0x000200f8, + 0x000001df,0x00040039,0x00000021,0x000001e2,0x00000023,0x00040039,0x00000021,0x000001e3, + 0x00000027,0x0004003d,0x00000011,0x000001e5,0x000001ca,0x0003003e,0x000001e4,0x000001e5, + 0x0003003e,0x000001e6,0x000001e2,0x0003003e,0x000001e7,0x000001e3,0x00070039,0x00000011, + 0x000001e8,0x0000006b,0x000001e4,0x000001e6,0x000001e7,0x0003003e,0x000001e1,0x000001e8, + 0x0004003d,0x00000011,0x000001eb,0x000001e1,0x0003003e,0x000001ea,0x000001eb,0x00050039, + 0x00000032,0x000001ec,0x00000052,0x000001ea,0x0003003e,0x000001e9,0x000001ec,0x00050041, + 0x00000007,0x000001ef,0x000001e9,0x000000d6,0x0004003d,0x00000006,0x000001f0,0x000001ef, + 0x0003003e,0x000001ee,0x000001f0,0x00050039,0x00000006,0x000001f1,0x0000000a,0x000001ee, + 0x0003003e,0x000001ed,0x000001f1,0x00050041,0x00000007,0x000001f4,0x000001e9,0x0000013d, + 0x0004003d,0x00000006,0x000001f5,0x000001f4,0x0003003e,0x000001f3,0x000001f5,0x00050039, + 0x00000006,0x000001f6,0x0000000a,0x000001f3,0x0003003e,0x000001f2,0x000001f6,0x00050041, + 0x00000007,0x000001f9,0x000001e9,0x0000019d,0x0004003d,0x00000006,0x000001fa,0x000001f9, + 0x0003003e,0x000001f8,0x000001fa,0x00050039,0x00000006,0x000001fb,0x0000000a,0x000001f8, + 0x0003003e,0x000001f7,0x000001fb,0x00050041,0x00000007,0x000001fe,0x000001e9,0x000001a0, + 0x0004003d,0x00000006,0x000001ff,0x000001fe,0x0003003e,0x000001fd,0x000001ff,0x00050039, + 0x00000006,0x00000200,0x0000000a,0x000001fd,0x0003003e,0x000001fc,0x00000200,0x0004003d, + 0x00000006,0x00000203,0x000001fc,0x000500ba,0x00000062,0x00000205,0x00000203,0x00000204, + 0x0003003e,0x00000202,0x00000205,0x0004003d,0x00000062,0x00000207,0x00000202,0x0003003e, + 0x00000206,0x00000207,0x0004003d,0x00000062,0x00000208,0x00000206,0x000300f7,0x0000020a, + 0x00000000,0x000400fa,0x00000208,0x00000209,0x0000020a,0x000200f8,0x00000209,0x00040039, + 0x00000021,0x0000020c,0x00000023,0x00040039,0x00000021,0x0000020d,0x00000027,0x0004003d, + 0x00000011,0x0000020f,0x000001ca,0x0003003e,0x0000020e,0x0000020f,0x0003003e,0x00000210, + 0x0000020c,0x0003003e,0x00000211,0x0000020d,0x00070039,0x00000011,0x00000212,0x0000006b, + 0x0000020e,0x00000210,0x00000211,0x0003003e,0x0000020b,0x00000212,0x0004003d,0x00000011, + 0x00000215,0x0000020b,0x0003003e,0x00000214,0x00000215,0x00050039,0x00000006,0x00000216, + 0x00000044,0x00000214,0x00040039,0x00000006,0x00000217,0x0000004f,0x00050085,0x00000006, + 0x00000218,0x00000216,0x00000217,0x0003003e,0x00000213,0x00000218,0x00040039,0x00000021, + 0x0000021a,0x00000025,0x00040039,0x00000021,0x0000021b,0x00000027,0x0004003d,0x00000011, + 0x0000021d,0x000001d8,0x0003003e,0x0000021c,0x0000021d,0x0003003e,0x0000021e,0x0000021a, + 0x0003003e,0x0000021f,0x0000021b,0x00070039,0x00000011,0x00000220,0x0000006b,0x0000021c, + 0x0000021e,0x0000021f,0x0003003e,0x00000219,0x00000220,0x0004003d,0x00000011,0x00000222, + 0x00000219,0x0003003e,0x00000221,0x00000222,0x00050039,0x00000032,0x00000223,0x0000003b, + 0x00000221,0x00040039,0x00000006,0x00000224,0x0000002f,0x0005008e,0x00000032,0x00000225, + 0x00000223,0x00000224,0x00040039,0x00000006,0x00000226,0x0000004f,0x0005008e,0x00000032, + 0x00000227,0x00000225,0x00000226,0x00050041,0x00000033,0x00000228,0x000001ba,0x00000096, + 0x0003003e,0x00000228,0x00000227,0x00040039,0x00000021,0x0000022a,0x00000023,0x00050050, + 0x00000021,0x0000022c,0x0000022b,0x0000022b,0x00050087,0x00000021,0x0000022d,0x0000022a, + 0x0000022c,0x00040039,0x00000021,0x0000022e,0x0000003d,0x0004003d,0x00000011,0x00000230, + 0x000001ca,0x0003003e,0x0000022f,0x00000230,0x0003003e,0x00000231,0x0000022d,0x0003003e, + 0x00000232,0x0000022e,0x00070039,0x00000011,0x00000233,0x0000006b,0x0000022f,0x00000231, + 0x00000232,0x0003003e,0x00000229,0x00000233,0x0004003d,0x00000011,0x00000236,0x00000229, + 0x0003003e,0x00000235,0x00000236,0x00050039,0x00000006,0x00000237,0x00000041,0x00000235, + 0x0003003e,0x00000234,0x00000237,0x0004003d,0x0000006d,0x00000239,0x000001ba,0x0003003e, + 0x00000238,0x00000239,0x0004003d,0x00000006,0x0000023b,0x00000213,0x0003003e,0x0000023a, + 0x0000023b,0x0004003d,0x00000006,0x0000023d,0x00000234,0x0003003e,0x0000023c,0x0000023d, + 0x00070039,0x0000006d,0x0000023e,0x00000073,0x00000238,0x0000023a,0x0000023c,0x0003003e, + 0x000001ba,0x0000023e,0x0004003d,0x00000011,0x00000241,0x000001be,0x0003003e,0x00000240, + 0x00000241,0x00050039,0x00000006,0x00000242,0x00000055,0x00000240,0x00050088,0x00000006, + 0x00000244,0x00000242,0x00000243,0x0003003e,0x00000245,0x00000244,0x00050039,0x00000006, + 0x00000246,0x0000000a,0x00000245,0x00050083,0x00000006,0x00000247,0x0000007b,0x00000246, + 0x0003003e,0x0000023f,0x00000247,0x0004003d,0x00000006,0x00000248,0x0000023f,0x0004003d, + 0x00000006,0x00000249,0x000001f2,0x00050083,0x00000006,0x0000024a,0x0000007b,0x00000249, + 0x00050085,0x00000006,0x0000024b,0x00000248,0x0000024a,0x0004003d,0x00000006,0x0000024c, + 0x000001ed,0x00050083,0x00000006,0x0000024d,0x0000007b,0x0000024c,0x00050085,0x00000006, + 0x0000024e,0x0000024b,0x0000024d,0x0004003d,0x00000006,0x0000024f,0x000001f7,0x00050083, + 0x00000006,0x00000250,0x0000007b,0x0000024f,0x00050085,0x00000006,0x00000251,0x0000024e, + 0x00000250,0x00050041,0x00000007,0x00000252,0x000001ba,0x0000009c,0x0004003d,0x00000006, + 0x00000253,0x00000252,0x00050085,0x00000006,0x00000254,0x00000253,0x00000251,0x00050041, + 0x00000007,0x00000255,0x000001ba,0x0000009c,0x0003003e,0x00000255,0x00000254,0x000200f9, + 0x0000020a,0x000200f8,0x0000020a,0x000200f9,0x000001e0,0x000200f8,0x000001e0,0x0004003d, + 0x00000021,0x00000257,0x00000076,0x0003003e,0x00000256,0x00000257,0x00050041,0x00000033, + 0x00000259,0x000001ba,0x00000096,0x0004003d,0x00000032,0x0000025a,0x00000259,0x0003003e, + 0x00000258,0x0000025a,0x00060039,0x00000002,0x0000025b,0x00000037,0x00000256,0x00000258, + 0x0004003d,0x00000021,0x0000025d,0x00000076,0x0003003e,0x0000025c,0x0000025d,0x00050041, + 0x00000007,0x0000025f,0x000001ba,0x0000009c,0x0004003d,0x00000006,0x00000260,0x0000025f, + 0x0003003e,0x0000025e,0x00000260,0x00060039,0x00000002,0x00000261,0x00000049,0x0000025c, + 0x0000025e,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h new file mode 100644 index 000000000..831563084 --- /dev/null +++ b/gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h @@ -0,0 +1,1527 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_LUMA_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000747,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x00000731,0x00000733,0x00060010,0x00000004,0x00000011, + 0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469, + 0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47, + 0x735f5248,0x65646168,0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004, + 0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273, + 0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005, + 0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005, + 0x00000010,0x73746962,0x00000000,0x00060005,0x00000018,0x4d786666,0x69286e69,0x31693b31, + 0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017,0x00000079,0x00060005, + 0x0000001f,0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x0000001d,0x00000078, + 0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023,0x4d786666,0x69287861,0x31693b31, + 0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022,0x00000079,0x00060005, + 0x00000027,0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000025,0x00000078, + 0x00030005,0x00000026,0x00000079,0x000a0005,0x0000002c,0x52786666,0x70616d65,0x57726f46, + 0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000002b,0x00000061, + 0x00050005,0x00000030,0x646e6552,0x69537265,0x0028657a,0x00050005,0x00000033,0x746c6544, + 0x6d695461,0x00002865,0x00050005,0x00000036,0x4370694d,0x746e756f,0x00000028,0x00060005, + 0x00000038,0x576d754e,0x476b726f,0x70756f72,0x00002873,0x00070005,0x0000003b,0x6b726f57, + 0x756f7247,0x66664f70,0x28746573,0x00000000,0x00080005,0x00000040,0x64616f4c,0x74726146, + 0x74736568,0x74706544,0x69762868,0x00003b32,0x00040005,0x0000003f,0x50785069,0x0000736f, + 0x000a0005,0x00000045,0x726f7453,0x72614665,0x73656874,0x70654474,0x694d6874,0x76283170, + 0x663b3269,0x00003b31,0x00040005,0x00000043,0x50785069,0x0000736f,0x00040005,0x00000044, + 0x70654466,0x00006874,0x00080005,0x00000048,0x64616f4c,0x72727543,0x4c746e65,0x28616d75, + 0x3b326976,0x00000000,0x00040005,0x00000047,0x50785069,0x0000736f,0x00060005,0x0000004c, + 0x64616f4c,0x6d617246,0x666e4965,0x0000286f,0x00070005,0x00000051,0x726f7453,0x61724665, + 0x6e49656d,0x76286f66,0x003b3466,0x00040005,0x00000050,0x666e4966,0x0000006f,0x00080005, + 0x00000057,0x6f4c5752,0x79506461,0x696d6172,0x69762864,0x31753b32,0x0000003b,0x00040005, + 0x00000055,0x50785069,0x0000736f,0x00040005,0x00000056,0x65646e69,0x00000078,0x00090005, + 0x0000005e,0x726f7453,0x72795065,0x64696d61,0x32697628,0x3266763b,0x3b31753b,0x00000000, + 0x00040005,0x0000005b,0x50785069,0x0000736f,0x00050005,0x0000005c,0x5674756f,0x65756c61, + 0x00000000,0x00040005,0x0000005d,0x65646e69,0x00000078,0x000a0005,0x00000062,0x5f445053, + 0x72636e49,0x65736165,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00050005, + 0x00000061,0x43647073,0x746e756f,0x00007265,0x00080005,0x00000064,0x5f445053,0x65736552, + 0x6f744174,0x4363696d,0x746e756f,0x00287265,0x00080005,0x0000006a,0x6d616c43,0x616f4c70, + 0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005,0x00000067,0x53785069,0x6c706d61, + 0x00000065,0x00050005,0x00000068,0x4f785069,0x65736666,0x00000074,0x00060005,0x00000069, + 0x78655469,0x65727574,0x657a6953,0x00000000,0x000a0005,0x0000006e,0x706d6f43,0x41657475, + 0x456f7475,0x736f7078,0x46657275,0x4c6d6f72,0x28677661,0x003b3166,0x00040005,0x0000006d, + 0x6776614c,0x00000000,0x000a0005,0x00000071,0x49647053,0x6572636e,0x41657361,0x696d6f74, + 0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005,0x00000070,0x63696c73,0x00000065, + 0x00080005,0x00000073,0x47647053,0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000, + 0x00090005,0x00000076,0x52647053,0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872, + 0x0000003b,0x00040005,0x00000075,0x63696c73,0x00000065,0x00090005,0x0000007b,0x4c647053, + 0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266,0x00003b31,0x00040005,0x00000079, + 0x50785069,0x0000736f,0x00040005,0x0000007a,0x63696c73,0x00000065,0x00060005,0x00000080, + 0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x0000007e,0x00786574,0x00040005, + 0x0000007f,0x63696c73,0x00000065,0x00090005,0x00000087,0x52647053,0x63756465,0x76283465, + 0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x00000083,0x00003076,0x00030005, + 0x00000084,0x00003176,0x00030005,0x00000085,0x00003276,0x00030005,0x00000086,0x00003376, + 0x00080005,0x0000008e,0x53647053,0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175, + 0x00030005,0x0000008a,0x00786970,0x00050005,0x0000008b,0x5674756f,0x65756c61,0x00000000, + 0x00040005,0x0000008c,0x65646e69,0x00000078,0x00040005,0x0000008d,0x63696c73,0x00000065, + 0x00090005,0x00000093,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461,0x753b3175, + 0x00003b31,0x00030005,0x00000091,0x00000078,0x00030005,0x00000092,0x00000079,0x000a0005, + 0x00000099,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528,0x763b3175, + 0x003b3466,0x00030005,0x00000096,0x00000078,0x00030005,0x00000097,0x00000079,0x00040005, + 0x00000098,0x756c6176,0x00000065,0x000a0005,0x0000009b,0x53786666,0x6f576470,0x72676b72, + 0x5370756f,0x66667568,0x6142656c,0x65697272,0x00002872,0x00090005,0x000000a2,0x45647053, + 0x57746978,0x676b726f,0x70756f72,0x3b317528,0x753b3175,0x00003b31,0x00060005,0x0000009f, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00080005,0x000000a0,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x000000a1,0x63696c73,0x00000065, + 0x00070005,0x000000a6,0x52647053,0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005, + 0x000000a5,0x00000076,0x000b0005,0x000000af,0x52647053,0x63756465,0x616f4c65,0x76283464, + 0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x000000aa,0x00003069, + 0x00030005,0x000000ab,0x00003169,0x00030005,0x000000ac,0x00003269,0x00030005,0x000000ad, + 0x00003369,0x00040005,0x000000ae,0x63696c73,0x00000065,0x00080005,0x000000b4,0x52647053, + 0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x000000b2,0x65736162, + 0x00000000,0x00040005,0x000000b3,0x63696c73,0x00000065,0x000e0005,0x000000bb,0x52647053, + 0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32, + 0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000b6,0x00003069,0x00030005,0x000000b7, + 0x00003169,0x00030005,0x000000b8,0x00003269,0x00030005,0x000000b9,0x00003369,0x00040005, + 0x000000ba,0x63696c73,0x00000065,0x000b0005,0x000000bf,0x52647053,0x63756465,0x616f4c65, + 0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005,0x000000bd, + 0x65736162,0x00000000,0x00040005,0x000000be,0x63696c73,0x00000065,0x00100005,0x000000c8, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973, + 0x3b317528,0x763b3175,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000c2, + 0x00000078,0x00030005,0x000000c3,0x00000079,0x00050005,0x000000c4,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000c5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000c6,0x0070696d,0x00040005,0x000000c7,0x63696c73,0x00000065, + 0x000d0005,0x000000d0,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000ca,0x00000078, + 0x00030005,0x000000cb,0x00000079,0x00050005,0x000000cc,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000cd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000ce,0x0070696d,0x00040005,0x000000cf,0x63696c73,0x00000065,0x000c0005, + 0x000000d8,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000d2,0x00000078,0x00030005,0x000000d3, + 0x00000079,0x00050005,0x000000d4,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000d5, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000d6, + 0x0070696d,0x00040005,0x000000d7,0x63696c73,0x00000065,0x000c0005,0x000000e0,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175, + 0x00003b31,0x00030005,0x000000da,0x00000078,0x00030005,0x000000db,0x00000079,0x00050005, + 0x000000dc,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000dd,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000de,0x0070696d,0x00040005, + 0x000000df,0x63696c73,0x00000065,0x000c0005,0x000000e8,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005, + 0x000000e2,0x00000078,0x00030005,0x000000e3,0x00000079,0x00050005,0x000000e4,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000e5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x000000e6,0x0070696d,0x00040005,0x000000e7,0x63696c73, + 0x00000065,0x000b0005,0x000000ef,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f, + 0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x000000eb,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000ec,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000ed,0x0070696d,0x00040005,0x000000ee,0x63696c73,0x00000065, + 0x000b0005,0x000000f6,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000f2,0x00000078,0x00030005,0x000000f3, + 0x00000079,0x00040005,0x000000f4,0x7370696d,0x00000000,0x00040005,0x000000f5,0x63696c73, + 0x00000065,0x000e0005,0x00000100,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674, + 0x31752872,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005, + 0x000000f9,0x00000078,0x00030005,0x000000fa,0x00000079,0x00050005,0x000000fb,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000fc,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000fd,0x65736162,0x0070694d,0x00040005,0x000000fe, + 0x7370696d,0x00000000,0x00040005,0x000000ff,0x63696c73,0x00000065,0x000a0005,0x00000108, + 0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31, + 0x00050005,0x00000103,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000104,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000105,0x7370696d, + 0x00000000,0x00060005,0x00000106,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005, + 0x00000107,0x63696c73,0x00000065,0x000b0005,0x00000111,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x0000010b, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000010c,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x0000010d,0x7370696d,0x00000000,0x00060005, + 0x0000010e,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x0000010f,0x63696c73, + 0x00000065,0x00060005,0x00000110,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00090005, + 0x00000118,0x706d6f43,0x41657475,0x456f7475,0x736f7078,0x28657275,0x3b337576,0x003b3175, + 0x00050005,0x00000116,0x6b726f57,0x756f7247,0x00644970,0x00070005,0x00000117,0x61636f4c, + 0x7268546c,0x49646165,0x7865646e,0x00000000,0x00040005,0x00000140,0x61726170,0x0000006d, + 0x00040005,0x00000142,0x61726170,0x0000006d,0x00040005,0x00000143,0x61726170,0x0000006d, + 0x00040005,0x00000146,0x61726170,0x0000006d,0x00040005,0x00000147,0x61726170,0x0000006d, + 0x00040005,0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014b,0x61726170,0x0000006d, + 0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x0000014e,0x61726170,0x0000006d, + 0x00040005,0x00000150,0x61726170,0x0000006d,0x00040005,0x00000152,0x61726170,0x0000006d, + 0x00040005,0x00000153,0x61726170,0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d, + 0x00040005,0x00000156,0x61726170,0x0000006d,0x00040005,0x00000157,0x61726170,0x0000006d, + 0x00070005,0x0000015c,0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006, + 0x0000015c,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000015c,0x00000001, + 0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006, + 0x0000015c,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000015c, + 0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065, + 0x00070006,0x0000015c,0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006, + 0x0000015c,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000015c, + 0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000015c, + 0x00000007,0x74694a66,0x00726574,0x00090006,0x0000015c,0x00000008,0x65725066,0x756f6976, + 0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x0000015c,0x00000009,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000015c,0x0000000a,0x776f4466, + 0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000015c,0x0000000b,0x746f4d66, + 0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006, + 0x0000015c,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000015c,0x0000000d, + 0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000015c, + 0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000015c,0x0000000f,0x6c654466, + 0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000015c,0x00000010,0x65695666, + 0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000015c, + 0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000015c,0x00000012,0x6c655666, + 0x7469636f,0x63614679,0x00726f74,0x00080006,0x0000015c,0x00000013,0x61655266,0x76697463, + 0x73656e65,0x61635373,0x0000656c,0x00080006,0x0000015c,0x00000014,0x61685366,0x676e6964, + 0x6e616843,0x63536567,0x00656c61,0x000a0006,0x0000015c,0x00000015,0x63634166,0x6c756d75, + 0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000015c,0x00000016, + 0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000, + 0x00060005,0x0000015e,0x53466263,0x70553352,0x6c616373,0x00007265,0x00040005,0x0000016a, + 0x50536263,0x00745f44,0x00050006,0x0000016a,0x00000000,0x7370696d,0x00000000,0x00070006, + 0x0000016a,0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00070006,0x0000016a, + 0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00060006,0x0000016a,0x00000003, + 0x646e6572,0x69537265,0x0000657a,0x00040005,0x0000016c,0x50536263,0x00000044,0x00070005, + 0x0000017f,0x61665f72,0x65687472,0x645f7473,0x68747065,0x00000000,0x00080005,0x00000189, + 0x665f7772,0x68747261,0x5f747365,0x74706564,0x696d5f68,0x00003170,0x00060005,0x0000018f, + 0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x00000198,0x665f7772,0x656d6172, + 0x666e695f,0x0000006f,0x00050005,0x000001a6,0x735f7772,0x6d5f6470,0x00307069,0x00050005, + 0x000001b0,0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001ba,0x735f7772,0x6d5f6470, + 0x00327069,0x00050005,0x000001c4,0x735f7772,0x6d5f6470,0x00337069,0x00050005,0x000001cf, + 0x735f7772,0x6d5f6470,0x00347069,0x00050005,0x000001da,0x735f7772,0x6d5f6470,0x00357069, + 0x00080005,0x00000221,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f,0x00000000, + 0x00040005,0x00000228,0x75736572,0x0000746c,0x00040005,0x0000022f,0x61726170,0x0000006d, + 0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005,0x00000234,0x61726170,0x0000006d, + 0x00040005,0x00000235,0x61726170,0x0000006d,0x00040005,0x0000023b,0x61726170,0x0000006d, + 0x00040005,0x0000023e,0x61726170,0x0000006d,0x00040005,0x00000240,0x61726170,0x0000006d, + 0x00040005,0x00000241,0x61726170,0x0000006d,0x00060005,0x00000249,0x6f707845,0x65727573, + 0x314f5349,0x00003030,0x00040005,0x00000250,0x78616d4c,0x00000000,0x00040005,0x00000253, + 0x61726170,0x0000006d,0x00040005,0x00000254,0x61726170,0x0000006d,0x00050005,0x0000025e, + 0x43647073,0x746e756f,0x00007265,0x00040005,0x0000025f,0x61726170,0x0000006d,0x00060005, + 0x00000267,0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005,0x0000026b,0x61726170, + 0x0000006d,0x00040005,0x0000026c,0x61726170,0x0000006d,0x00040005,0x0000026d,0x61726170, + 0x0000006d,0x00040005,0x0000026f,0x6d754c66,0x00000061,0x00040005,0x00000270,0x61726170, + 0x0000006d,0x00050005,0x00000273,0x676f4c66,0x616d754c,0x00000000,0x00040005,0x00000277, + 0x61726170,0x0000006d,0x00040005,0x00000278,0x61726170,0x0000006d,0x00080005,0x0000027a, + 0x72614666,0x73656874,0x70654474,0x6e496874,0x6574654d,0x00007372,0x00040005,0x0000027b, + 0x61726170,0x0000006d,0x00040005,0x0000027e,0x74754f66,0x00747570,0x00040005,0x00000289, + 0x61726170,0x0000006d,0x00040005,0x0000028b,0x61726170,0x0000006d,0x00040005,0x000002a1, + 0x61726170,0x0000006d,0x00040005,0x000002a3,0x61726170,0x0000006d,0x00040005,0x000002a6, + 0x61726170,0x0000006d,0x00040005,0x000002ae,0x61726170,0x0000006d,0x00040005,0x000002b0, + 0x61726170,0x0000006d,0x00050005,0x000002c0,0x6d617266,0x666e4965,0x0000006f,0x00060005, + 0x000002c2,0x65635366,0x7641656e,0x6d754c67,0x00000061,0x00060005,0x000002c5,0x65725066, + 0x676f4c76,0x616d754c,0x00000000,0x00050005,0x000002c8,0x676f4c66,0x616d754c,0x00000000, + 0x00040005,0x000002da,0x61726170,0x0000006d,0x00040005,0x000002db,0x61726170,0x0000006d, + 0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005,0x000002e6,0x61726170,0x0000006d, + 0x00070005,0x000002ed,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005, + 0x000002f3,0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000002f8, + 0x49647073,0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x000002fd,0x49647073, + 0x7265746e,0x6964656d,0x41657461,0x00000000,0x00040005,0x0000031f,0x61726170,0x0000006d, + 0x00030005,0x00000329,0x00003076,0x00030005,0x0000032b,0x00003176,0x00030005,0x0000032e, + 0x00003276,0x00030005,0x00000331,0x00003376,0x00040005,0x00000334,0x61726170,0x0000006d, + 0x00040005,0x00000336,0x61726170,0x0000006d,0x00040005,0x00000338,0x61726170,0x0000006d, + 0x00040005,0x0000033a,0x61726170,0x0000006d,0x00030005,0x00000341,0x00003076,0x00040005, + 0x00000344,0x61726170,0x0000006d,0x00040005,0x00000345,0x61726170,0x0000006d,0x00030005, + 0x00000348,0x00003176,0x00040005,0x0000034b,0x61726170,0x0000006d,0x00040005,0x0000034c, + 0x61726170,0x0000006d,0x00030005,0x0000034f,0x00003276,0x00040005,0x00000352,0x61726170, + 0x0000006d,0x00040005,0x00000353,0x61726170,0x0000006d,0x00030005,0x00000356,0x00003376, + 0x00040005,0x00000359,0x61726170,0x0000006d,0x00040005,0x0000035a,0x61726170,0x0000006d, + 0x00040005,0x0000035d,0x61726170,0x0000006d,0x00040005,0x0000035f,0x61726170,0x0000006d, + 0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000363,0x61726170,0x0000006d, + 0x00040005,0x00000374,0x61726170,0x0000006d,0x00040005,0x00000375,0x61726170,0x0000006d, + 0x00040005,0x00000376,0x61726170,0x0000006d,0x00040005,0x00000377,0x61726170,0x0000006d, + 0x00040005,0x00000378,0x61726170,0x0000006d,0x00030005,0x0000037d,0x00003076,0x00040005, + 0x00000381,0x61726170,0x0000006d,0x00040005,0x00000382,0x61726170,0x0000006d,0x00030005, + 0x00000385,0x00003176,0x00040005,0x00000389,0x61726170,0x0000006d,0x00040005,0x0000038a, + 0x61726170,0x0000006d,0x00030005,0x0000038d,0x00003276,0x00040005,0x00000391,0x61726170, + 0x0000006d,0x00040005,0x00000392,0x61726170,0x0000006d,0x00030005,0x00000395,0x00003376, + 0x00040005,0x00000399,0x61726170,0x0000006d,0x00040005,0x0000039a,0x61726170,0x0000006d, + 0x00040005,0x0000039d,0x61726170,0x0000006d,0x00040005,0x0000039f,0x61726170,0x0000006d, + 0x00040005,0x000003a1,0x61726170,0x0000006d,0x00040005,0x000003a3,0x61726170,0x0000006d, + 0x00040005,0x000003b0,0x61726170,0x0000006d,0x00040005,0x000003b1,0x61726170,0x0000006d, + 0x00040005,0x000003b2,0x61726170,0x0000006d,0x00040005,0x000003b3,0x61726170,0x0000006d, + 0x00040005,0x000003b4,0x61726170,0x0000006d,0x00030005,0x000003b9,0x00786574,0x00030005, + 0x000003c7,0x00786970,0x00030005,0x000003d5,0x00000076,0x00040005,0x000003d8,0x61726170, + 0x0000006d,0x00040005,0x000003d9,0x61726170,0x0000006d,0x00040005,0x000003dd,0x61726170, + 0x0000006d,0x00040005,0x000003df,0x61726170,0x0000006d,0x00040005,0x000003e2,0x61726170, + 0x0000006d,0x00040005,0x000003e3,0x61726170,0x0000006d,0x00040005,0x00000400,0x61726170, + 0x0000006d,0x00040005,0x00000401,0x61726170,0x0000006d,0x00040005,0x00000405,0x61726170, + 0x0000006d,0x00040005,0x00000407,0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170, + 0x0000006d,0x00040005,0x0000040b,0x61726170,0x0000006d,0x00040005,0x00000428,0x61726170, + 0x0000006d,0x00040005,0x00000429,0x61726170,0x0000006d,0x00040005,0x0000042d,0x61726170, + 0x0000006d,0x00040005,0x0000042f,0x61726170,0x0000006d,0x00040005,0x00000432,0x61726170, + 0x0000006d,0x00040005,0x00000433,0x61726170,0x0000006d,0x00040005,0x00000453,0x61726170, + 0x0000006d,0x00040005,0x00000454,0x61726170,0x0000006d,0x00040005,0x00000458,0x61726170, + 0x0000006d,0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045d,0x61726170, + 0x0000006d,0x00040005,0x0000045e,0x61726170,0x0000006d,0x00040005,0x00000466,0x61726170, + 0x0000006d,0x00040005,0x0000046b,0x61726170,0x0000006d,0x00040005,0x00000470,0x61726170, + 0x0000006d,0x00040005,0x00000475,0x61726170,0x0000006d,0x00040005,0x0000048b,0x61726170, + 0x0000006d,0x00040005,0x0000048c,0x61726170,0x0000006d,0x00040005,0x0000048f,0x61726170, + 0x0000006d,0x00040005,0x00000490,0x61726170,0x0000006d,0x00040005,0x00000497,0x61726170, + 0x0000006d,0x00040005,0x00000498,0x61726170,0x0000006d,0x00040005,0x00000499,0x61726170, + 0x0000006d,0x00040005,0x000004ab,0x61726170,0x0000006d,0x00040005,0x000004ac,0x61726170, + 0x0000006d,0x00040005,0x000004af,0x61726170,0x0000006d,0x00040005,0x000004b0,0x61726170, + 0x0000006d,0x00040005,0x000004b8,0x61726170,0x0000006d,0x00040005,0x000004b9,0x61726170, + 0x0000006d,0x00040005,0x000004ba,0x61726170,0x0000006d,0x00040005,0x000004cb,0x61726170, + 0x0000006d,0x00040005,0x000004cc,0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170, + 0x0000006d,0x00040005,0x000004d0,0x61726170,0x0000006d,0x00040005,0x000004d8,0x61726170, + 0x0000006d,0x00040005,0x000004d9,0x61726170,0x0000006d,0x00040005,0x000004da,0x61726170, + 0x0000006d,0x00040005,0x000004ec,0x61726170,0x0000006d,0x00040005,0x000004ed,0x61726170, + 0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d,0x00040005,0x000004f1,0x61726170, + 0x0000006d,0x00040005,0x000004fa,0x61726170,0x0000006d,0x00040005,0x000004fb,0x61726170, + 0x0000006d,0x00040005,0x000004fc,0x61726170,0x0000006d,0x00040005,0x00000500,0x61726170, + 0x0000006d,0x00040005,0x00000502,0x61726170,0x0000006d,0x00040005,0x00000504,0x61726170, + 0x0000006d,0x00040005,0x00000506,0x61726170,0x0000006d,0x00040005,0x00000508,0x61726170, + 0x0000006d,0x00040005,0x0000050a,0x61726170,0x0000006d,0x00030005,0x0000050d,0x00000076, + 0x00040005,0x0000050e,0x61726170,0x0000006d,0x00040005,0x00000510,0x61726170,0x0000006d, + 0x00040005,0x00000513,0x61726170,0x0000006d,0x00040005,0x00000527,0x61726170,0x0000006d, + 0x00040005,0x00000528,0x61726170,0x0000006d,0x00040005,0x0000052a,0x61726170,0x0000006d, + 0x00040005,0x0000052c,0x61726170,0x0000006d,0x00040005,0x00000534,0x61726170,0x0000006d, + 0x00040005,0x00000535,0x61726170,0x0000006d,0x00040005,0x00000537,0x61726170,0x0000006d, + 0x00030005,0x0000053e,0x00000076,0x00040005,0x00000546,0x61726170,0x0000006d,0x00040005, + 0x00000547,0x61726170,0x0000006d,0x00040005,0x00000549,0x61726170,0x0000006d,0x00040005, + 0x0000055d,0x61726170,0x0000006d,0x00040005,0x0000055e,0x61726170,0x0000006d,0x00040005, + 0x00000560,0x61726170,0x0000006d,0x00040005,0x00000562,0x61726170,0x0000006d,0x00040005, + 0x0000056c,0x61726170,0x0000006d,0x00040005,0x0000056d,0x61726170,0x0000006d,0x00040005, + 0x0000056e,0x61726170,0x0000006d,0x00030005,0x00000575,0x00000076,0x00040005,0x0000057c, + 0x61726170,0x0000006d,0x00040005,0x0000057d,0x61726170,0x0000006d,0x00040005,0x0000057f, + 0x61726170,0x0000006d,0x00040005,0x00000593,0x61726170,0x0000006d,0x00040005,0x00000594, + 0x61726170,0x0000006d,0x00040005,0x00000596,0x61726170,0x0000006d,0x00040005,0x00000598, + 0x61726170,0x0000006d,0x00040005,0x0000059f,0x61726170,0x0000006d,0x00040005,0x000005a0, + 0x61726170,0x0000006d,0x00040005,0x000005a1,0x61726170,0x0000006d,0x00030005,0x000005a8, + 0x00000076,0x00040005,0x000005a9,0x61726170,0x0000006d,0x00040005,0x000005ab,0x61726170, + 0x0000006d,0x00040005,0x000005ad,0x61726170,0x0000006d,0x00040005,0x000005b7,0x61726170, + 0x0000006d,0x00040005,0x000005b8,0x61726170,0x0000006d,0x00040005,0x000005ba,0x61726170, + 0x0000006d,0x00040005,0x000005bc,0x61726170,0x0000006d,0x00030005,0x000005bf,0x00786574, + 0x00030005,0x000005c9,0x00786970,0x00030005,0x000005d3,0x00003076,0x00040005,0x000005d6, + 0x61726170,0x0000006d,0x00040005,0x000005d7,0x61726170,0x0000006d,0x00040005,0x000005db, + 0x61726170,0x0000006d,0x00040005,0x000005dd,0x61726170,0x0000006d,0x00040005,0x000005df, + 0x61726170,0x0000006d,0x00040005,0x000005e0,0x61726170,0x0000006d,0x00030005,0x000005f5, + 0x00003176,0x00040005,0x000005f8,0x61726170,0x0000006d,0x00040005,0x000005f9,0x61726170, + 0x0000006d,0x00040005,0x000005fc,0x61726170,0x0000006d,0x00040005,0x000005fe,0x61726170, + 0x0000006d,0x00040005,0x00000600,0x61726170,0x0000006d,0x00040005,0x00000601,0x61726170, + 0x0000006d,0x00030005,0x00000616,0x00003276,0x00040005,0x00000619,0x61726170,0x0000006d, + 0x00040005,0x0000061a,0x61726170,0x0000006d,0x00040005,0x0000061d,0x61726170,0x0000006d, + 0x00040005,0x0000061f,0x61726170,0x0000006d,0x00040005,0x00000621,0x61726170,0x0000006d, + 0x00040005,0x00000622,0x61726170,0x0000006d,0x00030005,0x00000637,0x00003376,0x00040005, + 0x0000063a,0x61726170,0x0000006d,0x00040005,0x0000063b,0x61726170,0x0000006d,0x00040005, + 0x0000063e,0x61726170,0x0000006d,0x00040005,0x00000640,0x61726170,0x0000006d,0x00040005, + 0x00000642,0x61726170,0x0000006d,0x00040005,0x00000643,0x61726170,0x0000006d,0x00030005, + 0x0000064c,0x00000076,0x00040005,0x0000064d,0x61726170,0x0000006d,0x00040005,0x0000064f, + 0x61726170,0x0000006d,0x00040005,0x00000651,0x61726170,0x0000006d,0x00040005,0x00000653, + 0x61726170,0x0000006d,0x00040005,0x0000065b,0x61726170,0x0000006d,0x00040005,0x0000065c, + 0x61726170,0x0000006d,0x00040005,0x0000065e,0x61726170,0x0000006d,0x00040005,0x0000065f, + 0x61726170,0x0000006d,0x00040005,0x00000662,0x61726170,0x0000006d,0x00040005,0x00000664, + 0x61726170,0x0000006d,0x00040005,0x00000666,0x61726170,0x0000006d,0x00040005,0x00000670, + 0x61726170,0x0000006d,0x00040005,0x00000672,0x61726170,0x0000006d,0x00040005,0x00000674, + 0x61726170,0x0000006d,0x00040005,0x00000676,0x61726170,0x0000006d,0x00040005,0x00000678, + 0x61726170,0x0000006d,0x00040005,0x0000067a,0x61726170,0x0000006d,0x00040005,0x00000687, + 0x61726170,0x0000006d,0x00040005,0x00000689,0x61726170,0x0000006d,0x00040005,0x0000068b, + 0x61726170,0x0000006d,0x00040005,0x0000068d,0x61726170,0x0000006d,0x00040005,0x0000068f, + 0x61726170,0x0000006d,0x00040005,0x00000690,0x61726170,0x0000006d,0x00040005,0x0000069d, + 0x61726170,0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a1, + 0x61726170,0x0000006d,0x00040005,0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006a5, + 0x61726170,0x0000006d,0x00040005,0x000006a6,0x61726170,0x0000006d,0x00040005,0x000006b3, + 0x61726170,0x0000006d,0x00040005,0x000006b5,0x61726170,0x0000006d,0x00040005,0x000006b7, + 0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d,0x00040005,0x000006bb, + 0x5f627573,0x00007978,0x00040005,0x000006be,0x61726170,0x0000006d,0x00030005,0x000006c0, + 0x00000078,0x00030005,0x000006c9,0x00000079,0x00040005,0x000006d1,0x61726170,0x0000006d, + 0x00040005,0x000006d3,0x61726170,0x0000006d,0x00040005,0x000006d5,0x61726170,0x0000006d, + 0x00040005,0x000006d7,0x61726170,0x0000006d,0x00040005,0x000006d9,0x61726170,0x0000006d, + 0x00040005,0x000006db,0x61726170,0x0000006d,0x00040005,0x000006de,0x61726170,0x0000006d, + 0x00040005,0x000006e0,0x61726170,0x0000006d,0x00040005,0x000006e2,0x61726170,0x0000006d, + 0x00040005,0x000006e4,0x61726170,0x0000006d,0x00040005,0x000006e6,0x61726170,0x0000006d, + 0x00040005,0x000006e7,0x61726170,0x0000006d,0x00040005,0x000006e9,0x61726170,0x0000006d, + 0x00040005,0x000006f1,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x000006f5,0x61726170,0x0000006d,0x00040005,0x000006fb,0x61726170,0x0000006d, + 0x00040005,0x000006fe,0x61726170,0x0000006d,0x00040005,0x00000700,0x61726170,0x0000006d, + 0x00040005,0x00000702,0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d, + 0x00040005,0x00000707,0x61726170,0x0000006d,0x00040005,0x00000709,0x61726170,0x0000006d, + 0x00040005,0x0000070b,0x61726170,0x0000006d,0x00040005,0x0000070c,0x61726170,0x0000006d, + 0x00040005,0x0000070e,0x61726170,0x0000006d,0x00040005,0x0000070f,0x61726170,0x0000006d, + 0x00040005,0x00000711,0x61726170,0x0000006d,0x00040005,0x00000717,0x61726170,0x0000006d, + 0x00040005,0x00000718,0x61726170,0x0000006d,0x00040005,0x0000071a,0x61726170,0x0000006d, + 0x00040005,0x0000071c,0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d, + 0x00040005,0x00000729,0x61726170,0x0000006d,0x00040005,0x0000072a,0x61726170,0x0000006d, + 0x00040005,0x0000072b,0x61726170,0x0000006d,0x00040005,0x0000072c,0x61726170,0x0000006d, + 0x00040005,0x0000072d,0x61726170,0x0000006d,0x00040005,0x0000072e,0x61726170,0x0000006d, + 0x00060005,0x00000731,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000733, + 0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000734, + 0x61726170,0x0000006d,0x00040005,0x00000736,0x61726170,0x0000006d,0x00060005,0x0000073d, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00060005,0x0000073e,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00030047,0x0000015c,0x00000002,0x00050048,0x0000015c,0x00000000, + 0x00000023,0x00000000,0x00050048,0x0000015c,0x00000001,0x00000023,0x00000008,0x00050048, + 0x0000015c,0x00000002,0x00000023,0x00000010,0x00050048,0x0000015c,0x00000003,0x00000023, + 0x00000018,0x00050048,0x0000015c,0x00000004,0x00000023,0x00000020,0x00050048,0x0000015c, + 0x00000005,0x00000023,0x00000028,0x00050048,0x0000015c,0x00000006,0x00000023,0x00000030, + 0x00050048,0x0000015c,0x00000007,0x00000023,0x00000040,0x00050048,0x0000015c,0x00000008, + 0x00000023,0x00000048,0x00050048,0x0000015c,0x00000009,0x00000023,0x00000050,0x00050048, + 0x0000015c,0x0000000a,0x00000023,0x00000058,0x00050048,0x0000015c,0x0000000b,0x00000023, + 0x00000060,0x00050048,0x0000015c,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000015c, + 0x0000000d,0x00000023,0x0000006c,0x00050048,0x0000015c,0x0000000e,0x00000023,0x00000070, + 0x00050048,0x0000015c,0x0000000f,0x00000023,0x00000074,0x00050048,0x0000015c,0x00000010, + 0x00000023,0x00000078,0x00050048,0x0000015c,0x00000011,0x00000023,0x0000007c,0x00050048, + 0x0000015c,0x00000012,0x00000023,0x00000080,0x00050048,0x0000015c,0x00000013,0x00000023, + 0x00000084,0x00050048,0x0000015c,0x00000014,0x00000023,0x00000088,0x00050048,0x0000015c, + 0x00000015,0x00000023,0x0000008c,0x00050048,0x0000015c,0x00000016,0x00000023,0x00000090, + 0x00040047,0x0000015e,0x00000021,0x0000000b,0x00040047,0x0000015e,0x00000022,0x00000000, + 0x00030047,0x0000016a,0x00000002,0x00050048,0x0000016a,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000016a,0x00000001,0x00000023,0x00000004,0x00050048,0x0000016a,0x00000002, + 0x00000023,0x00000008,0x00050048,0x0000016a,0x00000003,0x00000023,0x00000010,0x00040047, + 0x0000016c,0x00000021,0x0000000c,0x00040047,0x0000016c,0x00000022,0x00000000,0x00040047, + 0x0000017f,0x00000021,0x00000001,0x00040047,0x0000017f,0x00000022,0x00000000,0x00040047, + 0x00000189,0x00000021,0x0000000a,0x00040047,0x00000189,0x00000022,0x00000000,0x00040047, + 0x0000018f,0x00000021,0x00000000,0x00040047,0x0000018f,0x00000022,0x00000000,0x00040047, + 0x00000198,0x00000021,0x00000003,0x00040047,0x00000198,0x00000022,0x00000000,0x00040047, + 0x000001a6,0x00000021,0x00000004,0x00040047,0x000001a6,0x00000022,0x00000000,0x00040047, + 0x000001b0,0x00000021,0x00000005,0x00040047,0x000001b0,0x00000022,0x00000000,0x00040047, + 0x000001ba,0x00000021,0x00000006,0x00040047,0x000001ba,0x00000022,0x00000000,0x00040047, + 0x000001c4,0x00000021,0x00000007,0x00040047,0x000001c4,0x00000022,0x00000000,0x00040047, + 0x000001cf,0x00000021,0x00000008,0x00040047,0x000001cf,0x00000022,0x00000000,0x00030047, + 0x000001da,0x00000017,0x00040047,0x000001da,0x00000021,0x00000009,0x00040047,0x000001da, + 0x00000022,0x00000000,0x00030047,0x00000221,0x00000017,0x00040047,0x00000221,0x00000021, + 0x00000002,0x00040047,0x00000221,0x00000022,0x00000000,0x00040047,0x00000731,0x0000000b, + 0x0000001a,0x00040047,0x00000733,0x0000000b,0x0000001d,0x00040047,0x0000073d,0x00000021, + 0x000003e8,0x00040047,0x0000073d,0x00000022,0x00000000,0x00040047,0x0000073e,0x00000021, + 0x000003e9,0x00040047,0x0000073e,0x00000022,0x00000000,0x00040047,0x00000746,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008, + 0x00000006,0x00000007,0x00000007,0x00000007,0x00040015,0x00000013,0x00000020,0x00000001, + 0x00040020,0x00000014,0x00000007,0x00000013,0x00050021,0x00000015,0x00000013,0x00000014, + 0x00000014,0x00030016,0x0000001a,0x00000020,0x00040020,0x0000001b,0x00000007,0x0000001a, + 0x00050021,0x0000001c,0x0000001a,0x0000001b,0x0000001b,0x00040017,0x00000029,0x00000006, + 0x00000002,0x00040021,0x0000002a,0x00000029,0x00000007,0x00040017,0x0000002e,0x00000013, + 0x00000002,0x00030021,0x0000002f,0x0000002e,0x00030021,0x00000032,0x0000001a,0x00030021, + 0x00000035,0x00000006,0x00030021,0x0000003a,0x00000029,0x00040020,0x0000003d,0x00000007, + 0x0000002e,0x00040021,0x0000003e,0x0000001a,0x0000003d,0x00050021,0x00000042,0x00000002, + 0x0000003d,0x0000001b,0x00040017,0x0000004a,0x0000001a,0x00000004,0x00030021,0x0000004b, + 0x0000004a,0x00040020,0x0000004e,0x00000007,0x0000004a,0x00040021,0x0000004f,0x00000002, + 0x0000004e,0x00040017,0x00000053,0x0000001a,0x00000002,0x00050021,0x00000054,0x00000053, + 0x0000003d,0x00000007,0x00040020,0x00000059,0x00000007,0x00000053,0x00060021,0x0000005a, + 0x00000002,0x0000003d,0x00000059,0x00000007,0x00040021,0x00000060,0x00000002,0x00000007, + 0x00060021,0x00000066,0x0000002e,0x0000003d,0x0000003d,0x0000003d,0x00040021,0x0000006c, + 0x0000001a,0x0000001b,0x00050021,0x00000078,0x0000004a,0x00000059,0x00000007,0x00050021, + 0x0000007d,0x0000004a,0x0000003d,0x00000007,0x00070021,0x00000082,0x0000004a,0x0000004e, + 0x0000004e,0x0000004e,0x0000004e,0x00070021,0x00000089,0x00000002,0x0000003d,0x0000004e, + 0x00000007,0x00000007,0x00050021,0x00000090,0x0000004a,0x00000007,0x00000007,0x00060021, + 0x00000095,0x00000002,0x00000007,0x00000007,0x0000004e,0x00020014,0x0000009d,0x00060021, + 0x0000009e,0x0000009d,0x00000007,0x00000007,0x00000007,0x00040021,0x000000a4,0x0000004a, + 0x0000004e,0x00040020,0x000000a8,0x00000007,0x00000029,0x00080021,0x000000a9,0x0000004a, + 0x000000a8,0x000000a8,0x000000a8,0x000000a8,0x00000007,0x00050021,0x000000b1,0x0000004a, + 0x000000a8,0x00000007,0x00090021,0x000000c1,0x00000002,0x00000007,0x00000007,0x000000a8, + 0x00000007,0x00000007,0x00000007,0x00070021,0x000000ea,0x00000002,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00070021,0x000000f1,0x00000002,0x00000007,0x00000007,0x00000007, + 0x00000007,0x000a0021,0x000000f8,0x00000002,0x00000007,0x00000007,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00000007,0x00080021,0x00000102,0x00000002,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00000007,0x00090021,0x0000010a,0x00000002,0x000000a8,0x00000007, + 0x00000007,0x00000007,0x00000007,0x000000a8,0x00040017,0x00000113,0x00000006,0x00000003, + 0x00040020,0x00000114,0x00000007,0x00000113,0x00050021,0x00000115,0x00000002,0x00000114, + 0x00000007,0x0004002b,0x00000013,0x00000124,0x00000000,0x0004002b,0x00000006,0x0000013e, + 0x00000002,0x0004002b,0x00000006,0x0000013f,0x00000003,0x0004002b,0x00000006,0x00000145, + 0x00000001,0x0019001e,0x0000015c,0x0000002e,0x0000002e,0x0000002e,0x0000002e,0x0000002e, + 0x0000002e,0x0000004a,0x00000053,0x00000053,0x00000053,0x00000053,0x00000053,0x0000001a, + 0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x0000001a,0x00040020,0x0000015d,0x00000002,0x0000015c,0x0004003b,0x0000015d, + 0x0000015e,0x00000002,0x00040020,0x0000015f,0x00000002,0x0000002e,0x0004002b,0x00000013, + 0x00000164,0x0000000e,0x00040020,0x00000165,0x00000002,0x0000001a,0x0006001e,0x0000016a, + 0x00000006,0x00000006,0x00000029,0x00000029,0x00040020,0x0000016b,0x00000002,0x0000016a, + 0x0004003b,0x0000016b,0x0000016c,0x00000002,0x00040020,0x0000016d,0x00000002,0x00000006, + 0x0004002b,0x00000013,0x00000172,0x00000001,0x0004002b,0x00000013,0x00000177,0x00000002, + 0x00040020,0x00000178,0x00000002,0x00000029,0x00090019,0x0000017d,0x0000001a,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x0000017e,0x00000000, + 0x0000017d,0x0004003b,0x0000017e,0x0000017f,0x00000000,0x0004002b,0x00000006,0x00000183, + 0x00000000,0x00090019,0x00000187,0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000009,0x00040020,0x00000188,0x00000000,0x00000187,0x0004003b,0x00000188, + 0x00000189,0x00000000,0x0004002b,0x0000001a,0x0000018d,0x00000000,0x0004003b,0x0000017e, + 0x0000018f,0x00000000,0x00090019,0x00000196,0x0000001a,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000001,0x00040020,0x00000197,0x00000000,0x00000196,0x0004003b, + 0x00000197,0x00000198,0x00000000,0x0005002c,0x0000002e,0x0000019a,0x00000124,0x00000124, + 0x00090019,0x000001a4,0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000007,0x00040020,0x000001a5,0x00000000,0x000001a4,0x0004003b,0x000001a5,0x000001a6, + 0x00000000,0x0004003b,0x000001a5,0x000001b0,0x00000000,0x0004003b,0x000001a5,0x000001ba, + 0x00000000,0x0004003b,0x000001a5,0x000001c4,0x00000000,0x0004002b,0x00000006,0x000001cb, + 0x00000004,0x0004003b,0x000001a5,0x000001cf,0x00000000,0x0004002b,0x00000006,0x000001d6, + 0x00000005,0x0004003b,0x000001a5,0x000001da,0x00000000,0x0005002c,0x00000053,0x000001e0, + 0x0000018d,0x0000018d,0x00090019,0x0000021f,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000021,0x00040020,0x00000220,0x00000000,0x0000021f,0x0004003b, + 0x00000220,0x00000221,0x00000000,0x00040020,0x00000222,0x0000000b,0x00000006,0x00040017, + 0x00000226,0x00000006,0x00000004,0x0007002c,0x00000226,0x00000227,0x00000183,0x00000183, + 0x00000183,0x00000183,0x0004002b,0x0000001a,0x0000024b,0x42c80000,0x0004002b,0x0000001a, + 0x0000024d,0x41480000,0x0004002b,0x0000001a,0x00000251,0x3f99999a,0x0004002b,0x0000001a, + 0x00000252,0x40000000,0x0004002b,0x0000001a,0x00000258,0x3f800000,0x00040020,0x0000025d, + 0x00000004,0x00000006,0x0004003b,0x0000025d,0x0000025e,0x00000004,0x0004002b,0x0000001a, + 0x00000274,0x387fda40,0x0007002c,0x0000004a,0x0000027f,0x0000018d,0x0000018d,0x0000018d, + 0x0000018d,0x0004002b,0x0000001a,0x00000299,0x3e800000,0x00040017,0x000002bb,0x0000009d, + 0x00000002,0x0004002b,0x0000001a,0x000002cc,0x461c4000,0x0004002b,0x00000006,0x000002e9, + 0x00000010,0x0004001c,0x000002ea,0x0000001a,0x000002e9,0x0004001c,0x000002eb,0x000002ea, + 0x000002e9,0x00040020,0x000002ec,0x00000004,0x000002eb,0x0004003b,0x000002ec,0x000002ed, + 0x00000004,0x00040020,0x000002f0,0x00000004,0x0000001a,0x0004003b,0x000002ec,0x000002f3, + 0x00000004,0x0004003b,0x000002ec,0x000002f8,0x00000004,0x0004003b,0x000002ec,0x000002fd, + 0x00000004,0x0004002b,0x00000006,0x00000319,0x00000d48,0x0004002b,0x00000006,0x0000031a, + 0x00000108,0x0005002c,0x00000029,0x00000369,0x00000183,0x00000183,0x0005002c,0x00000029, + 0x0000036c,0x00000183,0x00000145,0x0005002c,0x00000029,0x0000036f,0x00000145,0x00000183, + 0x0005002c,0x00000029,0x00000372,0x00000145,0x00000145,0x0004002b,0x00000006,0x000003bb, + 0x00000040,0x0004002b,0x00000006,0x000003c9,0x00000020,0x0004001c,0x000003d3,0x0000004a, + 0x000001cb,0x00040020,0x000003d4,0x00000007,0x000003d3,0x0004002b,0x00000013,0x00000450, + 0x00000003,0x0004002b,0x00000006,0x000004a3,0x00000008,0x0004002b,0x00000006,0x000005da, + 0x00000006,0x0004002b,0x00000006,0x00000647,0x00000007,0x0004002b,0x00000013,0x000006c4, + 0x00000006,0x0004002b,0x00000013,0x000006cd,0x00000007,0x00040020,0x00000730,0x00000001, + 0x00000113,0x0004003b,0x00000730,0x00000731,0x00000001,0x00040020,0x00000732,0x00000001, + 0x00000006,0x0004003b,0x00000732,0x00000733,0x00000001,0x0004002b,0x0000001a,0x00000739, + 0x477fe000,0x0004002b,0x0000001a,0x0000073a,0x37801002,0x0002001a,0x0000073b,0x00040020, + 0x0000073c,0x00000000,0x0000073b,0x0004003b,0x0000073c,0x0000073d,0x00000000,0x0004003b, + 0x0000073c,0x0000073e,0x00000000,0x0004002b,0x0000001a,0x0000073f,0x7f7fffff,0x0004002b, + 0x0000001a,0x00000740,0x00800000,0x0004002b,0x0000001a,0x00000741,0x3a1fe868,0x0004002b, + 0x0000001a,0x00000742,0x3d800000,0x0004002b,0x0000001a,0x00000743,0x3d3d70a4,0x0004002b, + 0x0000001a,0x00000744,0x3e400000,0x0004002b,0x00000006,0x00000745,0x00000100,0x0006002c, + 0x00000113,0x00000746,0x00000745,0x00000145,0x00000145,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000114,0x00000734,0x00000007, + 0x0004003b,0x00000007,0x00000736,0x00000007,0x0004003d,0x00000113,0x00000735,0x00000731, + 0x0003003e,0x00000734,0x00000735,0x0004003d,0x00000006,0x00000737,0x00000733,0x0003003e, + 0x00000736,0x00000737,0x00060039,0x00000002,0x00000738,0x00000118,0x00000734,0x00000736, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x0000011a,0x00000009,0x0004003d,0x00000006, + 0x0000011b,0x0000000a,0x0004007c,0x00000013,0x0000011c,0x0000011b,0x0004003d,0x00000006, + 0x0000011d,0x0000000b,0x0004007c,0x00000013,0x0000011e,0x0000011d,0x000600cb,0x00000006, + 0x0000011f,0x0000011a,0x0000011c,0x0000011e,0x000200fe,0x0000011f,0x00010038,0x00050036, + 0x00000006,0x00000011,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037, + 0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d, + 0x00000006,0x00000122,0x0000000e,0x0004003d,0x00000006,0x00000123,0x0000000f,0x0004003d, + 0x00000006,0x00000125,0x00000010,0x0004007c,0x00000013,0x00000126,0x00000125,0x000700c9, + 0x00000006,0x00000127,0x00000122,0x00000123,0x00000124,0x00000126,0x000200fe,0x00000127, + 0x00010038,0x00050036,0x00000013,0x00000018,0x00000000,0x00000015,0x00030037,0x00000014, + 0x00000016,0x00030037,0x00000014,0x00000017,0x000200f8,0x00000019,0x0004003d,0x00000013, + 0x0000012a,0x00000016,0x0004003d,0x00000013,0x0000012b,0x00000017,0x0007000c,0x00000013, + 0x0000012c,0x00000001,0x00000027,0x0000012a,0x0000012b,0x000200fe,0x0000012c,0x00010038, + 0x00050036,0x0000001a,0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d, + 0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a,0x0000012f, + 0x0000001d,0x0004003d,0x0000001a,0x00000130,0x0000001e,0x0007000c,0x0000001a,0x00000131, + 0x00000001,0x00000028,0x0000012f,0x00000130,0x000200fe,0x00000131,0x00010038,0x00050036, + 0x00000013,0x00000023,0x00000000,0x00000015,0x00030037,0x00000014,0x00000021,0x00030037, + 0x00000014,0x00000022,0x000200f8,0x00000024,0x0004003d,0x00000013,0x00000134,0x00000021, + 0x0004003d,0x00000013,0x00000135,0x00000022,0x0007000c,0x00000013,0x00000136,0x00000001, + 0x0000002a,0x00000134,0x00000135,0x000200fe,0x00000136,0x00010038,0x00050036,0x0000001a, + 0x00000027,0x00000000,0x0000001c,0x00030037,0x0000001b,0x00000025,0x00030037,0x0000001b, + 0x00000026,0x000200f8,0x00000028,0x0004003d,0x0000001a,0x00000139,0x00000025,0x0004003d, + 0x0000001a,0x0000013a,0x00000026,0x0007000c,0x0000001a,0x0000013b,0x00000001,0x0000001a, + 0x00000139,0x0000013a,0x000200fe,0x0000013b,0x00010038,0x00050036,0x00000029,0x0000002c, + 0x00000000,0x0000002a,0x00030037,0x00000007,0x0000002b,0x000200f8,0x0000002d,0x0004003b, + 0x00000007,0x00000140,0x00000007,0x0004003b,0x00000007,0x00000142,0x00000007,0x0004003b, + 0x00000007,0x00000143,0x00000007,0x0004003b,0x00000007,0x00000146,0x00000007,0x0004003b, + 0x00000007,0x00000147,0x00000007,0x0004003b,0x00000007,0x00000149,0x00000007,0x0004003b, + 0x00000007,0x0000014b,0x00000007,0x0004003b,0x00000007,0x0000014d,0x00000007,0x0004003b, + 0x00000007,0x0000014e,0x00000007,0x0004003b,0x00000007,0x00000150,0x00000007,0x0004003b, + 0x00000007,0x00000152,0x00000007,0x0004003b,0x00000007,0x00000153,0x00000007,0x0004003b, + 0x00000007,0x00000155,0x00000007,0x0004003b,0x00000007,0x00000156,0x00000007,0x0004003b, + 0x00000007,0x00000157,0x00000007,0x0004003d,0x00000006,0x00000141,0x0000002b,0x0003003e, + 0x00000140,0x00000141,0x0003003e,0x00000142,0x0000013e,0x0003003e,0x00000143,0x0000013f, + 0x00070039,0x00000006,0x00000144,0x0000000c,0x00000140,0x00000142,0x00000143,0x0003003e, + 0x00000146,0x00000144,0x0004003d,0x00000006,0x00000148,0x0000002b,0x0003003e,0x00000147, + 0x00000148,0x0003003e,0x00000149,0x00000145,0x00070039,0x00000006,0x0000014a,0x00000011, + 0x00000146,0x00000147,0x00000149,0x0004003d,0x00000006,0x0000014c,0x0000002b,0x0003003e, + 0x0000014b,0x0000014c,0x0003003e,0x0000014d,0x0000013f,0x0003003e,0x0000014e,0x0000013f, + 0x00070039,0x00000006,0x0000014f,0x0000000c,0x0000014b,0x0000014d,0x0000014e,0x0004003d, + 0x00000006,0x00000151,0x0000002b,0x0003003e,0x00000150,0x00000151,0x0003003e,0x00000152, + 0x00000145,0x0003003e,0x00000153,0x0000013e,0x00070039,0x00000006,0x00000154,0x0000000c, + 0x00000150,0x00000152,0x00000153,0x0003003e,0x00000155,0x0000014f,0x0003003e,0x00000156, + 0x00000154,0x0003003e,0x00000157,0x0000013e,0x00070039,0x00000006,0x00000158,0x00000011, + 0x00000155,0x00000156,0x00000157,0x00050050,0x00000029,0x00000159,0x0000014a,0x00000158, + 0x000200fe,0x00000159,0x00010038,0x00050036,0x0000002e,0x00000030,0x00000000,0x0000002f, + 0x000200f8,0x00000031,0x00050041,0x0000015f,0x00000160,0x0000015e,0x00000124,0x0004003d, + 0x0000002e,0x00000161,0x00000160,0x000200fe,0x00000161,0x00010038,0x00050036,0x0000001a, + 0x00000033,0x00000000,0x00000032,0x000200f8,0x00000034,0x00050041,0x00000165,0x00000166, + 0x0000015e,0x00000164,0x0004003d,0x0000001a,0x00000167,0x00000166,0x000200fe,0x00000167, + 0x00010038,0x00050036,0x00000006,0x00000036,0x00000000,0x00000035,0x000200f8,0x00000037, + 0x00050041,0x0000016d,0x0000016e,0x0000016c,0x00000124,0x0004003d,0x00000006,0x0000016f, + 0x0000016e,0x000200fe,0x0000016f,0x00010038,0x00050036,0x00000006,0x00000038,0x00000000, + 0x00000035,0x000200f8,0x00000039,0x00050041,0x0000016d,0x00000173,0x0000016c,0x00000172, + 0x0004003d,0x00000006,0x00000174,0x00000173,0x000200fe,0x00000174,0x00010038,0x00050036, + 0x00000029,0x0000003b,0x00000000,0x0000003a,0x000200f8,0x0000003c,0x00050041,0x00000178, + 0x00000179,0x0000016c,0x00000177,0x0004003d,0x00000029,0x0000017a,0x00000179,0x000200fe, + 0x0000017a,0x00010038,0x00050036,0x0000001a,0x00000040,0x00000000,0x0000003e,0x00030037, + 0x0000003d,0x0000003f,0x000200f8,0x00000041,0x0004003d,0x0000017d,0x00000180,0x0000017f, + 0x0004003d,0x0000002e,0x00000181,0x0000003f,0x0007005f,0x0000004a,0x00000182,0x00000180, + 0x00000181,0x00000002,0x00000124,0x00050051,0x0000001a,0x00000184,0x00000182,0x00000000, + 0x000200fe,0x00000184,0x00010038,0x00050036,0x00000002,0x00000045,0x00000000,0x00000042, + 0x00030037,0x0000003d,0x00000043,0x00030037,0x0000001b,0x00000044,0x000200f8,0x00000046, + 0x0004003d,0x00000187,0x0000018a,0x00000189,0x0004003d,0x0000002e,0x0000018b,0x00000043, + 0x0004003d,0x0000001a,0x0000018c,0x00000044,0x00070050,0x0000004a,0x0000018e,0x0000018c, + 0x0000018d,0x0000018d,0x0000018d,0x00040063,0x0000018a,0x0000018b,0x0000018e,0x000100fd, + 0x00010038,0x00050036,0x0000001a,0x00000048,0x00000000,0x0000003e,0x00030037,0x0000003d, + 0x00000047,0x000200f8,0x00000049,0x0004003d,0x0000017d,0x00000190,0x0000018f,0x0004003d, + 0x0000002e,0x00000191,0x00000047,0x0007005f,0x0000004a,0x00000192,0x00000190,0x00000191, + 0x00000002,0x00000124,0x00050051,0x0000001a,0x00000193,0x00000192,0x00000000,0x000200fe, + 0x00000193,0x00010038,0x00050036,0x0000004a,0x0000004c,0x00000000,0x0000004b,0x000200f8, + 0x0000004d,0x0004003d,0x00000196,0x00000199,0x00000198,0x00050062,0x0000004a,0x0000019b, + 0x00000199,0x0000019a,0x000200fe,0x0000019b,0x00010038,0x00050036,0x00000002,0x00000051, + 0x00000000,0x0000004f,0x00030037,0x0000004e,0x00000050,0x000200f8,0x00000052,0x0004003d, + 0x00000196,0x0000019e,0x00000198,0x0004003d,0x0000004a,0x0000019f,0x00000050,0x00040063, + 0x0000019e,0x0000019a,0x0000019f,0x000100fd,0x00010038,0x00050036,0x00000053,0x00000057, + 0x00000000,0x00000054,0x00030037,0x0000003d,0x00000055,0x00030037,0x00000007,0x00000056, + 0x000200f8,0x00000058,0x0004003d,0x00000006,0x000001a0,0x00000056,0x000500aa,0x0000009d, + 0x000001a1,0x000001a0,0x00000183,0x000300f7,0x000001a3,0x00000000,0x000400fa,0x000001a1, + 0x000001a2,0x000001a3,0x000200f8,0x000001a2,0x0004003d,0x000001a4,0x000001a7,0x000001a6, + 0x0004003d,0x0000002e,0x000001a8,0x00000055,0x00050062,0x0000004a,0x000001a9,0x000001a7, + 0x000001a8,0x0007004f,0x00000053,0x000001aa,0x000001a9,0x000001a9,0x00000000,0x00000001, + 0x000200fe,0x000001aa,0x000200f8,0x000001a3,0x0004003d,0x00000006,0x000001ac,0x00000056, + 0x000500aa,0x0000009d,0x000001ad,0x000001ac,0x00000145,0x000300f7,0x000001af,0x00000000, + 0x000400fa,0x000001ad,0x000001ae,0x000001af,0x000200f8,0x000001ae,0x0004003d,0x000001a4, + 0x000001b1,0x000001b0,0x0004003d,0x0000002e,0x000001b2,0x00000055,0x00050062,0x0000004a, + 0x000001b3,0x000001b1,0x000001b2,0x0007004f,0x00000053,0x000001b4,0x000001b3,0x000001b3, + 0x00000000,0x00000001,0x000200fe,0x000001b4,0x000200f8,0x000001af,0x0004003d,0x00000006, + 0x000001b6,0x00000056,0x000500aa,0x0000009d,0x000001b7,0x000001b6,0x0000013e,0x000300f7, + 0x000001b9,0x00000000,0x000400fa,0x000001b7,0x000001b8,0x000001b9,0x000200f8,0x000001b8, + 0x0004003d,0x000001a4,0x000001bb,0x000001ba,0x0004003d,0x0000002e,0x000001bc,0x00000055, + 0x00050062,0x0000004a,0x000001bd,0x000001bb,0x000001bc,0x0007004f,0x00000053,0x000001be, + 0x000001bd,0x000001bd,0x00000000,0x00000001,0x000200fe,0x000001be,0x000200f8,0x000001b9, + 0x0004003d,0x00000006,0x000001c0,0x00000056,0x000500aa,0x0000009d,0x000001c1,0x000001c0, + 0x0000013f,0x000300f7,0x000001c3,0x00000000,0x000400fa,0x000001c1,0x000001c2,0x000001c3, + 0x000200f8,0x000001c2,0x0004003d,0x000001a4,0x000001c5,0x000001c4,0x0004003d,0x0000002e, + 0x000001c6,0x00000055,0x00050062,0x0000004a,0x000001c7,0x000001c5,0x000001c6,0x0007004f, + 0x00000053,0x000001c8,0x000001c7,0x000001c7,0x00000000,0x00000001,0x000200fe,0x000001c8, + 0x000200f8,0x000001c3,0x0004003d,0x00000006,0x000001ca,0x00000056,0x000500aa,0x0000009d, + 0x000001cc,0x000001ca,0x000001cb,0x000300f7,0x000001ce,0x00000000,0x000400fa,0x000001cc, + 0x000001cd,0x000001ce,0x000200f8,0x000001cd,0x0004003d,0x000001a4,0x000001d0,0x000001cf, + 0x0004003d,0x0000002e,0x000001d1,0x00000055,0x00050062,0x0000004a,0x000001d2,0x000001d0, + 0x000001d1,0x0007004f,0x00000053,0x000001d3,0x000001d2,0x000001d2,0x00000000,0x00000001, + 0x000200fe,0x000001d3,0x000200f8,0x000001ce,0x0004003d,0x00000006,0x000001d5,0x00000056, + 0x000500aa,0x0000009d,0x000001d7,0x000001d5,0x000001d6,0x000300f7,0x000001d9,0x00000000, + 0x000400fa,0x000001d7,0x000001d8,0x000001d9,0x000200f8,0x000001d8,0x0004003d,0x000001a4, + 0x000001db,0x000001da,0x0004003d,0x0000002e,0x000001dc,0x00000055,0x00050062,0x0000004a, + 0x000001dd,0x000001db,0x000001dc,0x0007004f,0x00000053,0x000001de,0x000001dd,0x000001dd, + 0x00000000,0x00000001,0x000200fe,0x000001de,0x000200f8,0x000001d9,0x000200fe,0x000001e0, + 0x00010038,0x00050036,0x00000002,0x0000005e,0x00000000,0x0000005a,0x00030037,0x0000003d, + 0x0000005b,0x00030037,0x00000059,0x0000005c,0x00030037,0x00000007,0x0000005d,0x000200f8, + 0x0000005f,0x0004003d,0x00000006,0x000001e3,0x0000005d,0x000500aa,0x0000009d,0x000001e4, + 0x000001e3,0x00000183,0x000300f7,0x000001e6,0x00000000,0x000400fa,0x000001e4,0x000001e5, + 0x000001e6,0x000200f8,0x000001e5,0x0004003d,0x000001a4,0x000001e7,0x000001a6,0x0004003d, + 0x0000002e,0x000001e8,0x0000005b,0x0004003d,0x00000053,0x000001e9,0x0000005c,0x00050051, + 0x0000001a,0x000001ea,0x000001e9,0x00000000,0x00050051,0x0000001a,0x000001eb,0x000001e9, + 0x00000001,0x00070050,0x0000004a,0x000001ec,0x000001ea,0x000001eb,0x0000018d,0x0000018d, + 0x00040063,0x000001e7,0x000001e8,0x000001ec,0x000200f9,0x000001e6,0x000200f8,0x000001e6, + 0x0004003d,0x00000006,0x000001ed,0x0000005d,0x000500aa,0x0000009d,0x000001ee,0x000001ed, + 0x00000145,0x000300f7,0x000001f0,0x00000000,0x000400fa,0x000001ee,0x000001ef,0x000001f0, + 0x000200f8,0x000001ef,0x0004003d,0x000001a4,0x000001f1,0x000001b0,0x0004003d,0x0000002e, + 0x000001f2,0x0000005b,0x0004003d,0x00000053,0x000001f3,0x0000005c,0x00050051,0x0000001a, + 0x000001f4,0x000001f3,0x00000000,0x00050051,0x0000001a,0x000001f5,0x000001f3,0x00000001, + 0x00070050,0x0000004a,0x000001f6,0x000001f4,0x000001f5,0x0000018d,0x0000018d,0x00040063, + 0x000001f1,0x000001f2,0x000001f6,0x000200f9,0x000001f0,0x000200f8,0x000001f0,0x0004003d, + 0x00000006,0x000001f7,0x0000005d,0x000500aa,0x0000009d,0x000001f8,0x000001f7,0x0000013e, + 0x000300f7,0x000001fa,0x00000000,0x000400fa,0x000001f8,0x000001f9,0x000001fa,0x000200f8, + 0x000001f9,0x0004003d,0x000001a4,0x000001fb,0x000001ba,0x0004003d,0x0000002e,0x000001fc, + 0x0000005b,0x0004003d,0x00000053,0x000001fd,0x0000005c,0x00050051,0x0000001a,0x000001fe, + 0x000001fd,0x00000000,0x00050051,0x0000001a,0x000001ff,0x000001fd,0x00000001,0x00070050, + 0x0000004a,0x00000200,0x000001fe,0x000001ff,0x0000018d,0x0000018d,0x00040063,0x000001fb, + 0x000001fc,0x00000200,0x000200f9,0x000001fa,0x000200f8,0x000001fa,0x0004003d,0x00000006, + 0x00000201,0x0000005d,0x000500aa,0x0000009d,0x00000202,0x00000201,0x0000013f,0x000300f7, + 0x00000204,0x00000000,0x000400fa,0x00000202,0x00000203,0x00000204,0x000200f8,0x00000203, + 0x0004003d,0x000001a4,0x00000205,0x000001c4,0x0004003d,0x0000002e,0x00000206,0x0000005b, + 0x0004003d,0x00000053,0x00000207,0x0000005c,0x00050051,0x0000001a,0x00000208,0x00000207, + 0x00000000,0x00050051,0x0000001a,0x00000209,0x00000207,0x00000001,0x00070050,0x0000004a, + 0x0000020a,0x00000208,0x00000209,0x0000018d,0x0000018d,0x00040063,0x00000205,0x00000206, + 0x0000020a,0x000200f9,0x00000204,0x000200f8,0x00000204,0x0004003d,0x00000006,0x0000020b, + 0x0000005d,0x000500aa,0x0000009d,0x0000020c,0x0000020b,0x000001cb,0x000300f7,0x0000020e, + 0x00000000,0x000400fa,0x0000020c,0x0000020d,0x0000020e,0x000200f8,0x0000020d,0x0004003d, + 0x000001a4,0x0000020f,0x000001cf,0x0004003d,0x0000002e,0x00000210,0x0000005b,0x0004003d, + 0x00000053,0x00000211,0x0000005c,0x00050051,0x0000001a,0x00000212,0x00000211,0x00000000, + 0x00050051,0x0000001a,0x00000213,0x00000211,0x00000001,0x00070050,0x0000004a,0x00000214, + 0x00000212,0x00000213,0x0000018d,0x0000018d,0x00040063,0x0000020f,0x00000210,0x00000214, + 0x000200f9,0x0000020e,0x000200f8,0x0000020e,0x0004003d,0x00000006,0x00000215,0x0000005d, + 0x000500aa,0x0000009d,0x00000216,0x00000215,0x000001d6,0x000300f7,0x00000218,0x00000000, + 0x000400fa,0x00000216,0x00000217,0x00000218,0x000200f8,0x00000217,0x0004003d,0x000001a4, + 0x00000219,0x000001da,0x0004003d,0x0000002e,0x0000021a,0x0000005b,0x0004003d,0x00000053, + 0x0000021b,0x0000005c,0x00050051,0x0000001a,0x0000021c,0x0000021b,0x00000000,0x00050051, + 0x0000001a,0x0000021d,0x0000021b,0x00000001,0x00070050,0x0000004a,0x0000021e,0x0000021c, + 0x0000021d,0x0000018d,0x0000018d,0x00040063,0x00000219,0x0000021a,0x0000021e,0x000200f9, + 0x00000218,0x000200f8,0x00000218,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000062, + 0x00000000,0x00000060,0x00030037,0x00000007,0x00000061,0x000200f8,0x00000063,0x0006003c, + 0x00000222,0x00000223,0x00000221,0x0000019a,0x00000183,0x000700ea,0x00000006,0x00000224, + 0x00000223,0x00000145,0x00000183,0x00000145,0x0003003e,0x00000061,0x00000224,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000064,0x00000000,0x00000003,0x000200f8,0x00000065, + 0x0004003d,0x0000021f,0x00000225,0x00000221,0x00040063,0x00000225,0x0000019a,0x00000227, + 0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000006a,0x00000000,0x00000066,0x00030037, + 0x0000003d,0x00000067,0x00030037,0x0000003d,0x00000068,0x00030037,0x0000003d,0x00000069, + 0x000200f8,0x0000006b,0x0004003b,0x0000003d,0x00000228,0x00000007,0x0004003b,0x00000014, + 0x0000022f,0x00000007,0x0004003b,0x00000014,0x00000232,0x00000007,0x0004003b,0x00000014, + 0x00000234,0x00000007,0x0004003b,0x00000014,0x00000235,0x00000007,0x0004003b,0x00000014, + 0x0000023b,0x00000007,0x0004003b,0x00000014,0x0000023e,0x00000007,0x0004003b,0x00000014, + 0x00000240,0x00000007,0x0004003b,0x00000014,0x00000241,0x00000007,0x0004003d,0x0000002e, + 0x00000229,0x00000067,0x0004003d,0x0000002e,0x0000022a,0x00000068,0x00050080,0x0000002e, + 0x0000022b,0x00000229,0x0000022a,0x0003003e,0x00000228,0x0000022b,0x00050041,0x00000014, + 0x0000022c,0x00000069,0x00000183,0x0004003d,0x00000013,0x0000022d,0x0000022c,0x00050082, + 0x00000013,0x0000022e,0x0000022d,0x00000172,0x00050041,0x00000014,0x00000230,0x00000228, + 0x00000183,0x0004003d,0x00000013,0x00000231,0x00000230,0x0003003e,0x0000022f,0x00000231, + 0x0003003e,0x00000232,0x0000022e,0x00060039,0x00000013,0x00000233,0x00000018,0x0000022f, + 0x00000232,0x0003003e,0x00000234,0x00000124,0x0003003e,0x00000235,0x00000233,0x00060039, + 0x00000013,0x00000236,0x00000023,0x00000234,0x00000235,0x00050041,0x00000014,0x00000237, + 0x00000228,0x00000183,0x0003003e,0x00000237,0x00000236,0x00050041,0x00000014,0x00000238, + 0x00000069,0x00000145,0x0004003d,0x00000013,0x00000239,0x00000238,0x00050082,0x00000013, + 0x0000023a,0x00000239,0x00000172,0x00050041,0x00000014,0x0000023c,0x00000228,0x00000145, + 0x0004003d,0x00000013,0x0000023d,0x0000023c,0x0003003e,0x0000023b,0x0000023d,0x0003003e, + 0x0000023e,0x0000023a,0x00060039,0x00000013,0x0000023f,0x00000018,0x0000023b,0x0000023e, + 0x0003003e,0x00000240,0x00000124,0x0003003e,0x00000241,0x0000023f,0x00060039,0x00000013, + 0x00000242,0x00000023,0x00000240,0x00000241,0x00050041,0x00000014,0x00000243,0x00000228, + 0x00000145,0x0003003e,0x00000243,0x00000242,0x0004003d,0x0000002e,0x00000244,0x00000228, + 0x000200fe,0x00000244,0x00010038,0x00050036,0x0000001a,0x0000006e,0x00000000,0x0000006c, + 0x00030037,0x0000001b,0x0000006d,0x000200f8,0x0000006f,0x0004003b,0x0000001b,0x00000249, + 0x00000007,0x0004003b,0x0000001b,0x00000250,0x00000007,0x0004003b,0x0000001b,0x00000253, + 0x00000007,0x0004003b,0x0000001b,0x00000254,0x00000007,0x0004003d,0x0000001a,0x00000247, + 0x0000006d,0x0006000c,0x0000001a,0x00000248,0x00000001,0x0000001b,0x00000247,0x0003003e, + 0x0000006d,0x00000248,0x0004003d,0x0000001a,0x0000024a,0x0000006d,0x00050085,0x0000001a, + 0x0000024c,0x0000024a,0x0000024b,0x00050088,0x0000001a,0x0000024e,0x0000024c,0x0000024d, + 0x0006000c,0x0000001a,0x0000024f,0x00000001,0x0000001e,0x0000024e,0x0003003e,0x00000249, + 0x0000024f,0x0003003e,0x00000253,0x00000252,0x0004003d,0x0000001a,0x00000255,0x00000249, + 0x0003003e,0x00000254,0x00000255,0x00060039,0x0000001a,0x00000256,0x00000027,0x00000253, + 0x00000254,0x00050085,0x0000001a,0x00000257,0x00000251,0x00000256,0x0003003e,0x00000250, + 0x00000257,0x0004003d,0x0000001a,0x00000259,0x00000250,0x00050088,0x0000001a,0x0000025a, + 0x00000258,0x00000259,0x000200fe,0x0000025a,0x00010038,0x00050036,0x00000002,0x00000071, + 0x00000000,0x00000060,0x00030037,0x00000007,0x00000070,0x000200f8,0x00000072,0x0004003b, + 0x00000007,0x0000025f,0x00000007,0x0004003d,0x00000006,0x00000260,0x0000025e,0x0003003e, + 0x0000025f,0x00000260,0x00050039,0x00000002,0x00000261,0x00000062,0x0000025f,0x0004003d, + 0x00000006,0x00000262,0x0000025f,0x0003003e,0x0000025e,0x00000262,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x00000073,0x00000000,0x00000035,0x000200f8,0x00000074,0x0004003d, + 0x00000006,0x00000263,0x0000025e,0x000200fe,0x00000263,0x00010038,0x00050036,0x00000002, + 0x00000076,0x00000000,0x00000060,0x00030037,0x00000007,0x00000075,0x000200f8,0x00000077, + 0x00040039,0x00000002,0x00000266,0x00000064,0x000100fd,0x00010038,0x00050036,0x0000004a, + 0x0000007b,0x00000000,0x00000078,0x00030037,0x00000059,0x00000079,0x00030037,0x00000007, + 0x0000007a,0x000200f8,0x0000007c,0x0004003b,0x0000003d,0x00000267,0x00000007,0x0004003b, + 0x0000003d,0x0000026b,0x00000007,0x0004003b,0x0000003d,0x0000026c,0x00000007,0x0004003b, + 0x0000003d,0x0000026d,0x00000007,0x0004003b,0x0000001b,0x0000026f,0x00000007,0x0004003b, + 0x0000003d,0x00000270,0x00000007,0x0004003b,0x0000001b,0x00000273,0x00000007,0x0004003b, + 0x0000001b,0x00000277,0x00000007,0x0004003b,0x0000001b,0x00000278,0x00000007,0x0004003b, + 0x0000001b,0x0000027a,0x00000007,0x0004003b,0x0000003d,0x0000027b,0x00000007,0x0004003b, + 0x0000004e,0x0000027e,0x00000007,0x0004003d,0x00000053,0x00000268,0x00000079,0x0004006e, + 0x0000002e,0x00000269,0x00000268,0x00040039,0x0000002e,0x0000026a,0x00000030,0x0003003e, + 0x0000026b,0x00000269,0x0003003e,0x0000026c,0x0000019a,0x0003003e,0x0000026d,0x0000026a, + 0x00070039,0x0000002e,0x0000026e,0x0000006a,0x0000026b,0x0000026c,0x0000026d,0x0003003e, + 0x00000267,0x0000026e,0x0004003d,0x0000002e,0x00000271,0x00000267,0x0003003e,0x00000270, + 0x00000271,0x00050039,0x0000001a,0x00000272,0x00000048,0x00000270,0x0003003e,0x0000026f, + 0x00000272,0x0004003d,0x0000001a,0x00000275,0x0000026f,0x0006000c,0x0000001a,0x00000276, + 0x00000001,0x0000001c,0x00000275,0x0003003e,0x00000277,0x00000274,0x0003003e,0x00000278, + 0x00000276,0x00060039,0x0000001a,0x00000279,0x0000001f,0x00000277,0x00000278,0x0003003e, + 0x00000273,0x00000279,0x0004003d,0x0000002e,0x0000027c,0x00000267,0x0003003e,0x0000027b, + 0x0000027c,0x00050039,0x0000001a,0x0000027d,0x00000040,0x0000027b,0x0003003e,0x0000027a, + 0x0000027d,0x0003003e,0x0000027e,0x0000027f,0x0004003d,0x0000001a,0x00000280,0x00000273, + 0x00050041,0x0000001b,0x00000281,0x0000027e,0x00000183,0x0003003e,0x00000281,0x00000280, + 0x0004003d,0x0000001a,0x00000282,0x0000026f,0x00050041,0x0000001b,0x00000283,0x0000027e, + 0x00000145,0x0003003e,0x00000283,0x00000282,0x0004003d,0x0000001a,0x00000284,0x0000027a, + 0x00050041,0x0000001b,0x00000285,0x0000027e,0x0000013e,0x0003003e,0x00000285,0x00000284, + 0x0004003d,0x0000004a,0x00000286,0x0000027e,0x000200fe,0x00000286,0x00010038,0x00050036, + 0x0000004a,0x00000080,0x00000000,0x0000007d,0x00030037,0x0000003d,0x0000007e,0x00030037, + 0x00000007,0x0000007f,0x000200f8,0x00000081,0x0004003b,0x0000003d,0x00000289,0x00000007, + 0x0004003b,0x00000007,0x0000028b,0x00000007,0x0004003d,0x0000002e,0x0000028a,0x0000007e, + 0x0003003e,0x00000289,0x0000028a,0x0003003e,0x0000028b,0x000001d6,0x00060039,0x00000053, + 0x0000028c,0x00000057,0x00000289,0x0000028b,0x00050051,0x0000001a,0x0000028d,0x0000028c, + 0x00000000,0x00050051,0x0000001a,0x0000028e,0x0000028c,0x00000001,0x00070050,0x0000004a, + 0x0000028f,0x0000028d,0x0000028e,0x0000018d,0x0000018d,0x000200fe,0x0000028f,0x00010038, + 0x00050036,0x0000004a,0x00000087,0x00000000,0x00000082,0x00030037,0x0000004e,0x00000083, + 0x00030037,0x0000004e,0x00000084,0x00030037,0x0000004e,0x00000085,0x00030037,0x0000004e, + 0x00000086,0x000200f8,0x00000088,0x0004003d,0x0000004a,0x00000292,0x00000083,0x0004003d, + 0x0000004a,0x00000293,0x00000084,0x00050081,0x0000004a,0x00000294,0x00000292,0x00000293, + 0x0004003d,0x0000004a,0x00000295,0x00000085,0x00050081,0x0000004a,0x00000296,0x00000294, + 0x00000295,0x0004003d,0x0000004a,0x00000297,0x00000086,0x00050081,0x0000004a,0x00000298, + 0x00000296,0x00000297,0x0005008e,0x0000004a,0x0000029a,0x00000298,0x00000299,0x000200fe, + 0x0000029a,0x00010038,0x00050036,0x00000002,0x0000008e,0x00000000,0x00000089,0x00030037, + 0x0000003d,0x0000008a,0x00030037,0x0000004e,0x0000008b,0x00030037,0x00000007,0x0000008c, + 0x00030037,0x00000007,0x0000008d,0x000200f8,0x0000008f,0x0004003b,0x0000003d,0x000002a1, + 0x00000007,0x0004003b,0x00000059,0x000002a3,0x00000007,0x0004003b,0x00000007,0x000002a6, + 0x00000007,0x0004003b,0x0000003d,0x000002ae,0x00000007,0x0004003b,0x0000001b,0x000002b0, + 0x00000007,0x0004003b,0x0000004e,0x000002c0,0x00000007,0x0004003b,0x0000001b,0x000002c2, + 0x00000007,0x0004003b,0x0000001b,0x000002c5,0x00000007,0x0004003b,0x0000001b,0x000002c8, + 0x00000007,0x0004003b,0x0000001b,0x000002da,0x00000007,0x0004003b,0x0000001b,0x000002db, + 0x00000007,0x0004003b,0x0000001b,0x000002de,0x00000007,0x0004003b,0x0000004e,0x000002e6, + 0x00000007,0x0004003d,0x00000006,0x0000029d,0x0000008c,0x000500aa,0x0000009d,0x0000029e, + 0x0000029d,0x000001d6,0x000300f7,0x000002a0,0x00000000,0x000400fa,0x0000029e,0x0000029f, + 0x000002a9,0x000200f8,0x0000029f,0x0004003d,0x0000002e,0x000002a2,0x0000008a,0x0003003e, + 0x000002a1,0x000002a2,0x0004003d,0x0000004a,0x000002a4,0x0000008b,0x0007004f,0x00000053, + 0x000002a5,0x000002a4,0x000002a4,0x00000000,0x00000001,0x0003003e,0x000002a3,0x000002a5, + 0x0004003d,0x00000006,0x000002a7,0x0000008c,0x0003003e,0x000002a6,0x000002a7,0x00070039, + 0x00000002,0x000002a8,0x0000005e,0x000002a1,0x000002a3,0x000002a6,0x000200f9,0x000002a0, + 0x000200f8,0x000002a9,0x0004003d,0x00000006,0x000002aa,0x0000008c,0x000500aa,0x0000009d, + 0x000002ab,0x000002aa,0x00000183,0x000300f7,0x000002ad,0x00000000,0x000400fa,0x000002ab, + 0x000002ac,0x000002ad,0x000200f8,0x000002ac,0x0004003d,0x0000002e,0x000002af,0x0000008a, + 0x0003003e,0x000002ae,0x000002af,0x00050041,0x0000001b,0x000002b1,0x0000008b,0x0000013e, + 0x0004003d,0x0000001a,0x000002b2,0x000002b1,0x0003003e,0x000002b0,0x000002b2,0x00060039, + 0x00000002,0x000002b3,0x00000045,0x000002ae,0x000002b0,0x000200f9,0x000002ad,0x000200f8, + 0x000002ad,0x000200f9,0x000002a0,0x000200f8,0x000002a0,0x0004003d,0x00000006,0x000002b4, + 0x0000008c,0x00040039,0x00000006,0x000002b5,0x00000036,0x00050082,0x00000006,0x000002b6, + 0x000002b5,0x00000145,0x000500aa,0x0000009d,0x000002b7,0x000002b4,0x000002b6,0x000300f7, + 0x000002b9,0x00000000,0x000400fa,0x000002b7,0x000002b8,0x000002b9,0x000200f8,0x000002b8, + 0x0004003d,0x0000002e,0x000002ba,0x0000008a,0x000500aa,0x000002bb,0x000002bc,0x000002ba, + 0x0000019a,0x0004009b,0x0000009d,0x000002bd,0x000002bc,0x000300f7,0x000002bf,0x00000000, + 0x000400fa,0x000002bd,0x000002be,0x000002bf,0x000200f8,0x000002be,0x00040039,0x0000004a, + 0x000002c1,0x0000004c,0x0003003e,0x000002c0,0x000002c1,0x00050041,0x0000001b,0x000002c3, + 0x0000008b,0x00000145,0x0004003d,0x0000001a,0x000002c4,0x000002c3,0x0003003e,0x000002c2, + 0x000002c4,0x00050041,0x0000001b,0x000002c6,0x000002c0,0x00000145,0x0004003d,0x0000001a, + 0x000002c7,0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00050041,0x0000001b,0x000002c9, + 0x0000008b,0x00000183,0x0004003d,0x0000001a,0x000002ca,0x000002c9,0x0003003e,0x000002c8, + 0x000002ca,0x0004003d,0x0000001a,0x000002cb,0x000002c5,0x000500b8,0x0000009d,0x000002cd, + 0x000002cb,0x000002cc,0x000300f7,0x000002cf,0x00000000,0x000400fa,0x000002cd,0x000002ce, + 0x000002cf,0x000200f8,0x000002ce,0x0004003d,0x0000001a,0x000002d0,0x000002c5,0x0004003d, + 0x0000001a,0x000002d1,0x000002c8,0x0004003d,0x0000001a,0x000002d2,0x000002c5,0x00050083, + 0x0000001a,0x000002d3,0x000002d1,0x000002d2,0x00040039,0x0000001a,0x000002d4,0x00000033, + 0x0004007f,0x0000001a,0x000002d5,0x000002d4,0x0006000c,0x0000001a,0x000002d6,0x00000001, + 0x0000001b,0x000002d5,0x00050083,0x0000001a,0x000002d7,0x00000258,0x000002d6,0x00050085, + 0x0000001a,0x000002d8,0x000002d3,0x000002d7,0x00050081,0x0000001a,0x000002d9,0x000002d0, + 0x000002d8,0x0003003e,0x000002c8,0x000002d9,0x0003003e,0x000002da,0x0000018d,0x0004003d, + 0x0000001a,0x000002dc,0x000002c8,0x0003003e,0x000002db,0x000002dc,0x00060039,0x0000001a, + 0x000002dd,0x0000001f,0x000002da,0x000002db,0x0003003e,0x000002c8,0x000002dd,0x000200f9, + 0x000002cf,0x000200f8,0x000002cf,0x0004003d,0x0000001a,0x000002df,0x000002c8,0x0003003e, + 0x000002de,0x000002df,0x00050039,0x0000001a,0x000002e0,0x0000006e,0x000002de,0x00050041, + 0x0000001b,0x000002e1,0x000002c0,0x00000183,0x0003003e,0x000002e1,0x000002e0,0x0004003d, + 0x0000001a,0x000002e2,0x000002c8,0x00050041,0x0000001b,0x000002e3,0x000002c0,0x00000145, + 0x0003003e,0x000002e3,0x000002e2,0x0004003d,0x0000001a,0x000002e4,0x000002c2,0x00050041, + 0x0000001b,0x000002e5,0x000002c0,0x0000013e,0x0003003e,0x000002e5,0x000002e4,0x0004003d, + 0x0000004a,0x000002e7,0x000002c0,0x0003003e,0x000002e6,0x000002e7,0x00050039,0x00000002, + 0x000002e8,0x00000051,0x000002e6,0x000200f9,0x000002bf,0x000200f8,0x000002bf,0x000200f9, + 0x000002b9,0x000200f8,0x000002b9,0x000100fd,0x00010038,0x00050036,0x0000004a,0x00000093, + 0x00000000,0x00000090,0x00030037,0x00000007,0x00000091,0x00030037,0x00000007,0x00000092, + 0x000200f8,0x00000094,0x0004003d,0x00000006,0x000002ee,0x00000091,0x0004003d,0x00000006, + 0x000002ef,0x00000092,0x00060041,0x000002f0,0x000002f1,0x000002ed,0x000002ee,0x000002ef, + 0x0004003d,0x0000001a,0x000002f2,0x000002f1,0x0004003d,0x00000006,0x000002f4,0x00000091, + 0x0004003d,0x00000006,0x000002f5,0x00000092,0x00060041,0x000002f0,0x000002f6,0x000002f3, + 0x000002f4,0x000002f5,0x0004003d,0x0000001a,0x000002f7,0x000002f6,0x0004003d,0x00000006, + 0x000002f9,0x00000091,0x0004003d,0x00000006,0x000002fa,0x00000092,0x00060041,0x000002f0, + 0x000002fb,0x000002f8,0x000002f9,0x000002fa,0x0004003d,0x0000001a,0x000002fc,0x000002fb, + 0x0004003d,0x00000006,0x000002fe,0x00000091,0x0004003d,0x00000006,0x000002ff,0x00000092, + 0x00060041,0x000002f0,0x00000300,0x000002fd,0x000002fe,0x000002ff,0x0004003d,0x0000001a, + 0x00000301,0x00000300,0x00070050,0x0000004a,0x00000302,0x000002f2,0x000002f7,0x000002fc, + 0x00000301,0x000200fe,0x00000302,0x00010038,0x00050036,0x00000002,0x00000099,0x00000000, + 0x00000095,0x00030037,0x00000007,0x00000096,0x00030037,0x00000007,0x00000097,0x00030037, + 0x0000004e,0x00000098,0x000200f8,0x0000009a,0x0004003d,0x00000006,0x00000305,0x00000096, + 0x0004003d,0x00000006,0x00000306,0x00000097,0x00050041,0x0000001b,0x00000307,0x00000098, + 0x00000183,0x0004003d,0x0000001a,0x00000308,0x00000307,0x00060041,0x000002f0,0x00000309, + 0x000002ed,0x00000305,0x00000306,0x0003003e,0x00000309,0x00000308,0x0004003d,0x00000006, + 0x0000030a,0x00000096,0x0004003d,0x00000006,0x0000030b,0x00000097,0x00050041,0x0000001b, + 0x0000030c,0x00000098,0x00000145,0x0004003d,0x0000001a,0x0000030d,0x0000030c,0x00060041, + 0x000002f0,0x0000030e,0x000002f3,0x0000030a,0x0000030b,0x0003003e,0x0000030e,0x0000030d, + 0x0004003d,0x00000006,0x0000030f,0x00000096,0x0004003d,0x00000006,0x00000310,0x00000097, + 0x00050041,0x0000001b,0x00000311,0x00000098,0x0000013e,0x0004003d,0x0000001a,0x00000312, + 0x00000311,0x00060041,0x000002f0,0x00000313,0x000002f8,0x0000030f,0x00000310,0x0003003e, + 0x00000313,0x00000312,0x0004003d,0x00000006,0x00000314,0x00000096,0x0004003d,0x00000006, + 0x00000315,0x00000097,0x00050041,0x0000001b,0x00000316,0x00000098,0x0000013f,0x0004003d, + 0x0000001a,0x00000317,0x00000316,0x00060041,0x000002f0,0x00000318,0x000002fd,0x00000314, + 0x00000315,0x0003003e,0x00000318,0x00000317,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x0000009b,0x00000000,0x00000003,0x000200f8,0x0000009c,0x000300e1,0x0000013e,0x00000319, + 0x000400e0,0x0000013e,0x0000013e,0x0000031a,0x000100fd,0x00010038,0x00050036,0x0000009d, + 0x000000a2,0x00000000,0x0000009e,0x00030037,0x00000007,0x0000009f,0x00030037,0x00000007, + 0x000000a0,0x00030037,0x00000007,0x000000a1,0x000200f8,0x000000a3,0x0004003b,0x00000007, + 0x0000031f,0x00000007,0x0004003d,0x00000006,0x0000031b,0x000000a0,0x000500aa,0x0000009d, + 0x0000031c,0x0000031b,0x00000183,0x000300f7,0x0000031e,0x00000000,0x000400fa,0x0000031c, + 0x0000031d,0x0000031e,0x000200f8,0x0000031d,0x0004003d,0x00000006,0x00000320,0x000000a1, + 0x0003003e,0x0000031f,0x00000320,0x00050039,0x00000002,0x00000321,0x00000071,0x0000031f, + 0x000200f9,0x0000031e,0x000200f8,0x0000031e,0x00040039,0x00000002,0x00000322,0x0000009b, + 0x00040039,0x00000006,0x00000323,0x00000073,0x0004003d,0x00000006,0x00000324,0x0000009f, + 0x00050082,0x00000006,0x00000325,0x00000324,0x00000145,0x000500ab,0x0000009d,0x00000326, + 0x00000323,0x00000325,0x000200fe,0x00000326,0x00010038,0x00050036,0x0000004a,0x000000a6, + 0x00000000,0x000000a4,0x00030037,0x0000004e,0x000000a5,0x000200f8,0x000000a7,0x0004003b, + 0x0000004e,0x00000329,0x00000007,0x0004003b,0x0000004e,0x0000032b,0x00000007,0x0004003b, + 0x0000004e,0x0000032e,0x00000007,0x0004003b,0x0000004e,0x00000331,0x00000007,0x0004003b, + 0x0000004e,0x00000334,0x00000007,0x0004003b,0x0000004e,0x00000336,0x00000007,0x0004003b, + 0x0000004e,0x00000338,0x00000007,0x0004003b,0x0000004e,0x0000033a,0x00000007,0x0004003d, + 0x0000004a,0x0000032a,0x000000a5,0x0003003e,0x00000329,0x0000032a,0x0004003d,0x0000004a, + 0x0000032c,0x000000a5,0x0006016e,0x0000004a,0x0000032d,0x0000013f,0x0000032c,0x00000183, + 0x0003003e,0x0000032b,0x0000032d,0x0004003d,0x0000004a,0x0000032f,0x000000a5,0x0006016e, + 0x0000004a,0x00000330,0x0000013f,0x0000032f,0x00000145,0x0003003e,0x0000032e,0x00000330, + 0x0004003d,0x0000004a,0x00000332,0x000000a5,0x0006016e,0x0000004a,0x00000333,0x0000013f, + 0x00000332,0x0000013e,0x0003003e,0x00000331,0x00000333,0x0004003d,0x0000004a,0x00000335, + 0x00000329,0x0003003e,0x00000334,0x00000335,0x0004003d,0x0000004a,0x00000337,0x0000032b, + 0x0003003e,0x00000336,0x00000337,0x0004003d,0x0000004a,0x00000339,0x0000032e,0x0003003e, + 0x00000338,0x00000339,0x0004003d,0x0000004a,0x0000033b,0x00000331,0x0003003e,0x0000033a, + 0x0000033b,0x00080039,0x0000004a,0x0000033c,0x00000087,0x00000334,0x00000336,0x00000338, + 0x0000033a,0x000200fe,0x0000033c,0x00010038,0x00050036,0x0000004a,0x000000af,0x00000000, + 0x000000a9,0x00030037,0x000000a8,0x000000aa,0x00030037,0x000000a8,0x000000ab,0x00030037, + 0x000000a8,0x000000ac,0x00030037,0x000000a8,0x000000ad,0x00030037,0x00000007,0x000000ae, + 0x000200f8,0x000000b0,0x0004003b,0x0000004e,0x00000341,0x00000007,0x0004003b,0x0000003d, + 0x00000344,0x00000007,0x0004003b,0x00000007,0x00000345,0x00000007,0x0004003b,0x0000004e, + 0x00000348,0x00000007,0x0004003b,0x0000003d,0x0000034b,0x00000007,0x0004003b,0x00000007, + 0x0000034c,0x00000007,0x0004003b,0x0000004e,0x0000034f,0x00000007,0x0004003b,0x0000003d, + 0x00000352,0x00000007,0x0004003b,0x00000007,0x00000353,0x00000007,0x0004003b,0x0000004e, + 0x00000356,0x00000007,0x0004003b,0x0000003d,0x00000359,0x00000007,0x0004003b,0x00000007, + 0x0000035a,0x00000007,0x0004003b,0x0000004e,0x0000035d,0x00000007,0x0004003b,0x0000004e, + 0x0000035f,0x00000007,0x0004003b,0x0000004e,0x00000361,0x00000007,0x0004003b,0x0000004e, + 0x00000363,0x00000007,0x0004003d,0x00000029,0x00000342,0x000000aa,0x0004007c,0x0000002e, + 0x00000343,0x00000342,0x0003003e,0x00000344,0x00000343,0x0004003d,0x00000006,0x00000346, + 0x000000ae,0x0003003e,0x00000345,0x00000346,0x00060039,0x0000004a,0x00000347,0x00000080, + 0x00000344,0x00000345,0x0003003e,0x00000341,0x00000347,0x0004003d,0x00000029,0x00000349, + 0x000000ab,0x0004007c,0x0000002e,0x0000034a,0x00000349,0x0003003e,0x0000034b,0x0000034a, + 0x0004003d,0x00000006,0x0000034d,0x000000ae,0x0003003e,0x0000034c,0x0000034d,0x00060039, + 0x0000004a,0x0000034e,0x00000080,0x0000034b,0x0000034c,0x0003003e,0x00000348,0x0000034e, + 0x0004003d,0x00000029,0x00000350,0x000000ac,0x0004007c,0x0000002e,0x00000351,0x00000350, + 0x0003003e,0x00000352,0x00000351,0x0004003d,0x00000006,0x00000354,0x000000ae,0x0003003e, + 0x00000353,0x00000354,0x00060039,0x0000004a,0x00000355,0x00000080,0x00000352,0x00000353, + 0x0003003e,0x0000034f,0x00000355,0x0004003d,0x00000029,0x00000357,0x000000ad,0x0004007c, + 0x0000002e,0x00000358,0x00000357,0x0003003e,0x00000359,0x00000358,0x0004003d,0x00000006, + 0x0000035b,0x000000ae,0x0003003e,0x0000035a,0x0000035b,0x00060039,0x0000004a,0x0000035c, + 0x00000080,0x00000359,0x0000035a,0x0003003e,0x00000356,0x0000035c,0x0004003d,0x0000004a, + 0x0000035e,0x00000341,0x0003003e,0x0000035d,0x0000035e,0x0004003d,0x0000004a,0x00000360, + 0x00000348,0x0003003e,0x0000035f,0x00000360,0x0004003d,0x0000004a,0x00000362,0x0000034f, + 0x0003003e,0x00000361,0x00000362,0x0004003d,0x0000004a,0x00000364,0x00000356,0x0003003e, + 0x00000363,0x00000364,0x00080039,0x0000004a,0x00000365,0x00000087,0x0000035d,0x0000035f, + 0x00000361,0x00000363,0x000200fe,0x00000365,0x00010038,0x00050036,0x0000004a,0x000000b4, + 0x00000000,0x000000b1,0x00030037,0x000000a8,0x000000b2,0x00030037,0x00000007,0x000000b3, + 0x000200f8,0x000000b5,0x0004003b,0x000000a8,0x00000374,0x00000007,0x0004003b,0x000000a8, + 0x00000375,0x00000007,0x0004003b,0x000000a8,0x00000376,0x00000007,0x0004003b,0x000000a8, + 0x00000377,0x00000007,0x0004003b,0x00000007,0x00000378,0x00000007,0x0004003d,0x00000029, + 0x00000368,0x000000b2,0x00050080,0x00000029,0x0000036a,0x00000368,0x00000369,0x0004003d, + 0x00000029,0x0000036b,0x000000b2,0x00050080,0x00000029,0x0000036d,0x0000036b,0x0000036c, + 0x0004003d,0x00000029,0x0000036e,0x000000b2,0x00050080,0x00000029,0x00000370,0x0000036e, + 0x0000036f,0x0004003d,0x00000029,0x00000371,0x000000b2,0x00050080,0x00000029,0x00000373, + 0x00000371,0x00000372,0x0003003e,0x00000374,0x0000036a,0x0003003e,0x00000375,0x0000036d, + 0x0003003e,0x00000376,0x00000370,0x0003003e,0x00000377,0x00000373,0x0004003d,0x00000006, + 0x00000379,0x000000b3,0x0003003e,0x00000378,0x00000379,0x00090039,0x0000004a,0x0000037a, + 0x000000af,0x00000374,0x00000375,0x00000376,0x00000377,0x00000378,0x000200fe,0x0000037a, + 0x00010038,0x00050036,0x0000004a,0x000000bb,0x00000000,0x000000a9,0x00030037,0x000000a8, + 0x000000b6,0x00030037,0x000000a8,0x000000b7,0x00030037,0x000000a8,0x000000b8,0x00030037, + 0x000000a8,0x000000b9,0x00030037,0x00000007,0x000000ba,0x000200f8,0x000000bc,0x0004003b, + 0x0000004e,0x0000037d,0x00000007,0x0004003b,0x00000059,0x00000381,0x00000007,0x0004003b, + 0x00000007,0x00000382,0x00000007,0x0004003b,0x0000004e,0x00000385,0x00000007,0x0004003b, + 0x00000059,0x00000389,0x00000007,0x0004003b,0x00000007,0x0000038a,0x00000007,0x0004003b, + 0x0000004e,0x0000038d,0x00000007,0x0004003b,0x00000059,0x00000391,0x00000007,0x0004003b, + 0x00000007,0x00000392,0x00000007,0x0004003b,0x0000004e,0x00000395,0x00000007,0x0004003b, + 0x00000059,0x00000399,0x00000007,0x0004003b,0x00000007,0x0000039a,0x00000007,0x0004003b, + 0x0000004e,0x0000039d,0x00000007,0x0004003b,0x0000004e,0x0000039f,0x00000007,0x0004003b, + 0x0000004e,0x000003a1,0x00000007,0x0004003b,0x0000004e,0x000003a3,0x00000007,0x0004003d, + 0x00000029,0x0000037e,0x000000b6,0x0004007c,0x0000002e,0x0000037f,0x0000037e,0x0004006f, + 0x00000053,0x00000380,0x0000037f,0x0003003e,0x00000381,0x00000380,0x0004003d,0x00000006, + 0x00000383,0x000000ba,0x0003003e,0x00000382,0x00000383,0x00060039,0x0000004a,0x00000384, + 0x0000007b,0x00000381,0x00000382,0x0003003e,0x0000037d,0x00000384,0x0004003d,0x00000029, + 0x00000386,0x000000b7,0x0004007c,0x0000002e,0x00000387,0x00000386,0x0004006f,0x00000053, + 0x00000388,0x00000387,0x0003003e,0x00000389,0x00000388,0x0004003d,0x00000006,0x0000038b, + 0x000000ba,0x0003003e,0x0000038a,0x0000038b,0x00060039,0x0000004a,0x0000038c,0x0000007b, + 0x00000389,0x0000038a,0x0003003e,0x00000385,0x0000038c,0x0004003d,0x00000029,0x0000038e, + 0x000000b8,0x0004007c,0x0000002e,0x0000038f,0x0000038e,0x0004006f,0x00000053,0x00000390, + 0x0000038f,0x0003003e,0x00000391,0x00000390,0x0004003d,0x00000006,0x00000393,0x000000ba, + 0x0003003e,0x00000392,0x00000393,0x00060039,0x0000004a,0x00000394,0x0000007b,0x00000391, + 0x00000392,0x0003003e,0x0000038d,0x00000394,0x0004003d,0x00000029,0x00000396,0x000000b9, + 0x0004007c,0x0000002e,0x00000397,0x00000396,0x0004006f,0x00000053,0x00000398,0x00000397, + 0x0003003e,0x00000399,0x00000398,0x0004003d,0x00000006,0x0000039b,0x000000ba,0x0003003e, + 0x0000039a,0x0000039b,0x00060039,0x0000004a,0x0000039c,0x0000007b,0x00000399,0x0000039a, + 0x0003003e,0x00000395,0x0000039c,0x0004003d,0x0000004a,0x0000039e,0x0000037d,0x0003003e, + 0x0000039d,0x0000039e,0x0004003d,0x0000004a,0x000003a0,0x00000385,0x0003003e,0x0000039f, + 0x000003a0,0x0004003d,0x0000004a,0x000003a2,0x0000038d,0x0003003e,0x000003a1,0x000003a2, + 0x0004003d,0x0000004a,0x000003a4,0x00000395,0x0003003e,0x000003a3,0x000003a4,0x00080039, + 0x0000004a,0x000003a5,0x00000087,0x0000039d,0x0000039f,0x000003a1,0x000003a3,0x000200fe, + 0x000003a5,0x00010038,0x00050036,0x0000004a,0x000000bf,0x00000000,0x000000b1,0x00030037, + 0x000000a8,0x000000bd,0x00030037,0x00000007,0x000000be,0x000200f8,0x000000c0,0x0004003b, + 0x000000a8,0x000003b0,0x00000007,0x0004003b,0x000000a8,0x000003b1,0x00000007,0x0004003b, + 0x000000a8,0x000003b2,0x00000007,0x0004003b,0x000000a8,0x000003b3,0x00000007,0x0004003b, + 0x00000007,0x000003b4,0x00000007,0x0004003d,0x00000029,0x000003a8,0x000000bd,0x00050080, + 0x00000029,0x000003a9,0x000003a8,0x00000369,0x0004003d,0x00000029,0x000003aa,0x000000bd, + 0x00050080,0x00000029,0x000003ab,0x000003aa,0x0000036c,0x0004003d,0x00000029,0x000003ac, + 0x000000bd,0x00050080,0x00000029,0x000003ad,0x000003ac,0x0000036f,0x0004003d,0x00000029, + 0x000003ae,0x000000bd,0x00050080,0x00000029,0x000003af,0x000003ae,0x00000372,0x0003003e, + 0x000003b0,0x000003a9,0x0003003e,0x000003b1,0x000003ab,0x0003003e,0x000003b2,0x000003ad, + 0x0003003e,0x000003b3,0x000003af,0x0004003d,0x00000006,0x000003b5,0x000000be,0x0003003e, + 0x000003b4,0x000003b5,0x00090039,0x0000004a,0x000003b6,0x000000bb,0x000003b0,0x000003b1, + 0x000003b2,0x000003b3,0x000003b4,0x000200fe,0x000003b6,0x00010038,0x00050036,0x00000002, + 0x000000c8,0x00000000,0x000000c1,0x00030037,0x00000007,0x000000c2,0x00030037,0x00000007, + 0x000000c3,0x00030037,0x000000a8,0x000000c4,0x00030037,0x00000007,0x000000c5,0x00030037, + 0x00000007,0x000000c6,0x00030037,0x00000007,0x000000c7,0x000200f8,0x000000c9,0x0004003b, + 0x0000003d,0x000003b9,0x00000007,0x0004003b,0x0000003d,0x000003c7,0x00000007,0x0004003b, + 0x000003d4,0x000003d5,0x00000007,0x0004003b,0x000000a8,0x000003d8,0x00000007,0x0004003b, + 0x00000007,0x000003d9,0x00000007,0x0004003b,0x0000003d,0x000003dd,0x00000007,0x0004003b, + 0x0000004e,0x000003df,0x00000007,0x0004003b,0x00000007,0x000003e2,0x00000007,0x0004003b, + 0x00000007,0x000003e3,0x00000007,0x0004003b,0x000000a8,0x00000400,0x00000007,0x0004003b, + 0x00000007,0x00000401,0x00000007,0x0004003b,0x0000003d,0x00000405,0x00000007,0x0004003b, + 0x0000004e,0x00000407,0x00000007,0x0004003b,0x00000007,0x0000040a,0x00000007,0x0004003b, + 0x00000007,0x0000040b,0x00000007,0x0004003b,0x000000a8,0x00000428,0x00000007,0x0004003b, + 0x00000007,0x00000429,0x00000007,0x0004003b,0x0000003d,0x0000042d,0x00000007,0x0004003b, + 0x0000004e,0x0000042f,0x00000007,0x0004003b,0x00000007,0x00000432,0x00000007,0x0004003b, + 0x00000007,0x00000433,0x00000007,0x0004003b,0x000000a8,0x00000453,0x00000007,0x0004003b, + 0x00000007,0x00000454,0x00000007,0x0004003b,0x0000003d,0x00000458,0x00000007,0x0004003b, + 0x0000004e,0x0000045a,0x00000007,0x0004003b,0x00000007,0x0000045d,0x00000007,0x0004003b, + 0x00000007,0x0000045e,0x00000007,0x0004003b,0x0000004e,0x00000466,0x00000007,0x0004003b, + 0x0000004e,0x0000046b,0x00000007,0x0004003b,0x0000004e,0x00000470,0x00000007,0x0004003b, + 0x0000004e,0x00000475,0x00000007,0x0004003b,0x0000003d,0x0000048b,0x00000007,0x0004003b, + 0x0000004e,0x0000048c,0x00000007,0x0004003b,0x00000007,0x0000048f,0x00000007,0x0004003b, + 0x00000007,0x00000490,0x00000007,0x0004003b,0x00000007,0x00000497,0x00000007,0x0004003b, + 0x00000007,0x00000498,0x00000007,0x0004003b,0x0000004e,0x00000499,0x00000007,0x0004003b, + 0x0000003d,0x000004ab,0x00000007,0x0004003b,0x0000004e,0x000004ac,0x00000007,0x0004003b, + 0x00000007,0x000004af,0x00000007,0x0004003b,0x00000007,0x000004b0,0x00000007,0x0004003b, + 0x00000007,0x000004b8,0x00000007,0x0004003b,0x00000007,0x000004b9,0x00000007,0x0004003b, + 0x0000004e,0x000004ba,0x00000007,0x0004003b,0x0000003d,0x000004cb,0x00000007,0x0004003b, + 0x0000004e,0x000004cc,0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b, + 0x00000007,0x000004d0,0x00000007,0x0004003b,0x00000007,0x000004d8,0x00000007,0x0004003b, + 0x00000007,0x000004d9,0x00000007,0x0004003b,0x0000004e,0x000004da,0x00000007,0x0004003b, + 0x0000003d,0x000004ec,0x00000007,0x0004003b,0x0000004e,0x000004ed,0x00000007,0x0004003b, + 0x00000007,0x000004f0,0x00000007,0x0004003b,0x00000007,0x000004f1,0x00000007,0x0004003b, + 0x00000007,0x000004fa,0x00000007,0x0004003b,0x00000007,0x000004fb,0x00000007,0x0004003b, + 0x0000004e,0x000004fc,0x00000007,0x0004003d,0x00000029,0x000003ba,0x000000c4,0x00050050, + 0x00000029,0x000003bc,0x000003bb,0x000003bb,0x00050084,0x00000029,0x000003bd,0x000003ba, + 0x000003bc,0x0004007c,0x0000002e,0x000003be,0x000003bd,0x0004003d,0x00000006,0x000003bf, + 0x000000c2,0x00050084,0x00000006,0x000003c0,0x000003bf,0x0000013e,0x0004007c,0x00000013, + 0x000003c1,0x000003c0,0x0004003d,0x00000006,0x000003c2,0x000000c3,0x00050084,0x00000006, + 0x000003c3,0x000003c2,0x0000013e,0x0004007c,0x00000013,0x000003c4,0x000003c3,0x00050050, + 0x0000002e,0x000003c5,0x000003c1,0x000003c4,0x00050080,0x0000002e,0x000003c6,0x000003be, + 0x000003c5,0x0003003e,0x000003b9,0x000003c6,0x0004003d,0x00000029,0x000003c8,0x000000c4, + 0x00050050,0x00000029,0x000003ca,0x000003c9,0x000003c9,0x00050084,0x00000029,0x000003cb, + 0x000003c8,0x000003ca,0x0004007c,0x0000002e,0x000003cc,0x000003cb,0x0004003d,0x00000006, + 0x000003cd,0x000000c2,0x0004007c,0x00000013,0x000003ce,0x000003cd,0x0004003d,0x00000006, + 0x000003cf,0x000000c3,0x0004007c,0x00000013,0x000003d0,0x000003cf,0x00050050,0x0000002e, + 0x000003d1,0x000003ce,0x000003d0,0x00050080,0x0000002e,0x000003d2,0x000003cc,0x000003d1, + 0x0003003e,0x000003c7,0x000003d2,0x0004003d,0x0000002e,0x000003d6,0x000003b9,0x0004007c, + 0x00000029,0x000003d7,0x000003d6,0x0003003e,0x000003d8,0x000003d7,0x0004003d,0x00000006, + 0x000003da,0x000000c7,0x0003003e,0x000003d9,0x000003da,0x00060039,0x0000004a,0x000003db, + 0x000000bf,0x000003d8,0x000003d9,0x00050041,0x0000004e,0x000003dc,0x000003d5,0x00000124, + 0x0003003e,0x000003dc,0x000003db,0x0004003d,0x0000002e,0x000003de,0x000003c7,0x0003003e, + 0x000003dd,0x000003de,0x00050041,0x0000004e,0x000003e0,0x000003d5,0x00000124,0x0004003d, + 0x0000004a,0x000003e1,0x000003e0,0x0003003e,0x000003df,0x000003e1,0x0003003e,0x000003e2, + 0x00000183,0x0004003d,0x00000006,0x000003e4,0x000000c7,0x0003003e,0x000003e3,0x000003e4, + 0x00080039,0x00000002,0x000003e5,0x0000008e,0x000003dd,0x000003df,0x000003e2,0x000003e3, + 0x0004003d,0x00000029,0x000003e6,0x000000c4,0x00050050,0x00000029,0x000003e7,0x000003bb, + 0x000003bb,0x00050084,0x00000029,0x000003e8,0x000003e6,0x000003e7,0x0004007c,0x0000002e, + 0x000003e9,0x000003e8,0x0004003d,0x00000006,0x000003ea,0x000000c2,0x00050084,0x00000006, + 0x000003eb,0x000003ea,0x0000013e,0x00050080,0x00000006,0x000003ec,0x000003eb,0x000003c9, + 0x0004007c,0x00000013,0x000003ed,0x000003ec,0x0004003d,0x00000006,0x000003ee,0x000000c3, + 0x00050084,0x00000006,0x000003ef,0x000003ee,0x0000013e,0x0004007c,0x00000013,0x000003f0, + 0x000003ef,0x00050050,0x0000002e,0x000003f1,0x000003ed,0x000003f0,0x00050080,0x0000002e, + 0x000003f2,0x000003e9,0x000003f1,0x0003003e,0x000003b9,0x000003f2,0x0004003d,0x00000029, + 0x000003f3,0x000000c4,0x00050050,0x00000029,0x000003f4,0x000003c9,0x000003c9,0x00050084, + 0x00000029,0x000003f5,0x000003f3,0x000003f4,0x0004007c,0x0000002e,0x000003f6,0x000003f5, + 0x0004003d,0x00000006,0x000003f7,0x000000c2,0x00050080,0x00000006,0x000003f8,0x000003f7, + 0x000002e9,0x0004007c,0x00000013,0x000003f9,0x000003f8,0x0004003d,0x00000006,0x000003fa, + 0x000000c3,0x0004007c,0x00000013,0x000003fb,0x000003fa,0x00050050,0x0000002e,0x000003fc, + 0x000003f9,0x000003fb,0x00050080,0x0000002e,0x000003fd,0x000003f6,0x000003fc,0x0003003e, + 0x000003c7,0x000003fd,0x0004003d,0x0000002e,0x000003fe,0x000003b9,0x0004007c,0x00000029, + 0x000003ff,0x000003fe,0x0003003e,0x00000400,0x000003ff,0x0004003d,0x00000006,0x00000402, + 0x000000c7,0x0003003e,0x00000401,0x00000402,0x00060039,0x0000004a,0x00000403,0x000000bf, + 0x00000400,0x00000401,0x00050041,0x0000004e,0x00000404,0x000003d5,0x00000172,0x0003003e, + 0x00000404,0x00000403,0x0004003d,0x0000002e,0x00000406,0x000003c7,0x0003003e,0x00000405, + 0x00000406,0x00050041,0x0000004e,0x00000408,0x000003d5,0x00000172,0x0004003d,0x0000004a, + 0x00000409,0x00000408,0x0003003e,0x00000407,0x00000409,0x0003003e,0x0000040a,0x00000183, + 0x0004003d,0x00000006,0x0000040c,0x000000c7,0x0003003e,0x0000040b,0x0000040c,0x00080039, + 0x00000002,0x0000040d,0x0000008e,0x00000405,0x00000407,0x0000040a,0x0000040b,0x0004003d, + 0x00000029,0x0000040e,0x000000c4,0x00050050,0x00000029,0x0000040f,0x000003bb,0x000003bb, + 0x00050084,0x00000029,0x00000410,0x0000040e,0x0000040f,0x0004007c,0x0000002e,0x00000411, + 0x00000410,0x0004003d,0x00000006,0x00000412,0x000000c2,0x00050084,0x00000006,0x00000413, + 0x00000412,0x0000013e,0x0004007c,0x00000013,0x00000414,0x00000413,0x0004003d,0x00000006, + 0x00000415,0x000000c3,0x00050084,0x00000006,0x00000416,0x00000415,0x0000013e,0x00050080, + 0x00000006,0x00000417,0x00000416,0x000003c9,0x0004007c,0x00000013,0x00000418,0x00000417, + 0x00050050,0x0000002e,0x00000419,0x00000414,0x00000418,0x00050080,0x0000002e,0x0000041a, + 0x00000411,0x00000419,0x0003003e,0x000003b9,0x0000041a,0x0004003d,0x00000029,0x0000041b, + 0x000000c4,0x00050050,0x00000029,0x0000041c,0x000003c9,0x000003c9,0x00050084,0x00000029, + 0x0000041d,0x0000041b,0x0000041c,0x0004007c,0x0000002e,0x0000041e,0x0000041d,0x0004003d, + 0x00000006,0x0000041f,0x000000c2,0x0004007c,0x00000013,0x00000420,0x0000041f,0x0004003d, + 0x00000006,0x00000421,0x000000c3,0x00050080,0x00000006,0x00000422,0x00000421,0x000002e9, + 0x0004007c,0x00000013,0x00000423,0x00000422,0x00050050,0x0000002e,0x00000424,0x00000420, + 0x00000423,0x00050080,0x0000002e,0x00000425,0x0000041e,0x00000424,0x0003003e,0x000003c7, + 0x00000425,0x0004003d,0x0000002e,0x00000426,0x000003b9,0x0004007c,0x00000029,0x00000427, + 0x00000426,0x0003003e,0x00000428,0x00000427,0x0004003d,0x00000006,0x0000042a,0x000000c7, + 0x0003003e,0x00000429,0x0000042a,0x00060039,0x0000004a,0x0000042b,0x000000bf,0x00000428, + 0x00000429,0x00050041,0x0000004e,0x0000042c,0x000003d5,0x00000177,0x0003003e,0x0000042c, + 0x0000042b,0x0004003d,0x0000002e,0x0000042e,0x000003c7,0x0003003e,0x0000042d,0x0000042e, + 0x00050041,0x0000004e,0x00000430,0x000003d5,0x00000177,0x0004003d,0x0000004a,0x00000431, + 0x00000430,0x0003003e,0x0000042f,0x00000431,0x0003003e,0x00000432,0x00000183,0x0004003d, + 0x00000006,0x00000434,0x000000c7,0x0003003e,0x00000433,0x00000434,0x00080039,0x00000002, + 0x00000435,0x0000008e,0x0000042d,0x0000042f,0x00000432,0x00000433,0x0004003d,0x00000029, + 0x00000436,0x000000c4,0x00050050,0x00000029,0x00000437,0x000003bb,0x000003bb,0x00050084, + 0x00000029,0x00000438,0x00000436,0x00000437,0x0004007c,0x0000002e,0x00000439,0x00000438, + 0x0004003d,0x00000006,0x0000043a,0x000000c2,0x00050084,0x00000006,0x0000043b,0x0000043a, + 0x0000013e,0x00050080,0x00000006,0x0000043c,0x0000043b,0x000003c9,0x0004007c,0x00000013, + 0x0000043d,0x0000043c,0x0004003d,0x00000006,0x0000043e,0x000000c3,0x00050084,0x00000006, + 0x0000043f,0x0000043e,0x0000013e,0x00050080,0x00000006,0x00000440,0x0000043f,0x000003c9, + 0x0004007c,0x00000013,0x00000441,0x00000440,0x00050050,0x0000002e,0x00000442,0x0000043d, + 0x00000441,0x00050080,0x0000002e,0x00000443,0x00000439,0x00000442,0x0003003e,0x000003b9, + 0x00000443,0x0004003d,0x00000029,0x00000444,0x000000c4,0x00050050,0x00000029,0x00000445, + 0x000003c9,0x000003c9,0x00050084,0x00000029,0x00000446,0x00000444,0x00000445,0x0004007c, + 0x0000002e,0x00000447,0x00000446,0x0004003d,0x00000006,0x00000448,0x000000c2,0x00050080, + 0x00000006,0x00000449,0x00000448,0x000002e9,0x0004007c,0x00000013,0x0000044a,0x00000449, + 0x0004003d,0x00000006,0x0000044b,0x000000c3,0x00050080,0x00000006,0x0000044c,0x0000044b, + 0x000002e9,0x0004007c,0x00000013,0x0000044d,0x0000044c,0x00050050,0x0000002e,0x0000044e, + 0x0000044a,0x0000044d,0x00050080,0x0000002e,0x0000044f,0x00000447,0x0000044e,0x0003003e, + 0x000003c7,0x0000044f,0x0004003d,0x0000002e,0x00000451,0x000003b9,0x0004007c,0x00000029, + 0x00000452,0x00000451,0x0003003e,0x00000453,0x00000452,0x0004003d,0x00000006,0x00000455, + 0x000000c7,0x0003003e,0x00000454,0x00000455,0x00060039,0x0000004a,0x00000456,0x000000bf, + 0x00000453,0x00000454,0x00050041,0x0000004e,0x00000457,0x000003d5,0x00000450,0x0003003e, + 0x00000457,0x00000456,0x0004003d,0x0000002e,0x00000459,0x000003c7,0x0003003e,0x00000458, + 0x00000459,0x00050041,0x0000004e,0x0000045b,0x000003d5,0x00000450,0x0004003d,0x0000004a, + 0x0000045c,0x0000045b,0x0003003e,0x0000045a,0x0000045c,0x0003003e,0x0000045d,0x00000183, + 0x0004003d,0x00000006,0x0000045f,0x000000c7,0x0003003e,0x0000045e,0x0000045f,0x00080039, + 0x00000002,0x00000460,0x0000008e,0x00000458,0x0000045a,0x0000045d,0x0000045e,0x0004003d, + 0x00000006,0x00000461,0x000000c6,0x000500b2,0x0000009d,0x00000462,0x00000461,0x00000145, + 0x000300f7,0x00000464,0x00000000,0x000400fa,0x00000462,0x00000463,0x00000464,0x000200f8, + 0x00000463,0x000100fd,0x000200f8,0x00000464,0x00050041,0x0000004e,0x00000467,0x000003d5, + 0x00000124,0x0004003d,0x0000004a,0x00000468,0x00000467,0x0003003e,0x00000466,0x00000468, + 0x00050039,0x0000004a,0x00000469,0x000000a6,0x00000466,0x00050041,0x0000004e,0x0000046a, + 0x000003d5,0x00000124,0x0003003e,0x0000046a,0x00000469,0x00050041,0x0000004e,0x0000046c, + 0x000003d5,0x00000172,0x0004003d,0x0000004a,0x0000046d,0x0000046c,0x0003003e,0x0000046b, + 0x0000046d,0x00050039,0x0000004a,0x0000046e,0x000000a6,0x0000046b,0x00050041,0x0000004e, + 0x0000046f,0x000003d5,0x00000172,0x0003003e,0x0000046f,0x0000046e,0x00050041,0x0000004e, + 0x00000471,0x000003d5,0x00000177,0x0004003d,0x0000004a,0x00000472,0x00000471,0x0003003e, + 0x00000470,0x00000472,0x00050039,0x0000004a,0x00000473,0x000000a6,0x00000470,0x00050041, + 0x0000004e,0x00000474,0x000003d5,0x00000177,0x0003003e,0x00000474,0x00000473,0x00050041, + 0x0000004e,0x00000476,0x000003d5,0x00000450,0x0004003d,0x0000004a,0x00000477,0x00000476, + 0x0003003e,0x00000475,0x00000477,0x00050039,0x0000004a,0x00000478,0x000000a6,0x00000475, + 0x00050041,0x0000004e,0x00000479,0x000003d5,0x00000450,0x0003003e,0x00000479,0x00000478, + 0x0004003d,0x00000006,0x0000047a,0x000000c5,0x00050089,0x00000006,0x0000047b,0x0000047a, + 0x000001cb,0x000500aa,0x0000009d,0x0000047c,0x0000047b,0x00000183,0x000300f7,0x0000047e, + 0x00000000,0x000400fa,0x0000047c,0x0000047d,0x0000047e,0x000200f8,0x0000047d,0x0004003d, + 0x00000029,0x0000047f,0x000000c4,0x00050050,0x00000029,0x00000480,0x000002e9,0x000002e9, + 0x00050084,0x00000029,0x00000481,0x0000047f,0x00000480,0x0004007c,0x0000002e,0x00000482, + 0x00000481,0x0004003d,0x00000006,0x00000483,0x000000c2,0x00050086,0x00000006,0x00000484, + 0x00000483,0x0000013e,0x0004007c,0x00000013,0x00000485,0x00000484,0x0004003d,0x00000006, + 0x00000486,0x000000c3,0x00050086,0x00000006,0x00000487,0x00000486,0x0000013e,0x0004007c, + 0x00000013,0x00000488,0x00000487,0x00050050,0x0000002e,0x00000489,0x00000485,0x00000488, + 0x00050080,0x0000002e,0x0000048a,0x00000482,0x00000489,0x0003003e,0x0000048b,0x0000048a, + 0x00050041,0x0000004e,0x0000048d,0x000003d5,0x00000124,0x0004003d,0x0000004a,0x0000048e, + 0x0000048d,0x0003003e,0x0000048c,0x0000048e,0x0003003e,0x0000048f,0x00000145,0x0004003d, + 0x00000006,0x00000491,0x000000c7,0x0003003e,0x00000490,0x00000491,0x00080039,0x00000002, + 0x00000492,0x0000008e,0x0000048b,0x0000048c,0x0000048f,0x00000490,0x0004003d,0x00000006, + 0x00000493,0x000000c2,0x00050086,0x00000006,0x00000494,0x00000493,0x0000013e,0x0004003d, + 0x00000006,0x00000495,0x000000c3,0x00050086,0x00000006,0x00000496,0x00000495,0x0000013e, + 0x0003003e,0x00000497,0x00000494,0x0003003e,0x00000498,0x00000496,0x00050041,0x0000004e, + 0x0000049a,0x000003d5,0x00000124,0x0004003d,0x0000004a,0x0000049b,0x0000049a,0x0003003e, + 0x00000499,0x0000049b,0x00070039,0x00000002,0x0000049c,0x00000099,0x00000497,0x00000498, + 0x00000499,0x0004003d,0x00000029,0x0000049d,0x000000c4,0x00050050,0x00000029,0x0000049e, + 0x000002e9,0x000002e9,0x00050084,0x00000029,0x0000049f,0x0000049d,0x0000049e,0x0004007c, + 0x0000002e,0x000004a0,0x0000049f,0x0004003d,0x00000006,0x000004a1,0x000000c2,0x00050086, + 0x00000006,0x000004a2,0x000004a1,0x0000013e,0x00050080,0x00000006,0x000004a4,0x000004a2, + 0x000004a3,0x0004007c,0x00000013,0x000004a5,0x000004a4,0x0004003d,0x00000006,0x000004a6, + 0x000000c3,0x00050086,0x00000006,0x000004a7,0x000004a6,0x0000013e,0x0004007c,0x00000013, + 0x000004a8,0x000004a7,0x00050050,0x0000002e,0x000004a9,0x000004a5,0x000004a8,0x00050080, + 0x0000002e,0x000004aa,0x000004a0,0x000004a9,0x0003003e,0x000004ab,0x000004aa,0x00050041, + 0x0000004e,0x000004ad,0x000003d5,0x00000172,0x0004003d,0x0000004a,0x000004ae,0x000004ad, + 0x0003003e,0x000004ac,0x000004ae,0x0003003e,0x000004af,0x00000145,0x0004003d,0x00000006, + 0x000004b1,0x000000c7,0x0003003e,0x000004b0,0x000004b1,0x00080039,0x00000002,0x000004b2, + 0x0000008e,0x000004ab,0x000004ac,0x000004af,0x000004b0,0x0004003d,0x00000006,0x000004b3, + 0x000000c2,0x00050086,0x00000006,0x000004b4,0x000004b3,0x0000013e,0x00050080,0x00000006, + 0x000004b5,0x000004b4,0x000004a3,0x0004003d,0x00000006,0x000004b6,0x000000c3,0x00050086, + 0x00000006,0x000004b7,0x000004b6,0x0000013e,0x0003003e,0x000004b8,0x000004b5,0x0003003e, + 0x000004b9,0x000004b7,0x00050041,0x0000004e,0x000004bb,0x000003d5,0x00000172,0x0004003d, + 0x0000004a,0x000004bc,0x000004bb,0x0003003e,0x000004ba,0x000004bc,0x00070039,0x00000002, + 0x000004bd,0x00000099,0x000004b8,0x000004b9,0x000004ba,0x0004003d,0x00000029,0x000004be, + 0x000000c4,0x00050050,0x00000029,0x000004bf,0x000002e9,0x000002e9,0x00050084,0x00000029, + 0x000004c0,0x000004be,0x000004bf,0x0004007c,0x0000002e,0x000004c1,0x000004c0,0x0004003d, + 0x00000006,0x000004c2,0x000000c2,0x00050086,0x00000006,0x000004c3,0x000004c2,0x0000013e, + 0x0004007c,0x00000013,0x000004c4,0x000004c3,0x0004003d,0x00000006,0x000004c5,0x000000c3, + 0x00050086,0x00000006,0x000004c6,0x000004c5,0x0000013e,0x00050080,0x00000006,0x000004c7, + 0x000004c6,0x000004a3,0x0004007c,0x00000013,0x000004c8,0x000004c7,0x00050050,0x0000002e, + 0x000004c9,0x000004c4,0x000004c8,0x00050080,0x0000002e,0x000004ca,0x000004c1,0x000004c9, + 0x0003003e,0x000004cb,0x000004ca,0x00050041,0x0000004e,0x000004cd,0x000003d5,0x00000177, + 0x0004003d,0x0000004a,0x000004ce,0x000004cd,0x0003003e,0x000004cc,0x000004ce,0x0003003e, + 0x000004cf,0x00000145,0x0004003d,0x00000006,0x000004d1,0x000000c7,0x0003003e,0x000004d0, + 0x000004d1,0x00080039,0x00000002,0x000004d2,0x0000008e,0x000004cb,0x000004cc,0x000004cf, + 0x000004d0,0x0004003d,0x00000006,0x000004d3,0x000000c2,0x00050086,0x00000006,0x000004d4, + 0x000004d3,0x0000013e,0x0004003d,0x00000006,0x000004d5,0x000000c3,0x00050086,0x00000006, + 0x000004d6,0x000004d5,0x0000013e,0x00050080,0x00000006,0x000004d7,0x000004d6,0x000004a3, + 0x0003003e,0x000004d8,0x000004d4,0x0003003e,0x000004d9,0x000004d7,0x00050041,0x0000004e, + 0x000004db,0x000003d5,0x00000177,0x0004003d,0x0000004a,0x000004dc,0x000004db,0x0003003e, + 0x000004da,0x000004dc,0x00070039,0x00000002,0x000004dd,0x00000099,0x000004d8,0x000004d9, + 0x000004da,0x0004003d,0x00000029,0x000004de,0x000000c4,0x00050050,0x00000029,0x000004df, + 0x000002e9,0x000002e9,0x00050084,0x00000029,0x000004e0,0x000004de,0x000004df,0x0004007c, + 0x0000002e,0x000004e1,0x000004e0,0x0004003d,0x00000006,0x000004e2,0x000000c2,0x00050086, + 0x00000006,0x000004e3,0x000004e2,0x0000013e,0x00050080,0x00000006,0x000004e4,0x000004e3, + 0x000004a3,0x0004007c,0x00000013,0x000004e5,0x000004e4,0x0004003d,0x00000006,0x000004e6, + 0x000000c3,0x00050086,0x00000006,0x000004e7,0x000004e6,0x0000013e,0x00050080,0x00000006, + 0x000004e8,0x000004e7,0x000004a3,0x0004007c,0x00000013,0x000004e9,0x000004e8,0x00050050, + 0x0000002e,0x000004ea,0x000004e5,0x000004e9,0x00050080,0x0000002e,0x000004eb,0x000004e1, + 0x000004ea,0x0003003e,0x000004ec,0x000004eb,0x00050041,0x0000004e,0x000004ee,0x000003d5, + 0x00000450,0x0004003d,0x0000004a,0x000004ef,0x000004ee,0x0003003e,0x000004ed,0x000004ef, + 0x0003003e,0x000004f0,0x00000145,0x0004003d,0x00000006,0x000004f2,0x000000c7,0x0003003e, + 0x000004f1,0x000004f2,0x00080039,0x00000002,0x000004f3,0x0000008e,0x000004ec,0x000004ed, + 0x000004f0,0x000004f1,0x0004003d,0x00000006,0x000004f4,0x000000c2,0x00050086,0x00000006, + 0x000004f5,0x000004f4,0x0000013e,0x00050080,0x00000006,0x000004f6,0x000004f5,0x000004a3, + 0x0004003d,0x00000006,0x000004f7,0x000000c3,0x00050086,0x00000006,0x000004f8,0x000004f7, + 0x0000013e,0x00050080,0x00000006,0x000004f9,0x000004f8,0x000004a3,0x0003003e,0x000004fa, + 0x000004f6,0x0003003e,0x000004fb,0x000004f9,0x00050041,0x0000004e,0x000004fd,0x000003d5, + 0x00000450,0x0004003d,0x0000004a,0x000004fe,0x000004fd,0x0003003e,0x000004fc,0x000004fe, + 0x00070039,0x00000002,0x000004ff,0x00000099,0x000004fa,0x000004fb,0x000004fc,0x000200f9, + 0x0000047e,0x000200f8,0x0000047e,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d0, + 0x00000000,0x000000c1,0x00030037,0x00000007,0x000000ca,0x00030037,0x00000007,0x000000cb, + 0x00030037,0x000000a8,0x000000cc,0x00030037,0x00000007,0x000000cd,0x00030037,0x00000007, + 0x000000ce,0x00030037,0x00000007,0x000000cf,0x000200f8,0x000000d1,0x0004003b,0x00000007, + 0x00000500,0x00000007,0x0004003b,0x00000007,0x00000502,0x00000007,0x0004003b,0x000000a8, + 0x00000504,0x00000007,0x0004003b,0x00000007,0x00000506,0x00000007,0x0004003b,0x00000007, + 0x00000508,0x00000007,0x0004003b,0x00000007,0x0000050a,0x00000007,0x0004003d,0x00000006, + 0x00000501,0x000000ca,0x0003003e,0x00000500,0x00000501,0x0004003d,0x00000006,0x00000503, + 0x000000cb,0x0003003e,0x00000502,0x00000503,0x0004003d,0x00000029,0x00000505,0x000000cc, + 0x0003003e,0x00000504,0x00000505,0x0004003d,0x00000006,0x00000507,0x000000cd,0x0003003e, + 0x00000506,0x00000507,0x0004003d,0x00000006,0x00000509,0x000000ce,0x0003003e,0x00000508, + 0x00000509,0x0004003d,0x00000006,0x0000050b,0x000000cf,0x0003003e,0x0000050a,0x0000050b, + 0x000a0039,0x00000002,0x0000050c,0x000000c8,0x00000500,0x00000502,0x00000504,0x00000506, + 0x00000508,0x0000050a,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d8,0x00000000, + 0x000000c1,0x00030037,0x00000007,0x000000d2,0x00030037,0x00000007,0x000000d3,0x00030037, + 0x000000a8,0x000000d4,0x00030037,0x00000007,0x000000d5,0x00030037,0x00000007,0x000000d6, + 0x00030037,0x00000007,0x000000d7,0x000200f8,0x000000d9,0x0004003b,0x0000004e,0x0000050d, + 0x00000007,0x0004003b,0x00000007,0x0000050e,0x00000007,0x0004003b,0x00000007,0x00000510, + 0x00000007,0x0004003b,0x0000004e,0x00000513,0x00000007,0x0004003b,0x0000003d,0x00000527, + 0x00000007,0x0004003b,0x0000004e,0x00000528,0x00000007,0x0004003b,0x00000007,0x0000052a, + 0x00000007,0x0004003b,0x00000007,0x0000052c,0x00000007,0x0004003b,0x00000007,0x00000534, + 0x00000007,0x0004003b,0x00000007,0x00000535,0x00000007,0x0004003b,0x0000004e,0x00000537, + 0x00000007,0x0004003d,0x00000006,0x0000050f,0x000000d2,0x0003003e,0x0000050e,0x0000050f, + 0x0004003d,0x00000006,0x00000511,0x000000d3,0x0003003e,0x00000510,0x00000511,0x00060039, + 0x0000004a,0x00000512,0x00000093,0x0000050e,0x00000510,0x0003003e,0x0000050d,0x00000512, + 0x0004003d,0x0000004a,0x00000514,0x0000050d,0x0003003e,0x00000513,0x00000514,0x00050039, + 0x0000004a,0x00000515,0x000000a6,0x00000513,0x0003003e,0x0000050d,0x00000515,0x0004003d, + 0x00000006,0x00000516,0x000000d5,0x00050089,0x00000006,0x00000517,0x00000516,0x000001cb, + 0x000500aa,0x0000009d,0x00000518,0x00000517,0x00000183,0x000300f7,0x0000051a,0x00000000, + 0x000400fa,0x00000518,0x00000519,0x0000051a,0x000200f8,0x00000519,0x0004003d,0x00000029, + 0x0000051b,0x000000d4,0x00050050,0x00000029,0x0000051c,0x000004a3,0x000004a3,0x00050084, + 0x00000029,0x0000051d,0x0000051b,0x0000051c,0x0004007c,0x0000002e,0x0000051e,0x0000051d, + 0x0004003d,0x00000006,0x0000051f,0x000000d2,0x00050086,0x00000006,0x00000520,0x0000051f, + 0x0000013e,0x0004007c,0x00000013,0x00000521,0x00000520,0x0004003d,0x00000006,0x00000522, + 0x000000d3,0x00050086,0x00000006,0x00000523,0x00000522,0x0000013e,0x0004007c,0x00000013, + 0x00000524,0x00000523,0x00050050,0x0000002e,0x00000525,0x00000521,0x00000524,0x00050080, + 0x0000002e,0x00000526,0x0000051e,0x00000525,0x0003003e,0x00000527,0x00000526,0x0004003d, + 0x0000004a,0x00000529,0x0000050d,0x0003003e,0x00000528,0x00000529,0x0004003d,0x00000006, + 0x0000052b,0x000000d6,0x0003003e,0x0000052a,0x0000052b,0x0004003d,0x00000006,0x0000052d, + 0x000000d7,0x0003003e,0x0000052c,0x0000052d,0x00080039,0x00000002,0x0000052e,0x0000008e, + 0x00000527,0x00000528,0x0000052a,0x0000052c,0x0004003d,0x00000006,0x0000052f,0x000000d2, + 0x0004003d,0x00000006,0x00000530,0x000000d3,0x00050086,0x00000006,0x00000531,0x00000530, + 0x0000013e,0x00050089,0x00000006,0x00000532,0x00000531,0x0000013e,0x00050080,0x00000006, + 0x00000533,0x0000052f,0x00000532,0x0003003e,0x00000534,0x00000533,0x0004003d,0x00000006, + 0x00000536,0x000000d3,0x0003003e,0x00000535,0x00000536,0x0004003d,0x0000004a,0x00000538, + 0x0000050d,0x0003003e,0x00000537,0x00000538,0x00070039,0x00000002,0x00000539,0x00000099, + 0x00000534,0x00000535,0x00000537,0x000200f9,0x0000051a,0x000200f8,0x0000051a,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000e0,0x00000000,0x000000c1,0x00030037,0x00000007, + 0x000000da,0x00030037,0x00000007,0x000000db,0x00030037,0x000000a8,0x000000dc,0x00030037, + 0x00000007,0x000000dd,0x00030037,0x00000007,0x000000de,0x00030037,0x00000007,0x000000df, + 0x000200f8,0x000000e1,0x0004003b,0x0000004e,0x0000053e,0x00000007,0x0004003b,0x00000007, + 0x00000546,0x00000007,0x0004003b,0x00000007,0x00000547,0x00000007,0x0004003b,0x0000004e, + 0x00000549,0x00000007,0x0004003b,0x0000003d,0x0000055d,0x00000007,0x0004003b,0x0000004e, + 0x0000055e,0x00000007,0x0004003b,0x00000007,0x00000560,0x00000007,0x0004003b,0x00000007, + 0x00000562,0x00000007,0x0004003b,0x00000007,0x0000056c,0x00000007,0x0004003b,0x00000007, + 0x0000056d,0x00000007,0x0004003b,0x0000004e,0x0000056e,0x00000007,0x0004003d,0x00000006, + 0x0000053a,0x000000dd,0x000500b0,0x0000009d,0x0000053b,0x0000053a,0x000003bb,0x000300f7, + 0x0000053d,0x00000000,0x000400fa,0x0000053b,0x0000053c,0x0000053d,0x000200f8,0x0000053c, + 0x0004003d,0x00000006,0x0000053f,0x000000da,0x00050084,0x00000006,0x00000540,0x0000053f, + 0x0000013e,0x0004003d,0x00000006,0x00000541,0x000000db,0x00050089,0x00000006,0x00000542, + 0x00000541,0x0000013e,0x00050080,0x00000006,0x00000543,0x00000540,0x00000542,0x0004003d, + 0x00000006,0x00000544,0x000000db,0x00050084,0x00000006,0x00000545,0x00000544,0x0000013e, + 0x0003003e,0x00000546,0x00000543,0x0003003e,0x00000547,0x00000545,0x00060039,0x0000004a, + 0x00000548,0x00000093,0x00000546,0x00000547,0x0003003e,0x0000053e,0x00000548,0x0004003d, + 0x0000004a,0x0000054a,0x0000053e,0x0003003e,0x00000549,0x0000054a,0x00050039,0x0000004a, + 0x0000054b,0x000000a6,0x00000549,0x0003003e,0x0000053e,0x0000054b,0x0004003d,0x00000006, + 0x0000054c,0x000000dd,0x00050089,0x00000006,0x0000054d,0x0000054c,0x000001cb,0x000500aa, + 0x0000009d,0x0000054e,0x0000054d,0x00000183,0x000300f7,0x00000550,0x00000000,0x000400fa, + 0x0000054e,0x0000054f,0x00000550,0x000200f8,0x0000054f,0x0004003d,0x00000029,0x00000551, + 0x000000dc,0x00050050,0x00000029,0x00000552,0x000001cb,0x000001cb,0x00050084,0x00000029, + 0x00000553,0x00000551,0x00000552,0x0004007c,0x0000002e,0x00000554,0x00000553,0x0004003d, + 0x00000006,0x00000555,0x000000da,0x00050086,0x00000006,0x00000556,0x00000555,0x0000013e, + 0x0004007c,0x00000013,0x00000557,0x00000556,0x0004003d,0x00000006,0x00000558,0x000000db, + 0x00050086,0x00000006,0x00000559,0x00000558,0x0000013e,0x0004007c,0x00000013,0x0000055a, + 0x00000559,0x00050050,0x0000002e,0x0000055b,0x00000557,0x0000055a,0x00050080,0x0000002e, + 0x0000055c,0x00000554,0x0000055b,0x0003003e,0x0000055d,0x0000055c,0x0004003d,0x0000004a, + 0x0000055f,0x0000053e,0x0003003e,0x0000055e,0x0000055f,0x0004003d,0x00000006,0x00000561, + 0x000000de,0x0003003e,0x00000560,0x00000561,0x0004003d,0x00000006,0x00000563,0x000000df, + 0x0003003e,0x00000562,0x00000563,0x00080039,0x00000002,0x00000564,0x0000008e,0x0000055d, + 0x0000055e,0x00000560,0x00000562,0x0004003d,0x00000006,0x00000565,0x000000da,0x00050084, + 0x00000006,0x00000566,0x00000565,0x0000013e,0x0004003d,0x00000006,0x00000567,0x000000db, + 0x00050086,0x00000006,0x00000568,0x00000567,0x0000013e,0x00050080,0x00000006,0x00000569, + 0x00000566,0x00000568,0x0004003d,0x00000006,0x0000056a,0x000000db,0x00050084,0x00000006, + 0x0000056b,0x0000056a,0x0000013e,0x0003003e,0x0000056c,0x00000569,0x0003003e,0x0000056d, + 0x0000056b,0x0004003d,0x0000004a,0x0000056f,0x0000053e,0x0003003e,0x0000056e,0x0000056f, + 0x00070039,0x00000002,0x00000570,0x00000099,0x0000056c,0x0000056d,0x0000056e,0x000200f9, + 0x00000550,0x000200f8,0x00000550,0x000200f9,0x0000053d,0x000200f8,0x0000053d,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000e8,0x00000000,0x000000c1,0x00030037,0x00000007, + 0x000000e2,0x00030037,0x00000007,0x000000e3,0x00030037,0x000000a8,0x000000e4,0x00030037, + 0x00000007,0x000000e5,0x00030037,0x00000007,0x000000e6,0x00030037,0x00000007,0x000000e7, + 0x000200f8,0x000000e9,0x0004003b,0x0000004e,0x00000575,0x00000007,0x0004003b,0x00000007, + 0x0000057c,0x00000007,0x0004003b,0x00000007,0x0000057d,0x00000007,0x0004003b,0x0000004e, + 0x0000057f,0x00000007,0x0004003b,0x0000003d,0x00000593,0x00000007,0x0004003b,0x0000004e, + 0x00000594,0x00000007,0x0004003b,0x00000007,0x00000596,0x00000007,0x0004003b,0x00000007, + 0x00000598,0x00000007,0x0004003b,0x00000007,0x0000059f,0x00000007,0x0004003b,0x00000007, + 0x000005a0,0x00000007,0x0004003b,0x0000004e,0x000005a1,0x00000007,0x0004003d,0x00000006, + 0x00000571,0x000000e5,0x000500b0,0x0000009d,0x00000572,0x00000571,0x000002e9,0x000300f7, + 0x00000574,0x00000000,0x000400fa,0x00000572,0x00000573,0x00000574,0x000200f8,0x00000573, + 0x0004003d,0x00000006,0x00000576,0x000000e2,0x00050084,0x00000006,0x00000577,0x00000576, + 0x000001cb,0x0004003d,0x00000006,0x00000578,0x000000e3,0x00050080,0x00000006,0x00000579, + 0x00000577,0x00000578,0x0004003d,0x00000006,0x0000057a,0x000000e3,0x00050084,0x00000006, + 0x0000057b,0x0000057a,0x000001cb,0x0003003e,0x0000057c,0x00000579,0x0003003e,0x0000057d, + 0x0000057b,0x00060039,0x0000004a,0x0000057e,0x00000093,0x0000057c,0x0000057d,0x0003003e, + 0x00000575,0x0000057e,0x0004003d,0x0000004a,0x00000580,0x00000575,0x0003003e,0x0000057f, + 0x00000580,0x00050039,0x0000004a,0x00000581,0x000000a6,0x0000057f,0x0003003e,0x00000575, + 0x00000581,0x0004003d,0x00000006,0x00000582,0x000000e5,0x00050089,0x00000006,0x00000583, + 0x00000582,0x000001cb,0x000500aa,0x0000009d,0x00000584,0x00000583,0x00000183,0x000300f7, + 0x00000586,0x00000000,0x000400fa,0x00000584,0x00000585,0x00000586,0x000200f8,0x00000585, + 0x0004003d,0x00000029,0x00000587,0x000000e4,0x00050050,0x00000029,0x00000588,0x0000013e, + 0x0000013e,0x00050084,0x00000029,0x00000589,0x00000587,0x00000588,0x0004007c,0x0000002e, + 0x0000058a,0x00000589,0x0004003d,0x00000006,0x0000058b,0x000000e2,0x00050086,0x00000006, + 0x0000058c,0x0000058b,0x0000013e,0x0004007c,0x00000013,0x0000058d,0x0000058c,0x0004003d, + 0x00000006,0x0000058e,0x000000e3,0x00050086,0x00000006,0x0000058f,0x0000058e,0x0000013e, + 0x0004007c,0x00000013,0x00000590,0x0000058f,0x00050050,0x0000002e,0x00000591,0x0000058d, + 0x00000590,0x00050080,0x0000002e,0x00000592,0x0000058a,0x00000591,0x0003003e,0x00000593, + 0x00000592,0x0004003d,0x0000004a,0x00000595,0x00000575,0x0003003e,0x00000594,0x00000595, + 0x0004003d,0x00000006,0x00000597,0x000000e6,0x0003003e,0x00000596,0x00000597,0x0004003d, + 0x00000006,0x00000599,0x000000e7,0x0003003e,0x00000598,0x00000599,0x00080039,0x00000002, + 0x0000059a,0x0000008e,0x00000593,0x00000594,0x00000596,0x00000598,0x0004003d,0x00000006, + 0x0000059b,0x000000e2,0x00050086,0x00000006,0x0000059c,0x0000059b,0x0000013e,0x0004003d, + 0x00000006,0x0000059d,0x000000e3,0x00050080,0x00000006,0x0000059e,0x0000059c,0x0000059d, + 0x0003003e,0x0000059f,0x0000059e,0x0003003e,0x000005a0,0x00000183,0x0004003d,0x0000004a, + 0x000005a2,0x00000575,0x0003003e,0x000005a1,0x000005a2,0x00070039,0x00000002,0x000005a3, + 0x00000099,0x0000059f,0x000005a0,0x000005a1,0x000200f9,0x00000586,0x000200f8,0x00000586, + 0x000200f9,0x00000574,0x000200f8,0x00000574,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000ef,0x00000000,0x000000ea,0x00030037,0x000000a8,0x000000eb,0x00030037,0x00000007, + 0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007,0x000000ee,0x000200f8, + 0x000000f0,0x0004003b,0x0000004e,0x000005a8,0x00000007,0x0004003b,0x00000007,0x000005a9, + 0x00000007,0x0004003b,0x00000007,0x000005ab,0x00000007,0x0004003b,0x0000004e,0x000005ad, + 0x00000007,0x0004003b,0x0000003d,0x000005b7,0x00000007,0x0004003b,0x0000004e,0x000005b8, + 0x00000007,0x0004003b,0x00000007,0x000005ba,0x00000007,0x0004003b,0x00000007,0x000005bc, + 0x00000007,0x0004003d,0x00000006,0x000005a4,0x000000ec,0x000500b0,0x0000009d,0x000005a5, + 0x000005a4,0x000001cb,0x000300f7,0x000005a7,0x00000000,0x000400fa,0x000005a5,0x000005a6, + 0x000005a7,0x000200f8,0x000005a6,0x0004003d,0x00000006,0x000005aa,0x000000ec,0x0003003e, + 0x000005a9,0x000005aa,0x0003003e,0x000005ab,0x00000183,0x00060039,0x0000004a,0x000005ac, + 0x00000093,0x000005a9,0x000005ab,0x0003003e,0x000005a8,0x000005ac,0x0004003d,0x0000004a, + 0x000005ae,0x000005a8,0x0003003e,0x000005ad,0x000005ae,0x00050039,0x0000004a,0x000005af, + 0x000000a6,0x000005ad,0x0003003e,0x000005a8,0x000005af,0x0004003d,0x00000006,0x000005b0, + 0x000000ec,0x00050089,0x00000006,0x000005b1,0x000005b0,0x000001cb,0x000500aa,0x0000009d, + 0x000005b2,0x000005b1,0x00000183,0x000300f7,0x000005b4,0x00000000,0x000400fa,0x000005b2, + 0x000005b3,0x000005b4,0x000200f8,0x000005b3,0x0004003d,0x00000029,0x000005b5,0x000000eb, + 0x0004007c,0x0000002e,0x000005b6,0x000005b5,0x0003003e,0x000005b7,0x000005b6,0x0004003d, + 0x0000004a,0x000005b9,0x000005a8,0x0003003e,0x000005b8,0x000005b9,0x0004003d,0x00000006, + 0x000005bb,0x000000ed,0x0003003e,0x000005ba,0x000005bb,0x0004003d,0x00000006,0x000005bd, + 0x000000ee,0x0003003e,0x000005bc,0x000005bd,0x00080039,0x00000002,0x000005be,0x0000008e, + 0x000005b7,0x000005b8,0x000005ba,0x000005bc,0x000200f9,0x000005b4,0x000200f8,0x000005b4, + 0x000200f9,0x000005a7,0x000200f8,0x000005a7,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x000000f6,0x00000000,0x000000f1,0x00030037,0x00000007,0x000000f2,0x00030037,0x00000007, + 0x000000f3,0x00030037,0x00000007,0x000000f4,0x00030037,0x00000007,0x000000f5,0x000200f8, + 0x000000f7,0x0004003b,0x0000003d,0x000005bf,0x00000007,0x0004003b,0x0000003d,0x000005c9, + 0x00000007,0x0004003b,0x0000004e,0x000005d3,0x00000007,0x0004003b,0x000000a8,0x000005d6, + 0x00000007,0x0004003b,0x00000007,0x000005d7,0x00000007,0x0004003b,0x0000003d,0x000005db, + 0x00000007,0x0004003b,0x0000004e,0x000005dd,0x00000007,0x0004003b,0x00000007,0x000005df, + 0x00000007,0x0004003b,0x00000007,0x000005e0,0x00000007,0x0004003b,0x0000004e,0x000005f5, + 0x00000007,0x0004003b,0x000000a8,0x000005f8,0x00000007,0x0004003b,0x00000007,0x000005f9, + 0x00000007,0x0004003b,0x0000003d,0x000005fc,0x00000007,0x0004003b,0x0000004e,0x000005fe, + 0x00000007,0x0004003b,0x00000007,0x00000600,0x00000007,0x0004003b,0x00000007,0x00000601, + 0x00000007,0x0004003b,0x0000004e,0x00000616,0x00000007,0x0004003b,0x000000a8,0x00000619, + 0x00000007,0x0004003b,0x00000007,0x0000061a,0x00000007,0x0004003b,0x0000003d,0x0000061d, + 0x00000007,0x0004003b,0x0000004e,0x0000061f,0x00000007,0x0004003b,0x00000007,0x00000621, + 0x00000007,0x0004003b,0x00000007,0x00000622,0x00000007,0x0004003b,0x0000004e,0x00000637, + 0x00000007,0x0004003b,0x000000a8,0x0000063a,0x00000007,0x0004003b,0x00000007,0x0000063b, + 0x00000007,0x0004003b,0x0000003d,0x0000063e,0x00000007,0x0004003b,0x0000004e,0x00000640, + 0x00000007,0x0004003b,0x00000007,0x00000642,0x00000007,0x0004003b,0x00000007,0x00000643, + 0x00000007,0x0004003b,0x0000004e,0x0000064c,0x00000007,0x0004003b,0x0000004e,0x0000064d, + 0x00000007,0x0004003b,0x0000004e,0x0000064f,0x00000007,0x0004003b,0x0000004e,0x00000651, + 0x00000007,0x0004003b,0x0000004e,0x00000653,0x00000007,0x0004003b,0x0000003d,0x0000065b, + 0x00000007,0x0004003b,0x0000004e,0x0000065c,0x00000007,0x0004003b,0x00000007,0x0000065e, + 0x00000007,0x0004003b,0x00000007,0x0000065f,0x00000007,0x0004003b,0x00000007,0x00000662, + 0x00000007,0x0004003b,0x00000007,0x00000664,0x00000007,0x0004003b,0x0000004e,0x00000666, + 0x00000007,0x0004003d,0x00000006,0x000005c0,0x000000f2,0x00050084,0x00000006,0x000005c1, + 0x000005c0,0x000001cb,0x00050080,0x00000006,0x000005c2,0x000005c1,0x00000183,0x0004007c, + 0x00000013,0x000005c3,0x000005c2,0x0004003d,0x00000006,0x000005c4,0x000000f3,0x00050084, + 0x00000006,0x000005c5,0x000005c4,0x000001cb,0x00050080,0x00000006,0x000005c6,0x000005c5, + 0x00000183,0x0004007c,0x00000013,0x000005c7,0x000005c6,0x00050050,0x0000002e,0x000005c8, + 0x000005c3,0x000005c7,0x0003003e,0x000005bf,0x000005c8,0x0004003d,0x00000006,0x000005ca, + 0x000000f2,0x00050084,0x00000006,0x000005cb,0x000005ca,0x0000013e,0x00050080,0x00000006, + 0x000005cc,0x000005cb,0x00000183,0x0004007c,0x00000013,0x000005cd,0x000005cc,0x0004003d, + 0x00000006,0x000005ce,0x000000f3,0x00050084,0x00000006,0x000005cf,0x000005ce,0x0000013e, + 0x00050080,0x00000006,0x000005d0,0x000005cf,0x00000183,0x0004007c,0x00000013,0x000005d1, + 0x000005d0,0x00050050,0x0000002e,0x000005d2,0x000005cd,0x000005d1,0x0003003e,0x000005c9, + 0x000005d2,0x0004003d,0x0000002e,0x000005d4,0x000005bf,0x0004007c,0x00000029,0x000005d5, + 0x000005d4,0x0003003e,0x000005d6,0x000005d5,0x0004003d,0x00000006,0x000005d8,0x000000f5, + 0x0003003e,0x000005d7,0x000005d8,0x00060039,0x0000004a,0x000005d9,0x000000b4,0x000005d6, + 0x000005d7,0x0003003e,0x000005d3,0x000005d9,0x0004003d,0x0000002e,0x000005dc,0x000005c9, + 0x0003003e,0x000005db,0x000005dc,0x0004003d,0x0000004a,0x000005de,0x000005d3,0x0003003e, + 0x000005dd,0x000005de,0x0003003e,0x000005df,0x000005da,0x0004003d,0x00000006,0x000005e1, + 0x000000f5,0x0003003e,0x000005e0,0x000005e1,0x00080039,0x00000002,0x000005e2,0x0000008e, + 0x000005db,0x000005dd,0x000005df,0x000005e0,0x0004003d,0x00000006,0x000005e3,0x000000f2, + 0x00050084,0x00000006,0x000005e4,0x000005e3,0x000001cb,0x00050080,0x00000006,0x000005e5, + 0x000005e4,0x0000013e,0x0004007c,0x00000013,0x000005e6,0x000005e5,0x0004003d,0x00000006, + 0x000005e7,0x000000f3,0x00050084,0x00000006,0x000005e8,0x000005e7,0x000001cb,0x00050080, + 0x00000006,0x000005e9,0x000005e8,0x00000183,0x0004007c,0x00000013,0x000005ea,0x000005e9, + 0x00050050,0x0000002e,0x000005eb,0x000005e6,0x000005ea,0x0003003e,0x000005bf,0x000005eb, + 0x0004003d,0x00000006,0x000005ec,0x000000f2,0x00050084,0x00000006,0x000005ed,0x000005ec, + 0x0000013e,0x00050080,0x00000006,0x000005ee,0x000005ed,0x00000145,0x0004007c,0x00000013, + 0x000005ef,0x000005ee,0x0004003d,0x00000006,0x000005f0,0x000000f3,0x00050084,0x00000006, + 0x000005f1,0x000005f0,0x0000013e,0x00050080,0x00000006,0x000005f2,0x000005f1,0x00000183, + 0x0004007c,0x00000013,0x000005f3,0x000005f2,0x00050050,0x0000002e,0x000005f4,0x000005ef, + 0x000005f3,0x0003003e,0x000005c9,0x000005f4,0x0004003d,0x0000002e,0x000005f6,0x000005bf, + 0x0004007c,0x00000029,0x000005f7,0x000005f6,0x0003003e,0x000005f8,0x000005f7,0x0004003d, + 0x00000006,0x000005fa,0x000000f5,0x0003003e,0x000005f9,0x000005fa,0x00060039,0x0000004a, + 0x000005fb,0x000000b4,0x000005f8,0x000005f9,0x0003003e,0x000005f5,0x000005fb,0x0004003d, + 0x0000002e,0x000005fd,0x000005c9,0x0003003e,0x000005fc,0x000005fd,0x0004003d,0x0000004a, + 0x000005ff,0x000005f5,0x0003003e,0x000005fe,0x000005ff,0x0003003e,0x00000600,0x000005da, + 0x0004003d,0x00000006,0x00000602,0x000000f5,0x0003003e,0x00000601,0x00000602,0x00080039, + 0x00000002,0x00000603,0x0000008e,0x000005fc,0x000005fe,0x00000600,0x00000601,0x0004003d, + 0x00000006,0x00000604,0x000000f2,0x00050084,0x00000006,0x00000605,0x00000604,0x000001cb, + 0x00050080,0x00000006,0x00000606,0x00000605,0x00000183,0x0004007c,0x00000013,0x00000607, + 0x00000606,0x0004003d,0x00000006,0x00000608,0x000000f3,0x00050084,0x00000006,0x00000609, + 0x00000608,0x000001cb,0x00050080,0x00000006,0x0000060a,0x00000609,0x0000013e,0x0004007c, + 0x00000013,0x0000060b,0x0000060a,0x00050050,0x0000002e,0x0000060c,0x00000607,0x0000060b, + 0x0003003e,0x000005bf,0x0000060c,0x0004003d,0x00000006,0x0000060d,0x000000f2,0x00050084, + 0x00000006,0x0000060e,0x0000060d,0x0000013e,0x00050080,0x00000006,0x0000060f,0x0000060e, + 0x00000183,0x0004007c,0x00000013,0x00000610,0x0000060f,0x0004003d,0x00000006,0x00000611, + 0x000000f3,0x00050084,0x00000006,0x00000612,0x00000611,0x0000013e,0x00050080,0x00000006, + 0x00000613,0x00000612,0x00000145,0x0004007c,0x00000013,0x00000614,0x00000613,0x00050050, + 0x0000002e,0x00000615,0x00000610,0x00000614,0x0003003e,0x000005c9,0x00000615,0x0004003d, + 0x0000002e,0x00000617,0x000005bf,0x0004007c,0x00000029,0x00000618,0x00000617,0x0003003e, + 0x00000619,0x00000618,0x0004003d,0x00000006,0x0000061b,0x000000f5,0x0003003e,0x0000061a, + 0x0000061b,0x00060039,0x0000004a,0x0000061c,0x000000b4,0x00000619,0x0000061a,0x0003003e, + 0x00000616,0x0000061c,0x0004003d,0x0000002e,0x0000061e,0x000005c9,0x0003003e,0x0000061d, + 0x0000061e,0x0004003d,0x0000004a,0x00000620,0x00000616,0x0003003e,0x0000061f,0x00000620, + 0x0003003e,0x00000621,0x000005da,0x0004003d,0x00000006,0x00000623,0x000000f5,0x0003003e, + 0x00000622,0x00000623,0x00080039,0x00000002,0x00000624,0x0000008e,0x0000061d,0x0000061f, + 0x00000621,0x00000622,0x0004003d,0x00000006,0x00000625,0x000000f2,0x00050084,0x00000006, + 0x00000626,0x00000625,0x000001cb,0x00050080,0x00000006,0x00000627,0x00000626,0x0000013e, + 0x0004007c,0x00000013,0x00000628,0x00000627,0x0004003d,0x00000006,0x00000629,0x000000f3, + 0x00050084,0x00000006,0x0000062a,0x00000629,0x000001cb,0x00050080,0x00000006,0x0000062b, + 0x0000062a,0x0000013e,0x0004007c,0x00000013,0x0000062c,0x0000062b,0x00050050,0x0000002e, + 0x0000062d,0x00000628,0x0000062c,0x0003003e,0x000005bf,0x0000062d,0x0004003d,0x00000006, + 0x0000062e,0x000000f2,0x00050084,0x00000006,0x0000062f,0x0000062e,0x0000013e,0x00050080, + 0x00000006,0x00000630,0x0000062f,0x00000145,0x0004007c,0x00000013,0x00000631,0x00000630, + 0x0004003d,0x00000006,0x00000632,0x000000f3,0x00050084,0x00000006,0x00000633,0x00000632, + 0x0000013e,0x00050080,0x00000006,0x00000634,0x00000633,0x00000145,0x0004007c,0x00000013, + 0x00000635,0x00000634,0x00050050,0x0000002e,0x00000636,0x00000631,0x00000635,0x0003003e, + 0x000005c9,0x00000636,0x0004003d,0x0000002e,0x00000638,0x000005bf,0x0004007c,0x00000029, + 0x00000639,0x00000638,0x0003003e,0x0000063a,0x00000639,0x0004003d,0x00000006,0x0000063c, + 0x000000f5,0x0003003e,0x0000063b,0x0000063c,0x00060039,0x0000004a,0x0000063d,0x000000b4, + 0x0000063a,0x0000063b,0x0003003e,0x00000637,0x0000063d,0x0004003d,0x0000002e,0x0000063f, + 0x000005c9,0x0003003e,0x0000063e,0x0000063f,0x0004003d,0x0000004a,0x00000641,0x00000637, + 0x0003003e,0x00000640,0x00000641,0x0003003e,0x00000642,0x000005da,0x0004003d,0x00000006, + 0x00000644,0x000000f5,0x0003003e,0x00000643,0x00000644,0x00080039,0x00000002,0x00000645, + 0x0000008e,0x0000063e,0x00000640,0x00000642,0x00000643,0x0004003d,0x00000006,0x00000646, + 0x000000f4,0x000500b2,0x0000009d,0x00000648,0x00000646,0x00000647,0x000300f7,0x0000064a, + 0x00000000,0x000400fa,0x00000648,0x00000649,0x0000064a,0x000200f8,0x00000649,0x000100fd, + 0x000200f8,0x0000064a,0x0004003d,0x0000004a,0x0000064e,0x000005d3,0x0003003e,0x0000064d, + 0x0000064e,0x0004003d,0x0000004a,0x00000650,0x000005f5,0x0003003e,0x0000064f,0x00000650, + 0x0004003d,0x0000004a,0x00000652,0x00000616,0x0003003e,0x00000651,0x00000652,0x0004003d, + 0x0000004a,0x00000654,0x00000637,0x0003003e,0x00000653,0x00000654,0x00080039,0x0000004a, + 0x00000655,0x00000087,0x0000064d,0x0000064f,0x00000651,0x00000653,0x0003003e,0x0000064c, + 0x00000655,0x0004003d,0x00000006,0x00000656,0x000000f2,0x0004007c,0x00000013,0x00000657, + 0x00000656,0x0004003d,0x00000006,0x00000658,0x000000f3,0x0004007c,0x00000013,0x00000659, + 0x00000658,0x00050050,0x0000002e,0x0000065a,0x00000657,0x00000659,0x0003003e,0x0000065b, + 0x0000065a,0x0004003d,0x0000004a,0x0000065d,0x0000064c,0x0003003e,0x0000065c,0x0000065d, + 0x0003003e,0x0000065e,0x00000647,0x0004003d,0x00000006,0x00000660,0x000000f5,0x0003003e, + 0x0000065f,0x00000660,0x00080039,0x00000002,0x00000661,0x0000008e,0x0000065b,0x0000065c, + 0x0000065e,0x0000065f,0x0004003d,0x00000006,0x00000663,0x000000f2,0x0003003e,0x00000662, + 0x00000663,0x0004003d,0x00000006,0x00000665,0x000000f3,0x0003003e,0x00000664,0x00000665, + 0x0004003d,0x0000004a,0x00000667,0x0000064c,0x0003003e,0x00000666,0x00000667,0x00070039, + 0x00000002,0x00000668,0x00000099,0x00000662,0x00000664,0x00000666,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000100,0x00000000,0x000000f8,0x00030037,0x00000007,0x000000f9, + 0x00030037,0x00000007,0x000000fa,0x00030037,0x000000a8,0x000000fb,0x00030037,0x00000007, + 0x000000fc,0x00030037,0x00000007,0x000000fd,0x00030037,0x00000007,0x000000fe,0x00030037, + 0x00000007,0x000000ff,0x000200f8,0x00000101,0x0004003b,0x00000007,0x00000670,0x00000007, + 0x0004003b,0x00000007,0x00000672,0x00000007,0x0004003b,0x000000a8,0x00000674,0x00000007, + 0x0004003b,0x00000007,0x00000676,0x00000007,0x0004003b,0x00000007,0x00000678,0x00000007, + 0x0004003b,0x00000007,0x0000067a,0x00000007,0x0004003b,0x00000007,0x00000687,0x00000007, + 0x0004003b,0x00000007,0x00000689,0x00000007,0x0004003b,0x000000a8,0x0000068b,0x00000007, + 0x0004003b,0x00000007,0x0000068d,0x00000007,0x0004003b,0x00000007,0x0000068f,0x00000007, + 0x0004003b,0x00000007,0x00000690,0x00000007,0x0004003b,0x00000007,0x0000069d,0x00000007, + 0x0004003b,0x00000007,0x0000069f,0x00000007,0x0004003b,0x000000a8,0x000006a1,0x00000007, + 0x0004003b,0x00000007,0x000006a3,0x00000007,0x0004003b,0x00000007,0x000006a5,0x00000007, + 0x0004003b,0x00000007,0x000006a6,0x00000007,0x0004003b,0x000000a8,0x000006b3,0x00000007, + 0x0004003b,0x00000007,0x000006b5,0x00000007,0x0004003b,0x00000007,0x000006b7,0x00000007, + 0x0004003b,0x00000007,0x000006b8,0x00000007,0x0004003d,0x00000006,0x00000669,0x000000fe, + 0x0004003d,0x00000006,0x0000066a,0x000000fd,0x000500b2,0x0000009d,0x0000066b,0x00000669, + 0x0000066a,0x000300f7,0x0000066d,0x00000000,0x000400fa,0x0000066b,0x0000066c,0x0000066d, + 0x000200f8,0x0000066c,0x000100fd,0x000200f8,0x0000066d,0x00040039,0x00000002,0x0000066f, + 0x0000009b,0x0004003d,0x00000006,0x00000671,0x000000f9,0x0003003e,0x00000670,0x00000671, + 0x0004003d,0x00000006,0x00000673,0x000000fa,0x0003003e,0x00000672,0x00000673,0x0004003d, + 0x00000029,0x00000675,0x000000fb,0x0003003e,0x00000674,0x00000675,0x0004003d,0x00000006, + 0x00000677,0x000000fc,0x0003003e,0x00000676,0x00000677,0x0004003d,0x00000006,0x00000679, + 0x000000fd,0x0003003e,0x00000678,0x00000679,0x0004003d,0x00000006,0x0000067b,0x000000ff, + 0x0003003e,0x0000067a,0x0000067b,0x000a0039,0x00000002,0x0000067c,0x000000d8,0x00000670, + 0x00000672,0x00000674,0x00000676,0x00000678,0x0000067a,0x0004003d,0x00000006,0x0000067d, + 0x000000fe,0x0004003d,0x00000006,0x0000067e,0x000000fd,0x00050080,0x00000006,0x0000067f, + 0x0000067e,0x00000145,0x000500b2,0x0000009d,0x00000680,0x0000067d,0x0000067f,0x000300f7, + 0x00000682,0x00000000,0x000400fa,0x00000680,0x00000681,0x00000682,0x000200f8,0x00000681, + 0x000100fd,0x000200f8,0x00000682,0x00040039,0x00000002,0x00000684,0x0000009b,0x0004003d, + 0x00000006,0x00000685,0x000000fd,0x00050080,0x00000006,0x00000686,0x00000685,0x00000145, + 0x0004003d,0x00000006,0x00000688,0x000000f9,0x0003003e,0x00000687,0x00000688,0x0004003d, + 0x00000006,0x0000068a,0x000000fa,0x0003003e,0x00000689,0x0000068a,0x0004003d,0x00000029, + 0x0000068c,0x000000fb,0x0003003e,0x0000068b,0x0000068c,0x0004003d,0x00000006,0x0000068e, + 0x000000fc,0x0003003e,0x0000068d,0x0000068e,0x0003003e,0x0000068f,0x00000686,0x0004003d, + 0x00000006,0x00000691,0x000000ff,0x0003003e,0x00000690,0x00000691,0x000a0039,0x00000002, + 0x00000692,0x000000e0,0x00000687,0x00000689,0x0000068b,0x0000068d,0x0000068f,0x00000690, + 0x0004003d,0x00000006,0x00000693,0x000000fe,0x0004003d,0x00000006,0x00000694,0x000000fd, + 0x00050080,0x00000006,0x00000695,0x00000694,0x0000013e,0x000500b2,0x0000009d,0x00000696, + 0x00000693,0x00000695,0x000300f7,0x00000698,0x00000000,0x000400fa,0x00000696,0x00000697, + 0x00000698,0x000200f8,0x00000697,0x000100fd,0x000200f8,0x00000698,0x00040039,0x00000002, + 0x0000069a,0x0000009b,0x0004003d,0x00000006,0x0000069b,0x000000fd,0x00050080,0x00000006, + 0x0000069c,0x0000069b,0x0000013e,0x0004003d,0x00000006,0x0000069e,0x000000f9,0x0003003e, + 0x0000069d,0x0000069e,0x0004003d,0x00000006,0x000006a0,0x000000fa,0x0003003e,0x0000069f, + 0x000006a0,0x0004003d,0x00000029,0x000006a2,0x000000fb,0x0003003e,0x000006a1,0x000006a2, + 0x0004003d,0x00000006,0x000006a4,0x000000fc,0x0003003e,0x000006a3,0x000006a4,0x0003003e, + 0x000006a5,0x0000069c,0x0004003d,0x00000006,0x000006a7,0x000000ff,0x0003003e,0x000006a6, + 0x000006a7,0x000a0039,0x00000002,0x000006a8,0x000000e8,0x0000069d,0x0000069f,0x000006a1, + 0x000006a3,0x000006a5,0x000006a6,0x0004003d,0x00000006,0x000006a9,0x000000fe,0x0004003d, + 0x00000006,0x000006aa,0x000000fd,0x00050080,0x00000006,0x000006ab,0x000006aa,0x0000013f, + 0x000500b2,0x0000009d,0x000006ac,0x000006a9,0x000006ab,0x000300f7,0x000006ae,0x00000000, + 0x000400fa,0x000006ac,0x000006ad,0x000006ae,0x000200f8,0x000006ad,0x000100fd,0x000200f8, + 0x000006ae,0x00040039,0x00000002,0x000006b0,0x0000009b,0x0004003d,0x00000006,0x000006b1, + 0x000000fd,0x00050080,0x00000006,0x000006b2,0x000006b1,0x0000013f,0x0004003d,0x00000029, + 0x000006b4,0x000000fb,0x0003003e,0x000006b3,0x000006b4,0x0004003d,0x00000006,0x000006b6, + 0x000000fc,0x0003003e,0x000006b5,0x000006b6,0x0003003e,0x000006b7,0x000006b2,0x0004003d, + 0x00000006,0x000006b9,0x000000ff,0x0003003e,0x000006b8,0x000006b9,0x00080039,0x00000002, + 0x000006ba,0x000000ef,0x000006b3,0x000006b5,0x000006b7,0x000006b8,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000108,0x00000000,0x00000102,0x00030037,0x000000a8,0x00000103, + 0x00030037,0x00000007,0x00000104,0x00030037,0x00000007,0x00000105,0x00030037,0x00000007, + 0x00000106,0x00030037,0x00000007,0x00000107,0x000200f8,0x00000109,0x0004003b,0x000000a8, + 0x000006bb,0x00000007,0x0004003b,0x00000007,0x000006be,0x00000007,0x0004003b,0x00000007, + 0x000006c0,0x00000007,0x0004003b,0x00000007,0x000006c9,0x00000007,0x0004003b,0x00000007, + 0x000006d1,0x00000007,0x0004003b,0x00000007,0x000006d3,0x00000007,0x0004003b,0x000000a8, + 0x000006d5,0x00000007,0x0004003b,0x00000007,0x000006d7,0x00000007,0x0004003b,0x00000007, + 0x000006d9,0x00000007,0x0004003b,0x00000007,0x000006db,0x00000007,0x0004003b,0x00000007, + 0x000006de,0x00000007,0x0004003b,0x00000007,0x000006e0,0x00000007,0x0004003b,0x000000a8, + 0x000006e2,0x00000007,0x0004003b,0x00000007,0x000006e4,0x00000007,0x0004003b,0x00000007, + 0x000006e6,0x00000007,0x0004003b,0x00000007,0x000006e7,0x00000007,0x0004003b,0x00000007, + 0x000006e9,0x00000007,0x0004003b,0x00000007,0x000006f1,0x00000007,0x0004003b,0x00000007, + 0x000006f3,0x00000007,0x0004003b,0x00000007,0x000006f5,0x00000007,0x0004003b,0x00000007, + 0x000006fb,0x00000007,0x0004003b,0x00000007,0x000006fe,0x00000007,0x0004003b,0x00000007, + 0x00000700,0x00000007,0x0004003b,0x00000007,0x00000702,0x00000007,0x0004003b,0x00000007, + 0x00000704,0x00000007,0x0004003b,0x00000007,0x00000707,0x00000007,0x0004003b,0x00000007, + 0x00000709,0x00000007,0x0004003b,0x000000a8,0x0000070b,0x00000007,0x0004003b,0x00000007, + 0x0000070c,0x00000007,0x0004003b,0x00000007,0x0000070e,0x00000007,0x0004003b,0x00000007, + 0x0000070f,0x00000007,0x0004003b,0x00000007,0x00000711,0x00000007,0x0004003d,0x00000006, + 0x000006bc,0x00000104,0x00050089,0x00000006,0x000006bd,0x000006bc,0x000003bb,0x0003003e, + 0x000006be,0x000006bd,0x00050039,0x00000029,0x000006bf,0x0000002c,0x000006be,0x0003003e, + 0x000006bb,0x000006bf,0x00050041,0x00000007,0x000006c1,0x000006bb,0x00000183,0x0004003d, + 0x00000006,0x000006c2,0x000006c1,0x0004003d,0x00000006,0x000006c3,0x00000104,0x000500c2, + 0x00000006,0x000006c5,0x000006c3,0x000006c4,0x00050089,0x00000006,0x000006c6,0x000006c5, + 0x0000013e,0x00050084,0x00000006,0x000006c7,0x000004a3,0x000006c6,0x00050080,0x00000006, + 0x000006c8,0x000006c2,0x000006c7,0x0003003e,0x000006c0,0x000006c8,0x00050041,0x00000007, + 0x000006ca,0x000006bb,0x00000145,0x0004003d,0x00000006,0x000006cb,0x000006ca,0x0004003d, + 0x00000006,0x000006cc,0x00000104,0x000500c2,0x00000006,0x000006ce,0x000006cc,0x000006cd, + 0x00050084,0x00000006,0x000006cf,0x000004a3,0x000006ce,0x00050080,0x00000006,0x000006d0, + 0x000006cb,0x000006cf,0x0003003e,0x000006c9,0x000006d0,0x0004003d,0x00000006,0x000006d2, + 0x000006c0,0x0003003e,0x000006d1,0x000006d2,0x0004003d,0x00000006,0x000006d4,0x000006c9, + 0x0003003e,0x000006d3,0x000006d4,0x0004003d,0x00000029,0x000006d6,0x00000103,0x0003003e, + 0x000006d5,0x000006d6,0x0004003d,0x00000006,0x000006d8,0x00000104,0x0003003e,0x000006d7, + 0x000006d8,0x0004003d,0x00000006,0x000006da,0x00000105,0x0003003e,0x000006d9,0x000006da, + 0x0004003d,0x00000006,0x000006dc,0x00000107,0x0003003e,0x000006db,0x000006dc,0x000a0039, + 0x00000002,0x000006dd,0x000000d0,0x000006d1,0x000006d3,0x000006d5,0x000006d7,0x000006d9, + 0x000006db,0x0004003d,0x00000006,0x000006df,0x000006c0,0x0003003e,0x000006de,0x000006df, + 0x0004003d,0x00000006,0x000006e1,0x000006c9,0x0003003e,0x000006e0,0x000006e1,0x0004003d, + 0x00000029,0x000006e3,0x00000103,0x0003003e,0x000006e2,0x000006e3,0x0004003d,0x00000006, + 0x000006e5,0x00000104,0x0003003e,0x000006e4,0x000006e5,0x0003003e,0x000006e6,0x0000013e, + 0x0004003d,0x00000006,0x000006e8,0x00000105,0x0003003e,0x000006e7,0x000006e8,0x0004003d, + 0x00000006,0x000006ea,0x00000107,0x0003003e,0x000006e9,0x000006ea,0x000b0039,0x00000002, + 0x000006eb,0x00000100,0x000006de,0x000006e0,0x000006e2,0x000006e4,0x000006e6,0x000006e7, + 0x000006e9,0x0004003d,0x00000006,0x000006ec,0x00000105,0x000500b2,0x0000009d,0x000006ed, + 0x000006ec,0x000005da,0x000300f7,0x000006ef,0x00000000,0x000400fa,0x000006ed,0x000006ee, + 0x000006ef,0x000200f8,0x000006ee,0x000100fd,0x000200f8,0x000006ef,0x0004003d,0x00000006, + 0x000006f2,0x00000106,0x0003003e,0x000006f1,0x000006f2,0x0004003d,0x00000006,0x000006f4, + 0x00000104,0x0003003e,0x000006f3,0x000006f4,0x0004003d,0x00000006,0x000006f6,0x00000107, + 0x0003003e,0x000006f5,0x000006f6,0x00070039,0x0000009d,0x000006f7,0x000000a2,0x000006f1, + 0x000006f3,0x000006f5,0x000300f7,0x000006f9,0x00000000,0x000400fa,0x000006f7,0x000006f8, + 0x000006f9,0x000200f8,0x000006f8,0x000100fd,0x000200f8,0x000006f9,0x0004003d,0x00000006, + 0x000006fc,0x00000107,0x0003003e,0x000006fb,0x000006fc,0x00050039,0x00000002,0x000006fd, + 0x00000076,0x000006fb,0x0004003d,0x00000006,0x000006ff,0x000006c0,0x0003003e,0x000006fe, + 0x000006ff,0x0004003d,0x00000006,0x00000701,0x000006c9,0x0003003e,0x00000700,0x00000701, + 0x0004003d,0x00000006,0x00000703,0x00000105,0x0003003e,0x00000702,0x00000703,0x0004003d, + 0x00000006,0x00000705,0x00000107,0x0003003e,0x00000704,0x00000705,0x00080039,0x00000002, + 0x00000706,0x000000f6,0x000006fe,0x00000700,0x00000702,0x00000704,0x0004003d,0x00000006, + 0x00000708,0x000006c0,0x0003003e,0x00000707,0x00000708,0x0004003d,0x00000006,0x0000070a, + 0x000006c9,0x0003003e,0x00000709,0x0000070a,0x0003003e,0x0000070b,0x00000369,0x0004003d, + 0x00000006,0x0000070d,0x00000104,0x0003003e,0x0000070c,0x0000070d,0x0003003e,0x0000070e, + 0x000004a3,0x0004003d,0x00000006,0x00000710,0x00000105,0x0003003e,0x0000070f,0x00000710, + 0x0004003d,0x00000006,0x00000712,0x00000107,0x0003003e,0x00000711,0x00000712,0x000b0039, + 0x00000002,0x00000713,0x00000100,0x00000707,0x00000709,0x0000070b,0x0000070c,0x0000070e, + 0x0000070f,0x00000711,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000111,0x00000000, + 0x0000010a,0x00030037,0x000000a8,0x0000010b,0x00030037,0x00000007,0x0000010c,0x00030037, + 0x00000007,0x0000010d,0x00030037,0x00000007,0x0000010e,0x00030037,0x00000007,0x0000010f, + 0x00030037,0x000000a8,0x00000110,0x000200f8,0x00000112,0x0004003b,0x000000a8,0x00000717, + 0x00000007,0x0004003b,0x00000007,0x00000718,0x00000007,0x0004003b,0x00000007,0x0000071a, + 0x00000007,0x0004003b,0x00000007,0x0000071c,0x00000007,0x0004003b,0x00000007,0x0000071e, + 0x00000007,0x0004003d,0x00000029,0x00000714,0x0000010b,0x0004003d,0x00000029,0x00000715, + 0x00000110,0x00050080,0x00000029,0x00000716,0x00000714,0x00000715,0x0003003e,0x00000717, + 0x00000716,0x0004003d,0x00000006,0x00000719,0x0000010c,0x0003003e,0x00000718,0x00000719, + 0x0004003d,0x00000006,0x0000071b,0x0000010d,0x0003003e,0x0000071a,0x0000071b,0x0004003d, + 0x00000006,0x0000071d,0x0000010e,0x0003003e,0x0000071c,0x0000071d,0x0004003d,0x00000006, + 0x0000071f,0x0000010f,0x0003003e,0x0000071e,0x0000071f,0x00090039,0x00000002,0x00000720, + 0x00000108,0x00000717,0x00000718,0x0000071a,0x0000071c,0x0000071e,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000118,0x00000000,0x00000115,0x00030037,0x00000114,0x00000116, + 0x00030037,0x00000007,0x00000117,0x000200f8,0x00000119,0x0004003b,0x000000a8,0x00000729, + 0x00000007,0x0004003b,0x00000007,0x0000072a,0x00000007,0x0004003b,0x00000007,0x0000072b, + 0x00000007,0x0004003b,0x00000007,0x0000072c,0x00000007,0x0004003b,0x00000007,0x0000072d, + 0x00000007,0x0004003b,0x000000a8,0x0000072e,0x00000007,0x0004003d,0x00000113,0x00000721, + 0x00000116,0x0007004f,0x00000029,0x00000722,0x00000721,0x00000721,0x00000000,0x00000001, + 0x0004003d,0x00000006,0x00000723,0x00000117,0x00040039,0x00000006,0x00000724,0x00000036, + 0x00040039,0x00000006,0x00000725,0x00000038,0x00050041,0x00000007,0x00000726,0x00000116, + 0x0000013e,0x0004003d,0x00000006,0x00000727,0x00000726,0x00040039,0x00000029,0x00000728, + 0x0000003b,0x0003003e,0x00000729,0x00000722,0x0003003e,0x0000072a,0x00000723,0x0003003e, + 0x0000072b,0x00000724,0x0003003e,0x0000072c,0x00000725,0x0003003e,0x0000072d,0x00000727, + 0x0003003e,0x0000072e,0x00000728,0x000a0039,0x00000002,0x0000072f,0x00000111,0x00000729, + 0x0000072a,0x0000072b,0x0000072c,0x0000072d,0x0000072e,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h b/gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h new file mode 100644 index 000000000..62fd5bf40 --- /dev/null +++ b/gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h @@ -0,0 +1,1567 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_LUMA_PYRAMID_NOWAVE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000787,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000771, + 0x00000773,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c, + 0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000, + 0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b, + 0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e, + 0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005, + 0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962,0x00000000,0x00060005,0x00000018, + 0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005, + 0x00000017,0x00000079,0x00060005,0x0000001f,0x4d786666,0x66287861,0x31663b31,0x0000003b, + 0x00030005,0x0000001d,0x00000078,0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023, + 0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005, + 0x00000022,0x00000079,0x00060005,0x00000027,0x50786666,0x6628776f,0x31663b31,0x0000003b, + 0x00030005,0x00000025,0x00000078,0x00030005,0x00000026,0x00000079,0x000a0005,0x0000002c, + 0x52786666,0x70616d65,0x57726f46,0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000, + 0x00030005,0x0000002b,0x00000061,0x00050005,0x00000030,0x646e6552,0x69537265,0x0028657a, + 0x00050005,0x00000033,0x746c6544,0x6d695461,0x00002865,0x00050005,0x00000036,0x4370694d, + 0x746e756f,0x00000028,0x00060005,0x00000038,0x576d754e,0x476b726f,0x70756f72,0x00002873, + 0x00070005,0x0000003b,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000,0x00080005, + 0x00000040,0x64616f4c,0x74726146,0x74736568,0x74706544,0x69762868,0x00003b32,0x00040005, + 0x0000003f,0x50785069,0x0000736f,0x000a0005,0x00000045,0x726f7453,0x72614665,0x73656874, + 0x70654474,0x694d6874,0x76283170,0x663b3269,0x00003b31,0x00040005,0x00000043,0x50785069, + 0x0000736f,0x00040005,0x00000044,0x70654466,0x00006874,0x00080005,0x00000048,0x64616f4c, + 0x72727543,0x4c746e65,0x28616d75,0x3b326976,0x00000000,0x00040005,0x00000047,0x50785069, + 0x0000736f,0x00060005,0x0000004c,0x64616f4c,0x6d617246,0x666e4965,0x0000286f,0x00070005, + 0x00000051,0x726f7453,0x61724665,0x6e49656d,0x76286f66,0x003b3466,0x00040005,0x00000050, + 0x666e4966,0x0000006f,0x00080005,0x00000057,0x6f4c5752,0x79506461,0x696d6172,0x69762864, + 0x31753b32,0x0000003b,0x00040005,0x00000055,0x50785069,0x0000736f,0x00040005,0x00000056, + 0x65646e69,0x00000078,0x00090005,0x0000005e,0x726f7453,0x72795065,0x64696d61,0x32697628, + 0x3266763b,0x3b31753b,0x00000000,0x00040005,0x0000005b,0x50785069,0x0000736f,0x00050005, + 0x0000005c,0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000005d,0x65646e69,0x00000078, + 0x000a0005,0x00000062,0x5f445053,0x72636e49,0x65736165,0x6d6f7441,0x6f436369,0x65746e75, + 0x31752872,0x0000003b,0x00050005,0x00000061,0x43647073,0x746e756f,0x00007265,0x00080005, + 0x00000064,0x5f445053,0x65736552,0x6f744174,0x4363696d,0x746e756f,0x00287265,0x00080005, + 0x0000006a,0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005, + 0x00000067,0x53785069,0x6c706d61,0x00000065,0x00050005,0x00000068,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x00000069,0x78655469,0x65727574,0x657a6953,0x00000000,0x000a0005, + 0x0000006e,0x706d6f43,0x41657475,0x456f7475,0x736f7078,0x46657275,0x4c6d6f72,0x28677661, + 0x003b3166,0x00040005,0x0000006d,0x6776614c,0x00000000,0x000a0005,0x00000071,0x49647053, + 0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005, + 0x00000070,0x63696c73,0x00000065,0x00080005,0x00000073,0x47647053,0x74417465,0x63696d6f, + 0x6e756f43,0x28726574,0x00000000,0x00090005,0x00000076,0x52647053,0x74657365,0x6d6f7441, + 0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000075,0x63696c73,0x00000065, + 0x00090005,0x0000007b,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266, + 0x00003b31,0x00040005,0x00000079,0x50785069,0x0000736f,0x00040005,0x0000007a,0x63696c73, + 0x00000065,0x00060005,0x00000080,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005, + 0x0000007e,0x00786574,0x00040005,0x0000007f,0x63696c73,0x00000065,0x00090005,0x00000087, + 0x52647053,0x63756465,0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005, + 0x00000083,0x00003076,0x00030005,0x00000084,0x00003176,0x00030005,0x00000085,0x00003276, + 0x00030005,0x00000086,0x00003376,0x00080005,0x0000008e,0x53647053,0x65726f74,0x32697628, + 0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x0000008a,0x00786970,0x00050005,0x0000008b, + 0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000008c,0x65646e69,0x00000078,0x00040005, + 0x0000008d,0x63696c73,0x00000065,0x00090005,0x00000093,0x4c647053,0x4964616f,0x7265746e, + 0x6964656d,0x28657461,0x753b3175,0x00003b31,0x00030005,0x00000091,0x00000078,0x00030005, + 0x00000092,0x00000079,0x000a0005,0x00000099,0x53647053,0x65726f74,0x65746e49,0x64656d72, + 0x65746169,0x3b317528,0x763b3175,0x003b3466,0x00030005,0x00000096,0x00000078,0x00030005, + 0x00000097,0x00000079,0x00040005,0x00000098,0x756c6176,0x00000065,0x000a0005,0x0000009b, + 0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c,0x65697272,0x00002872, + 0x00090005,0x000000a2,0x45647053,0x57746978,0x676b726f,0x70756f72,0x3b317528,0x753b3175, + 0x00003b31,0x00060005,0x0000009f,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00080005, + 0x000000a0,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005, + 0x000000a1,0x63696c73,0x00000065,0x000c0005,0x000000aa,0x52647053,0x63756465,0x746e4965, + 0x656d7265,0x74616964,0x75762865,0x75763b32,0x75763b32,0x75763b32,0x00003b32,0x00030005, + 0x000000a6,0x00003069,0x00030005,0x000000a7,0x00003169,0x00030005,0x000000a8,0x00003269, + 0x00030005,0x000000a9,0x00003369,0x000b0005,0x000000b2,0x52647053,0x63756465,0x616f4c65, + 0x76283464,0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x000000ad, + 0x00003069,0x00030005,0x000000ae,0x00003169,0x00030005,0x000000af,0x00003269,0x00030005, + 0x000000b0,0x00003369,0x00040005,0x000000b1,0x63696c73,0x00000065,0x00080005,0x000000b7, + 0x52647053,0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x000000b5, + 0x65736162,0x00000000,0x00040005,0x000000b6,0x63696c73,0x00000065,0x000e0005,0x000000be, + 0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32, + 0x75763b32,0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000b9,0x00003069,0x00030005, + 0x000000ba,0x00003169,0x00030005,0x000000bb,0x00003269,0x00030005,0x000000bc,0x00003369, + 0x00040005,0x000000bd,0x63696c73,0x00000065,0x000b0005,0x000000c2,0x52647053,0x63756465, + 0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005, + 0x000000c0,0x65736162,0x00000000,0x00040005,0x000000c1,0x63696c73,0x00000065,0x000e0005, + 0x000000cb,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x444c5f31,0x31752853, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000c5,0x00000078, + 0x00030005,0x000000c6,0x00000079,0x00050005,0x000000c7,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000c8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000c9,0x0070696d,0x00040005,0x000000ca,0x63696c73,0x00000065,0x000d0005, + 0x000000d3,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b, + 0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000cd,0x00000078,0x00030005, + 0x000000ce,0x00000079,0x00050005,0x000000cf,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000d0,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000d1,0x0070696d,0x00040005,0x000000d2,0x63696c73,0x00000065,0x000c0005,0x000000db, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000d5,0x00000078,0x00030005,0x000000d6,0x00000079, + 0x00050005,0x000000d7,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000d8,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000d9,0x0070696d, + 0x00040005,0x000000da,0x63696c73,0x00000065,0x000c0005,0x000000e3,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000dd,0x00000078,0x00030005,0x000000de,0x00000079,0x00050005,0x000000df, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000e0,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000e1,0x0070696d,0x00040005,0x000000e2, + 0x63696c73,0x00000065,0x000c0005,0x000000eb,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000e5, + 0x00000078,0x00030005,0x000000e6,0x00000079,0x00050005,0x000000e7,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000e8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000e9,0x0070696d,0x00040005,0x000000ea,0x63696c73,0x00000065, + 0x000b0005,0x000000f2,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00050005,0x000000ee,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000ef,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000f0,0x0070696d,0x00040005,0x000000f1,0x63696c73,0x00000065,0x000b0005, + 0x000000f9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x000000f5,0x00000078,0x00030005,0x000000f6,0x00000079, + 0x00040005,0x000000f7,0x7370696d,0x00000000,0x00040005,0x000000f8,0x63696c73,0x00000065, + 0x000e0005,0x00000103,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000fc, + 0x00000078,0x00030005,0x000000fd,0x00000079,0x00050005,0x000000fe,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000ff,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x00000100,0x65736162,0x0070694d,0x00040005,0x00000101,0x7370696d, + 0x00000000,0x00040005,0x00000102,0x63696c73,0x00000065,0x000a0005,0x0000010b,0x44647053, + 0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005, + 0x00000106,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000107,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000108,0x7370696d,0x00000000, + 0x00060005,0x00000109,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x0000010a, + 0x63696c73,0x00000065,0x000b0005,0x00000114,0x44647053,0x736e776f,0x6c706d61,0x75762865, + 0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x0000010e,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x0000010f,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x00000110,0x7370696d,0x00000000,0x00060005,0x00000111, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x00000112,0x63696c73,0x00000065, + 0x00060005,0x00000113,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00090005,0x0000011b, + 0x706d6f43,0x41657475,0x456f7475,0x736f7078,0x28657275,0x3b337576,0x003b3175,0x00050005, + 0x00000119,0x6b726f57,0x756f7247,0x00644970,0x00070005,0x0000011a,0x61636f4c,0x7268546c, + 0x49646165,0x7865646e,0x00000000,0x00040005,0x00000143,0x61726170,0x0000006d,0x00040005, + 0x00000145,0x61726170,0x0000006d,0x00040005,0x00000146,0x61726170,0x0000006d,0x00040005, + 0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005, + 0x0000014c,0x61726170,0x0000006d,0x00040005,0x0000014e,0x61726170,0x0000006d,0x00040005, + 0x00000150,0x61726170,0x0000006d,0x00040005,0x00000151,0x61726170,0x0000006d,0x00040005, + 0x00000153,0x61726170,0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d,0x00040005, + 0x00000156,0x61726170,0x0000006d,0x00040005,0x00000158,0x61726170,0x0000006d,0x00040005, + 0x00000159,0x61726170,0x0000006d,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00070005, + 0x0000015f,0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x0000015f, + 0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000015f,0x00000001,0x65725069, + 0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x0000015f, + 0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000015f,0x00000003, + 0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006, + 0x0000015f,0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x0000015f, + 0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000015f,0x00000006, + 0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000015f,0x00000007, + 0x74694a66,0x00726574,0x00090006,0x0000015f,0x00000008,0x65725066,0x756f6976,0x61724673, + 0x694a656d,0x72657474,0x00000000,0x00080006,0x0000015f,0x00000009,0x746f4d66,0x566e6f69, + 0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000015f,0x0000000a,0x776f4466,0x6163736e, + 0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000015f,0x0000000b,0x746f4d66,0x566e6f69, + 0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x0000015f, + 0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000015f,0x0000000d,0x74694a66, + 0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000015f,0x0000000e, + 0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000015f,0x0000000f,0x6c654466,0x72506174, + 0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000015f,0x00000010,0x65695666,0x61705377, + 0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000015f,0x00000011, + 0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000015f,0x00000012,0x6c655666,0x7469636f, + 0x63614679,0x00726f74,0x00080006,0x0000015f,0x00000013,0x61655266,0x76697463,0x73656e65, + 0x61635373,0x0000656c,0x00080006,0x0000015f,0x00000014,0x61685366,0x676e6964,0x6e616843, + 0x63536567,0x00656c61,0x000a0006,0x0000015f,0x00000015,0x63634166,0x6c756d75,0x6f697461, + 0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000015f,0x00000016,0x6e694d66, + 0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005, + 0x00000161,0x53466263,0x70553352,0x6c616373,0x00007265,0x00040005,0x0000016d,0x50536263, + 0x00745f44,0x00050006,0x0000016d,0x00000000,0x7370696d,0x00000000,0x00070006,0x0000016d, + 0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00070006,0x0000016d,0x00000002, + 0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00060006,0x0000016d,0x00000003,0x646e6572, + 0x69537265,0x0000657a,0x00040005,0x0000016f,0x50536263,0x00000044,0x00070005,0x00000182, + 0x61665f72,0x65687472,0x645f7473,0x68747065,0x00000000,0x00080005,0x0000018c,0x665f7772, + 0x68747261,0x5f747365,0x74706564,0x696d5f68,0x00003170,0x00060005,0x00000192,0x75635f72, + 0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x0000019b,0x665f7772,0x656d6172,0x666e695f, + 0x0000006f,0x00050005,0x000001a9,0x735f7772,0x6d5f6470,0x00307069,0x00050005,0x000001b3, + 0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001bd,0x735f7772,0x6d5f6470,0x00327069, + 0x00050005,0x000001c7,0x735f7772,0x6d5f6470,0x00337069,0x00050005,0x000001d2,0x735f7772, + 0x6d5f6470,0x00347069,0x00050005,0x000001dd,0x735f7772,0x6d5f6470,0x00357069,0x00080005, + 0x00000224,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f,0x00000000,0x00040005, + 0x0000022b,0x75736572,0x0000746c,0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005, + 0x00000235,0x61726170,0x0000006d,0x00040005,0x00000237,0x61726170,0x0000006d,0x00040005, + 0x00000238,0x61726170,0x0000006d,0x00040005,0x0000023e,0x61726170,0x0000006d,0x00040005, + 0x00000241,0x61726170,0x0000006d,0x00040005,0x00000243,0x61726170,0x0000006d,0x00040005, + 0x00000244,0x61726170,0x0000006d,0x00060005,0x0000024c,0x6f707845,0x65727573,0x314f5349, + 0x00003030,0x00040005,0x00000253,0x78616d4c,0x00000000,0x00040005,0x00000256,0x61726170, + 0x0000006d,0x00040005,0x00000257,0x61726170,0x0000006d,0x00050005,0x00000261,0x43647073, + 0x746e756f,0x00007265,0x00040005,0x00000262,0x61726170,0x0000006d,0x00060005,0x0000026a, + 0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005,0x0000026e,0x61726170,0x0000006d, + 0x00040005,0x0000026f,0x61726170,0x0000006d,0x00040005,0x00000270,0x61726170,0x0000006d, + 0x00040005,0x00000272,0x6d754c66,0x00000061,0x00040005,0x00000273,0x61726170,0x0000006d, + 0x00050005,0x00000276,0x676f4c66,0x616d754c,0x00000000,0x00040005,0x0000027a,0x61726170, + 0x0000006d,0x00040005,0x0000027b,0x61726170,0x0000006d,0x00080005,0x0000027d,0x72614666, + 0x73656874,0x70654474,0x6e496874,0x6574654d,0x00007372,0x00040005,0x0000027e,0x61726170, + 0x0000006d,0x00040005,0x00000281,0x74754f66,0x00747570,0x00040005,0x0000028c,0x61726170, + 0x0000006d,0x00040005,0x0000028e,0x61726170,0x0000006d,0x00040005,0x000002a4,0x61726170, + 0x0000006d,0x00040005,0x000002a6,0x61726170,0x0000006d,0x00040005,0x000002a9,0x61726170, + 0x0000006d,0x00040005,0x000002b1,0x61726170,0x0000006d,0x00040005,0x000002b3,0x61726170, + 0x0000006d,0x00050005,0x000002c3,0x6d617266,0x666e4965,0x0000006f,0x00060005,0x000002c5, + 0x65635366,0x7641656e,0x6d754c67,0x00000061,0x00060005,0x000002c8,0x65725066,0x676f4c76, + 0x616d754c,0x00000000,0x00050005,0x000002cb,0x676f4c66,0x616d754c,0x00000000,0x00040005, + 0x000002dd,0x61726170,0x0000006d,0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005, + 0x000002e1,0x61726170,0x0000006d,0x00040005,0x000002e9,0x61726170,0x0000006d,0x00070005, + 0x000002f0,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005,0x000002f6, + 0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000002fb,0x49647073, + 0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x00000300,0x49647073,0x7265746e, + 0x6964656d,0x41657461,0x00000000,0x00040005,0x00000322,0x61726170,0x0000006d,0x00030005, + 0x0000032c,0x00003076,0x00040005,0x0000032d,0x61726170,0x0000006d,0x00040005,0x00000330, + 0x61726170,0x0000006d,0x00030005,0x00000334,0x00003176,0x00040005,0x00000335,0x61726170, + 0x0000006d,0x00040005,0x00000338,0x61726170,0x0000006d,0x00030005,0x0000033c,0x00003276, + 0x00040005,0x0000033d,0x61726170,0x0000006d,0x00040005,0x00000340,0x61726170,0x0000006d, + 0x00030005,0x00000344,0x00003376,0x00040005,0x00000345,0x61726170,0x0000006d,0x00040005, + 0x00000348,0x61726170,0x0000006d,0x00040005,0x0000034c,0x61726170,0x0000006d,0x00040005, + 0x0000034e,0x61726170,0x0000006d,0x00040005,0x00000350,0x61726170,0x0000006d,0x00040005, + 0x00000352,0x61726170,0x0000006d,0x00030005,0x00000357,0x00003076,0x00040005,0x0000035a, + 0x61726170,0x0000006d,0x00040005,0x0000035b,0x61726170,0x0000006d,0x00030005,0x0000035e, + 0x00003176,0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000362,0x61726170, + 0x0000006d,0x00030005,0x00000365,0x00003276,0x00040005,0x00000368,0x61726170,0x0000006d, + 0x00040005,0x00000369,0x61726170,0x0000006d,0x00030005,0x0000036c,0x00003376,0x00040005, + 0x0000036f,0x61726170,0x0000006d,0x00040005,0x00000370,0x61726170,0x0000006d,0x00040005, + 0x00000373,0x61726170,0x0000006d,0x00040005,0x00000375,0x61726170,0x0000006d,0x00040005, + 0x00000377,0x61726170,0x0000006d,0x00040005,0x00000379,0x61726170,0x0000006d,0x00040005, + 0x0000038a,0x61726170,0x0000006d,0x00040005,0x0000038b,0x61726170,0x0000006d,0x00040005, + 0x0000038c,0x61726170,0x0000006d,0x00040005,0x0000038d,0x61726170,0x0000006d,0x00040005, + 0x0000038e,0x61726170,0x0000006d,0x00030005,0x00000393,0x00003076,0x00040005,0x00000397, + 0x61726170,0x0000006d,0x00040005,0x00000398,0x61726170,0x0000006d,0x00030005,0x0000039b, + 0x00003176,0x00040005,0x0000039f,0x61726170,0x0000006d,0x00040005,0x000003a0,0x61726170, + 0x0000006d,0x00030005,0x000003a3,0x00003276,0x00040005,0x000003a7,0x61726170,0x0000006d, + 0x00040005,0x000003a8,0x61726170,0x0000006d,0x00030005,0x000003ab,0x00003376,0x00040005, + 0x000003af,0x61726170,0x0000006d,0x00040005,0x000003b0,0x61726170,0x0000006d,0x00040005, + 0x000003b3,0x61726170,0x0000006d,0x00040005,0x000003b5,0x61726170,0x0000006d,0x00040005, + 0x000003b7,0x61726170,0x0000006d,0x00040005,0x000003b9,0x61726170,0x0000006d,0x00040005, + 0x000003c6,0x61726170,0x0000006d,0x00040005,0x000003c7,0x61726170,0x0000006d,0x00040005, + 0x000003c8,0x61726170,0x0000006d,0x00040005,0x000003c9,0x61726170,0x0000006d,0x00040005, + 0x000003ca,0x61726170,0x0000006d,0x00030005,0x000003cf,0x00786574,0x00030005,0x000003dd, + 0x00786970,0x00030005,0x000003eb,0x00000076,0x00040005,0x000003ee,0x61726170,0x0000006d, + 0x00040005,0x000003ef,0x61726170,0x0000006d,0x00040005,0x000003f3,0x61726170,0x0000006d, + 0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005,0x000003f8,0x61726170,0x0000006d, + 0x00040005,0x000003f9,0x61726170,0x0000006d,0x00040005,0x00000416,0x61726170,0x0000006d, + 0x00040005,0x00000417,0x61726170,0x0000006d,0x00040005,0x0000041b,0x61726170,0x0000006d, + 0x00040005,0x0000041d,0x61726170,0x0000006d,0x00040005,0x00000420,0x61726170,0x0000006d, + 0x00040005,0x00000421,0x61726170,0x0000006d,0x00040005,0x0000043e,0x61726170,0x0000006d, + 0x00040005,0x0000043f,0x61726170,0x0000006d,0x00040005,0x00000443,0x61726170,0x0000006d, + 0x00040005,0x00000445,0x61726170,0x0000006d,0x00040005,0x00000448,0x61726170,0x0000006d, + 0x00040005,0x00000449,0x61726170,0x0000006d,0x00040005,0x00000469,0x61726170,0x0000006d, + 0x00040005,0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046e,0x61726170,0x0000006d, + 0x00040005,0x00000470,0x61726170,0x0000006d,0x00040005,0x00000473,0x61726170,0x0000006d, + 0x00040005,0x00000474,0x61726170,0x0000006d,0x00030005,0x0000047c,0x00000069,0x00040005, + 0x00000485,0x61726170,0x0000006d,0x00040005,0x00000487,0x61726170,0x0000006d,0x00040005, + 0x00000489,0x61726170,0x0000006d,0x00040005,0x000004af,0x61726170,0x0000006d,0x00040005, + 0x000004b0,0x61726170,0x0000006d,0x00040005,0x000004b1,0x61726170,0x0000006d,0x00040005, + 0x000004b2,0x61726170,0x0000006d,0x00040005,0x000004c9,0x61726170,0x0000006d,0x00040005, + 0x000004ca,0x61726170,0x0000006d,0x00040005,0x000004cd,0x61726170,0x0000006d,0x00040005, + 0x000004ce,0x61726170,0x0000006d,0x00040005,0x000004dc,0x61726170,0x0000006d,0x00040005, + 0x000004dd,0x61726170,0x0000006d,0x00040005,0x000004de,0x61726170,0x0000006d,0x00040005, + 0x000004e6,0x61726170,0x0000006d,0x00040005,0x000004e7,0x61726170,0x0000006d,0x00040005, + 0x000004e8,0x61726170,0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d,0x00040005, + 0x000004f1,0x61726170,0x0000006d,0x00040005,0x000004f2,0x61726170,0x0000006d,0x00040005, + 0x000004fa,0x61726170,0x0000006d,0x00040005,0x000004fb,0x61726170,0x0000006d,0x00040005, + 0x000004fc,0x61726170,0x0000006d,0x00040005,0x00000500,0x61726170,0x0000006d,0x00040005, + 0x00000502,0x61726170,0x0000006d,0x00040005,0x00000504,0x61726170,0x0000006d,0x00040005, + 0x00000506,0x61726170,0x0000006d,0x00040005,0x00000508,0x61726170,0x0000006d,0x00040005, + 0x0000050a,0x61726170,0x0000006d,0x00030005,0x00000511,0x00000076,0x00040005,0x0000052e, + 0x61726170,0x0000006d,0x00040005,0x0000052f,0x61726170,0x0000006d,0x00040005,0x00000530, + 0x61726170,0x0000006d,0x00040005,0x00000531,0x61726170,0x0000006d,0x00040005,0x0000053d, + 0x61726170,0x0000006d,0x00040005,0x0000053e,0x61726170,0x0000006d,0x00040005,0x00000540, + 0x61726170,0x0000006d,0x00040005,0x00000542,0x61726170,0x0000006d,0x00040005,0x0000054c, + 0x61726170,0x0000006d,0x00040005,0x0000054d,0x61726170,0x0000006d,0x00040005,0x0000054e, + 0x61726170,0x0000006d,0x00030005,0x00000555,0x00000076,0x00040005,0x00000576,0x61726170, + 0x0000006d,0x00040005,0x00000577,0x61726170,0x0000006d,0x00040005,0x00000578,0x61726170, + 0x0000006d,0x00040005,0x00000579,0x61726170,0x0000006d,0x00040005,0x00000585,0x61726170, + 0x0000006d,0x00040005,0x00000586,0x61726170,0x0000006d,0x00040005,0x00000588,0x61726170, + 0x0000006d,0x00040005,0x0000058a,0x61726170,0x0000006d,0x00040005,0x00000593,0x61726170, + 0x0000006d,0x00040005,0x00000594,0x61726170,0x0000006d,0x00040005,0x00000595,0x61726170, + 0x0000006d,0x00030005,0x0000059c,0x00000076,0x00040005,0x000005c9,0x61726170,0x0000006d, + 0x00040005,0x000005ca,0x61726170,0x0000006d,0x00040005,0x000005cb,0x61726170,0x0000006d, + 0x00040005,0x000005cc,0x61726170,0x0000006d,0x00040005,0x000005d8,0x61726170,0x0000006d, + 0x00040005,0x000005d9,0x61726170,0x0000006d,0x00040005,0x000005db,0x61726170,0x0000006d, + 0x00040005,0x000005dd,0x61726170,0x0000006d,0x00040005,0x000005e4,0x61726170,0x0000006d, + 0x00040005,0x000005e5,0x61726170,0x0000006d,0x00040005,0x000005e6,0x61726170,0x0000006d, + 0x00030005,0x000005ed,0x00000076,0x00040005,0x000005f0,0x61726170,0x0000006d,0x00040005, + 0x000005f1,0x61726170,0x0000006d,0x00040005,0x000005f2,0x61726170,0x0000006d,0x00040005, + 0x000005f3,0x61726170,0x0000006d,0x00040005,0x000005f7,0x61726170,0x0000006d,0x00040005, + 0x000005f8,0x61726170,0x0000006d,0x00040005,0x000005fa,0x61726170,0x0000006d,0x00040005, + 0x000005fc,0x61726170,0x0000006d,0x00030005,0x000005ff,0x00786574,0x00030005,0x00000609, + 0x00786970,0x00030005,0x00000613,0x00003076,0x00040005,0x00000616,0x61726170,0x0000006d, + 0x00040005,0x00000617,0x61726170,0x0000006d,0x00040005,0x0000061b,0x61726170,0x0000006d, + 0x00040005,0x0000061d,0x61726170,0x0000006d,0x00040005,0x0000061f,0x61726170,0x0000006d, + 0x00040005,0x00000620,0x61726170,0x0000006d,0x00030005,0x00000635,0x00003176,0x00040005, + 0x00000638,0x61726170,0x0000006d,0x00040005,0x00000639,0x61726170,0x0000006d,0x00040005, + 0x0000063c,0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d,0x00040005, + 0x00000640,0x61726170,0x0000006d,0x00040005,0x00000641,0x61726170,0x0000006d,0x00030005, + 0x00000656,0x00003276,0x00040005,0x00000659,0x61726170,0x0000006d,0x00040005,0x0000065a, + 0x61726170,0x0000006d,0x00040005,0x0000065d,0x61726170,0x0000006d,0x00040005,0x0000065f, + 0x61726170,0x0000006d,0x00040005,0x00000661,0x61726170,0x0000006d,0x00040005,0x00000662, + 0x61726170,0x0000006d,0x00030005,0x00000677,0x00003376,0x00040005,0x0000067a,0x61726170, + 0x0000006d,0x00040005,0x0000067b,0x61726170,0x0000006d,0x00040005,0x0000067e,0x61726170, + 0x0000006d,0x00040005,0x00000680,0x61726170,0x0000006d,0x00040005,0x00000682,0x61726170, + 0x0000006d,0x00040005,0x00000683,0x61726170,0x0000006d,0x00030005,0x0000068c,0x00000076, + 0x00040005,0x0000068d,0x61726170,0x0000006d,0x00040005,0x0000068f,0x61726170,0x0000006d, + 0x00040005,0x00000691,0x61726170,0x0000006d,0x00040005,0x00000693,0x61726170,0x0000006d, + 0x00040005,0x0000069b,0x61726170,0x0000006d,0x00040005,0x0000069c,0x61726170,0x0000006d, + 0x00040005,0x0000069e,0x61726170,0x0000006d,0x00040005,0x0000069f,0x61726170,0x0000006d, + 0x00040005,0x000006a2,0x61726170,0x0000006d,0x00040005,0x000006a4,0x61726170,0x0000006d, + 0x00040005,0x000006a6,0x61726170,0x0000006d,0x00040005,0x000006b0,0x61726170,0x0000006d, + 0x00040005,0x000006b2,0x61726170,0x0000006d,0x00040005,0x000006b4,0x61726170,0x0000006d, + 0x00040005,0x000006b6,0x61726170,0x0000006d,0x00040005,0x000006b8,0x61726170,0x0000006d, + 0x00040005,0x000006ba,0x61726170,0x0000006d,0x00040005,0x000006c7,0x61726170,0x0000006d, + 0x00040005,0x000006c9,0x61726170,0x0000006d,0x00040005,0x000006cb,0x61726170,0x0000006d, + 0x00040005,0x000006cd,0x61726170,0x0000006d,0x00040005,0x000006cf,0x61726170,0x0000006d, + 0x00040005,0x000006d0,0x61726170,0x0000006d,0x00040005,0x000006dd,0x61726170,0x0000006d, + 0x00040005,0x000006df,0x61726170,0x0000006d,0x00040005,0x000006e1,0x61726170,0x0000006d, + 0x00040005,0x000006e3,0x61726170,0x0000006d,0x00040005,0x000006e5,0x61726170,0x0000006d, + 0x00040005,0x000006e6,0x61726170,0x0000006d,0x00040005,0x000006f3,0x61726170,0x0000006d, + 0x00040005,0x000006f5,0x61726170,0x0000006d,0x00040005,0x000006f7,0x61726170,0x0000006d, + 0x00040005,0x000006f8,0x61726170,0x0000006d,0x00040005,0x000006fb,0x5f627573,0x00007978, + 0x00040005,0x000006fe,0x61726170,0x0000006d,0x00030005,0x00000700,0x00000078,0x00030005, + 0x00000709,0x00000079,0x00040005,0x00000711,0x61726170,0x0000006d,0x00040005,0x00000713, + 0x61726170,0x0000006d,0x00040005,0x00000715,0x61726170,0x0000006d,0x00040005,0x00000717, + 0x61726170,0x0000006d,0x00040005,0x00000719,0x61726170,0x0000006d,0x00040005,0x0000071b, + 0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d,0x00040005,0x00000720, + 0x61726170,0x0000006d,0x00040005,0x00000722,0x61726170,0x0000006d,0x00040005,0x00000724, + 0x61726170,0x0000006d,0x00040005,0x00000726,0x61726170,0x0000006d,0x00040005,0x00000727, + 0x61726170,0x0000006d,0x00040005,0x00000729,0x61726170,0x0000006d,0x00040005,0x00000731, + 0x61726170,0x0000006d,0x00040005,0x00000733,0x61726170,0x0000006d,0x00040005,0x00000735, + 0x61726170,0x0000006d,0x00040005,0x0000073b,0x61726170,0x0000006d,0x00040005,0x0000073e, + 0x61726170,0x0000006d,0x00040005,0x00000740,0x61726170,0x0000006d,0x00040005,0x00000742, + 0x61726170,0x0000006d,0x00040005,0x00000744,0x61726170,0x0000006d,0x00040005,0x00000747, + 0x61726170,0x0000006d,0x00040005,0x00000749,0x61726170,0x0000006d,0x00040005,0x0000074b, + 0x61726170,0x0000006d,0x00040005,0x0000074c,0x61726170,0x0000006d,0x00040005,0x0000074e, + 0x61726170,0x0000006d,0x00040005,0x0000074f,0x61726170,0x0000006d,0x00040005,0x00000751, + 0x61726170,0x0000006d,0x00040005,0x00000757,0x61726170,0x0000006d,0x00040005,0x00000758, + 0x61726170,0x0000006d,0x00040005,0x0000075a,0x61726170,0x0000006d,0x00040005,0x0000075c, + 0x61726170,0x0000006d,0x00040005,0x0000075e,0x61726170,0x0000006d,0x00040005,0x00000769, + 0x61726170,0x0000006d,0x00040005,0x0000076a,0x61726170,0x0000006d,0x00040005,0x0000076b, + 0x61726170,0x0000006d,0x00040005,0x0000076c,0x61726170,0x0000006d,0x00040005,0x0000076d, + 0x61726170,0x0000006d,0x00040005,0x0000076e,0x61726170,0x0000006d,0x00060005,0x00000771, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000773,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000774,0x61726170,0x0000006d, + 0x00040005,0x00000776,0x61726170,0x0000006d,0x00060005,0x0000077d,0x6f505f73,0x43746e69, + 0x706d616c,0x00000000,0x00060005,0x0000077e,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x0000015f,0x00000002,0x00050048,0x0000015f,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000015f,0x00000001,0x00000023,0x00000008,0x00050048,0x0000015f,0x00000002, + 0x00000023,0x00000010,0x00050048,0x0000015f,0x00000003,0x00000023,0x00000018,0x00050048, + 0x0000015f,0x00000004,0x00000023,0x00000020,0x00050048,0x0000015f,0x00000005,0x00000023, + 0x00000028,0x00050048,0x0000015f,0x00000006,0x00000023,0x00000030,0x00050048,0x0000015f, + 0x00000007,0x00000023,0x00000040,0x00050048,0x0000015f,0x00000008,0x00000023,0x00000048, + 0x00050048,0x0000015f,0x00000009,0x00000023,0x00000050,0x00050048,0x0000015f,0x0000000a, + 0x00000023,0x00000058,0x00050048,0x0000015f,0x0000000b,0x00000023,0x00000060,0x00050048, + 0x0000015f,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000015f,0x0000000d,0x00000023, + 0x0000006c,0x00050048,0x0000015f,0x0000000e,0x00000023,0x00000070,0x00050048,0x0000015f, + 0x0000000f,0x00000023,0x00000074,0x00050048,0x0000015f,0x00000010,0x00000023,0x00000078, + 0x00050048,0x0000015f,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000015f,0x00000012, + 0x00000023,0x00000080,0x00050048,0x0000015f,0x00000013,0x00000023,0x00000084,0x00050048, + 0x0000015f,0x00000014,0x00000023,0x00000088,0x00050048,0x0000015f,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x0000015f,0x00000016,0x00000023,0x00000090,0x00040047,0x00000161, + 0x00000021,0x0000000b,0x00040047,0x00000161,0x00000022,0x00000000,0x00030047,0x0000016d, + 0x00000002,0x00050048,0x0000016d,0x00000000,0x00000023,0x00000000,0x00050048,0x0000016d, + 0x00000001,0x00000023,0x00000004,0x00050048,0x0000016d,0x00000002,0x00000023,0x00000008, + 0x00050048,0x0000016d,0x00000003,0x00000023,0x00000010,0x00040047,0x0000016f,0x00000021, + 0x0000000c,0x00040047,0x0000016f,0x00000022,0x00000000,0x00040047,0x00000182,0x00000021, + 0x00000001,0x00040047,0x00000182,0x00000022,0x00000000,0x00040047,0x0000018c,0x00000021, + 0x0000000a,0x00040047,0x0000018c,0x00000022,0x00000000,0x00040047,0x00000192,0x00000021, + 0x00000000,0x00040047,0x00000192,0x00000022,0x00000000,0x00040047,0x0000019b,0x00000021, + 0x00000003,0x00040047,0x0000019b,0x00000022,0x00000000,0x00040047,0x000001a9,0x00000021, + 0x00000004,0x00040047,0x000001a9,0x00000022,0x00000000,0x00040047,0x000001b3,0x00000021, + 0x00000005,0x00040047,0x000001b3,0x00000022,0x00000000,0x00040047,0x000001bd,0x00000021, + 0x00000006,0x00040047,0x000001bd,0x00000022,0x00000000,0x00040047,0x000001c7,0x00000021, + 0x00000007,0x00040047,0x000001c7,0x00000022,0x00000000,0x00040047,0x000001d2,0x00000021, + 0x00000008,0x00040047,0x000001d2,0x00000022,0x00000000,0x00030047,0x000001dd,0x00000017, + 0x00040047,0x000001dd,0x00000021,0x00000009,0x00040047,0x000001dd,0x00000022,0x00000000, + 0x00030047,0x00000224,0x00000017,0x00040047,0x00000224,0x00000021,0x00000002,0x00040047, + 0x00000224,0x00000022,0x00000000,0x00040047,0x00000771,0x0000000b,0x0000001a,0x00040047, + 0x00000773,0x0000000b,0x0000001d,0x00040047,0x0000077d,0x00000021,0x000003e8,0x00040047, + 0x0000077d,0x00000022,0x00000000,0x00040047,0x0000077e,0x00000021,0x000003e9,0x00040047, + 0x0000077e,0x00000022,0x00000000,0x00040047,0x00000786,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006,0x00000007, + 0x00000007,0x00000007,0x00040015,0x00000013,0x00000020,0x00000001,0x00040020,0x00000014, + 0x00000007,0x00000013,0x00050021,0x00000015,0x00000013,0x00000014,0x00000014,0x00030016, + 0x0000001a,0x00000020,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00050021,0x0000001c, + 0x0000001a,0x0000001b,0x0000001b,0x00040017,0x00000029,0x00000006,0x00000002,0x00040021, + 0x0000002a,0x00000029,0x00000007,0x00040017,0x0000002e,0x00000013,0x00000002,0x00030021, + 0x0000002f,0x0000002e,0x00030021,0x00000032,0x0000001a,0x00030021,0x00000035,0x00000006, + 0x00030021,0x0000003a,0x00000029,0x00040020,0x0000003d,0x00000007,0x0000002e,0x00040021, + 0x0000003e,0x0000001a,0x0000003d,0x00050021,0x00000042,0x00000002,0x0000003d,0x0000001b, + 0x00040017,0x0000004a,0x0000001a,0x00000004,0x00030021,0x0000004b,0x0000004a,0x00040020, + 0x0000004e,0x00000007,0x0000004a,0x00040021,0x0000004f,0x00000002,0x0000004e,0x00040017, + 0x00000053,0x0000001a,0x00000002,0x00050021,0x00000054,0x00000053,0x0000003d,0x00000007, + 0x00040020,0x00000059,0x00000007,0x00000053,0x00060021,0x0000005a,0x00000002,0x0000003d, + 0x00000059,0x00000007,0x00040021,0x00000060,0x00000002,0x00000007,0x00060021,0x00000066, + 0x0000002e,0x0000003d,0x0000003d,0x0000003d,0x00040021,0x0000006c,0x0000001a,0x0000001b, + 0x00050021,0x00000078,0x0000004a,0x00000059,0x00000007,0x00050021,0x0000007d,0x0000004a, + 0x0000003d,0x00000007,0x00070021,0x00000082,0x0000004a,0x0000004e,0x0000004e,0x0000004e, + 0x0000004e,0x00070021,0x00000089,0x00000002,0x0000003d,0x0000004e,0x00000007,0x00000007, + 0x00050021,0x00000090,0x0000004a,0x00000007,0x00000007,0x00060021,0x00000095,0x00000002, + 0x00000007,0x00000007,0x0000004e,0x00020014,0x0000009d,0x00060021,0x0000009e,0x0000009d, + 0x00000007,0x00000007,0x00000007,0x00040020,0x000000a4,0x00000007,0x00000029,0x00070021, + 0x000000a5,0x0000004a,0x000000a4,0x000000a4,0x000000a4,0x000000a4,0x00080021,0x000000ac, + 0x0000004a,0x000000a4,0x000000a4,0x000000a4,0x000000a4,0x00000007,0x00050021,0x000000b4, + 0x0000004a,0x000000a4,0x00000007,0x00090021,0x000000c4,0x00000002,0x00000007,0x00000007, + 0x000000a4,0x00000007,0x00000007,0x00000007,0x00070021,0x000000ed,0x00000002,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00070021,0x000000f4,0x00000002,0x00000007,0x00000007, + 0x00000007,0x00000007,0x000a0021,0x000000fb,0x00000002,0x00000007,0x00000007,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00080021,0x00000105,0x00000002,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00090021,0x0000010d,0x00000002,0x000000a4, + 0x00000007,0x00000007,0x00000007,0x00000007,0x000000a4,0x00040017,0x00000116,0x00000006, + 0x00000003,0x00040020,0x00000117,0x00000007,0x00000116,0x00050021,0x00000118,0x00000002, + 0x00000117,0x00000007,0x0004002b,0x00000013,0x00000127,0x00000000,0x0004002b,0x00000006, + 0x00000141,0x00000002,0x0004002b,0x00000006,0x00000142,0x00000003,0x0004002b,0x00000006, + 0x00000148,0x00000001,0x0019001e,0x0000015f,0x0000002e,0x0000002e,0x0000002e,0x0000002e, + 0x0000002e,0x0000002e,0x0000004a,0x00000053,0x00000053,0x00000053,0x00000053,0x00000053, + 0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001a,0x0000001a,0x0000001a,0x00040020,0x00000160,0x00000002,0x0000015f,0x0004003b, + 0x00000160,0x00000161,0x00000002,0x00040020,0x00000162,0x00000002,0x0000002e,0x0004002b, + 0x00000013,0x00000167,0x0000000e,0x00040020,0x00000168,0x00000002,0x0000001a,0x0006001e, + 0x0000016d,0x00000006,0x00000006,0x00000029,0x00000029,0x00040020,0x0000016e,0x00000002, + 0x0000016d,0x0004003b,0x0000016e,0x0000016f,0x00000002,0x00040020,0x00000170,0x00000002, + 0x00000006,0x0004002b,0x00000013,0x00000175,0x00000001,0x0004002b,0x00000013,0x0000017a, + 0x00000002,0x00040020,0x0000017b,0x00000002,0x00000029,0x00090019,0x00000180,0x0000001a, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000181, + 0x00000000,0x00000180,0x0004003b,0x00000181,0x00000182,0x00000000,0x0004002b,0x00000006, + 0x00000186,0x00000000,0x00090019,0x0000018a,0x0000001a,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000009,0x00040020,0x0000018b,0x00000000,0x0000018a,0x0004003b, + 0x0000018b,0x0000018c,0x00000000,0x0004002b,0x0000001a,0x00000190,0x00000000,0x0004003b, + 0x00000181,0x00000192,0x00000000,0x00090019,0x00000199,0x0000001a,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000001,0x00040020,0x0000019a,0x00000000,0x00000199, + 0x0004003b,0x0000019a,0x0000019b,0x00000000,0x0005002c,0x0000002e,0x0000019d,0x00000127, + 0x00000127,0x00090019,0x000001a7,0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000007,0x00040020,0x000001a8,0x00000000,0x000001a7,0x0004003b,0x000001a8, + 0x000001a9,0x00000000,0x0004003b,0x000001a8,0x000001b3,0x00000000,0x0004003b,0x000001a8, + 0x000001bd,0x00000000,0x0004003b,0x000001a8,0x000001c7,0x00000000,0x0004002b,0x00000006, + 0x000001ce,0x00000004,0x0004003b,0x000001a8,0x000001d2,0x00000000,0x0004002b,0x00000006, + 0x000001d9,0x00000005,0x0004003b,0x000001a8,0x000001dd,0x00000000,0x0005002c,0x00000053, + 0x000001e3,0x00000190,0x00000190,0x00090019,0x00000222,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000223,0x00000000,0x00000222, + 0x0004003b,0x00000223,0x00000224,0x00000000,0x00040020,0x00000225,0x0000000b,0x00000006, + 0x00040017,0x00000229,0x00000006,0x00000004,0x0007002c,0x00000229,0x0000022a,0x00000186, + 0x00000186,0x00000186,0x00000186,0x0004002b,0x0000001a,0x0000024e,0x42c80000,0x0004002b, + 0x0000001a,0x00000250,0x41480000,0x0004002b,0x0000001a,0x00000254,0x3f99999a,0x0004002b, + 0x0000001a,0x00000255,0x40000000,0x0004002b,0x0000001a,0x0000025b,0x3f800000,0x00040020, + 0x00000260,0x00000004,0x00000006,0x0004003b,0x00000260,0x00000261,0x00000004,0x0004002b, + 0x0000001a,0x00000277,0x387fda40,0x0007002c,0x0000004a,0x00000282,0x00000190,0x00000190, + 0x00000190,0x00000190,0x0004002b,0x0000001a,0x0000029c,0x3e800000,0x00040017,0x000002be, + 0x0000009d,0x00000002,0x0004002b,0x0000001a,0x000002cf,0x461c4000,0x0004002b,0x00000006, + 0x000002ec,0x00000010,0x0004001c,0x000002ed,0x0000001a,0x000002ec,0x0004001c,0x000002ee, + 0x000002ed,0x000002ec,0x00040020,0x000002ef,0x00000004,0x000002ee,0x0004003b,0x000002ef, + 0x000002f0,0x00000004,0x00040020,0x000002f3,0x00000004,0x0000001a,0x0004003b,0x000002ef, + 0x000002f6,0x00000004,0x0004003b,0x000002ef,0x000002fb,0x00000004,0x0004003b,0x000002ef, + 0x00000300,0x00000004,0x0004002b,0x00000006,0x0000031c,0x00000d48,0x0004002b,0x00000006, + 0x0000031d,0x00000108,0x0005002c,0x00000029,0x0000037f,0x00000186,0x00000186,0x0005002c, + 0x00000029,0x00000382,0x00000186,0x00000148,0x0005002c,0x00000029,0x00000385,0x00000148, + 0x00000186,0x0005002c,0x00000029,0x00000388,0x00000148,0x00000148,0x0004002b,0x00000006, + 0x000003d1,0x00000040,0x0004002b,0x00000006,0x000003df,0x00000020,0x0004001c,0x000003e9, + 0x0000004a,0x000001ce,0x00040020,0x000003ea,0x00000007,0x000003e9,0x0004002b,0x00000013, + 0x00000466,0x00000003,0x0004002b,0x00000006,0x000004bc,0x00000008,0x0005002c,0x00000029, + 0x000005ee,0x00000141,0x00000186,0x0005002c,0x00000029,0x000005ef,0x00000142,0x00000186, + 0x0004002b,0x00000006,0x0000061a,0x00000006,0x0004002b,0x00000006,0x00000687,0x00000007, + 0x0004002b,0x00000013,0x00000704,0x00000006,0x0004002b,0x00000013,0x0000070d,0x00000007, + 0x00040020,0x00000770,0x00000001,0x00000116,0x0004003b,0x00000770,0x00000771,0x00000001, + 0x00040020,0x00000772,0x00000001,0x00000006,0x0004003b,0x00000772,0x00000773,0x00000001, + 0x0004002b,0x0000001a,0x00000779,0x477fe000,0x0004002b,0x0000001a,0x0000077a,0x37801002, + 0x0002001a,0x0000077b,0x00040020,0x0000077c,0x00000000,0x0000077b,0x0004003b,0x0000077c, + 0x0000077d,0x00000000,0x0004003b,0x0000077c,0x0000077e,0x00000000,0x0004002b,0x0000001a, + 0x0000077f,0x7f7fffff,0x0004002b,0x0000001a,0x00000780,0x00800000,0x0004002b,0x0000001a, + 0x00000781,0x3a1fe868,0x0004002b,0x0000001a,0x00000782,0x3d800000,0x0004002b,0x0000001a, + 0x00000783,0x3d3d70a4,0x0004002b,0x0000001a,0x00000784,0x3e400000,0x0004002b,0x00000006, + 0x00000785,0x00000100,0x0006002c,0x00000116,0x00000786,0x00000785,0x00000148,0x00000148, + 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b, + 0x00000117,0x00000774,0x00000007,0x0004003b,0x00000007,0x00000776,0x00000007,0x0004003d, + 0x00000116,0x00000775,0x00000771,0x0003003e,0x00000774,0x00000775,0x0004003d,0x00000006, + 0x00000777,0x00000773,0x0003003e,0x00000776,0x00000777,0x00060039,0x00000002,0x00000778, + 0x0000011b,0x00000774,0x00000776,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c, + 0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d,0x0004003d,0x00000006,0x0000011d, + 0x00000009,0x0004003d,0x00000006,0x0000011e,0x0000000a,0x0004007c,0x00000013,0x0000011f, + 0x0000011e,0x0004003d,0x00000006,0x00000120,0x0000000b,0x0004007c,0x00000013,0x00000121, + 0x00000120,0x000600cb,0x00000006,0x00000122,0x0000011d,0x0000011f,0x00000121,0x000200fe, + 0x00000122,0x00010038,0x00050036,0x00000006,0x00000011,0x00000000,0x00000008,0x00030037, + 0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010, + 0x000200f8,0x00000012,0x0004003d,0x00000006,0x00000125,0x0000000e,0x0004003d,0x00000006, + 0x00000126,0x0000000f,0x0004003d,0x00000006,0x00000128,0x00000010,0x0004007c,0x00000013, + 0x00000129,0x00000128,0x000700c9,0x00000006,0x0000012a,0x00000125,0x00000126,0x00000127, + 0x00000129,0x000200fe,0x0000012a,0x00010038,0x00050036,0x00000013,0x00000018,0x00000000, + 0x00000015,0x00030037,0x00000014,0x00000016,0x00030037,0x00000014,0x00000017,0x000200f8, + 0x00000019,0x0004003d,0x00000013,0x0000012d,0x00000016,0x0004003d,0x00000013,0x0000012e, + 0x00000017,0x0007000c,0x00000013,0x0000012f,0x00000001,0x00000027,0x0000012d,0x0000012e, + 0x000200fe,0x0000012f,0x00010038,0x00050036,0x0000001a,0x0000001f,0x00000000,0x0000001c, + 0x00030037,0x0000001b,0x0000001d,0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020, + 0x0004003d,0x0000001a,0x00000132,0x0000001d,0x0004003d,0x0000001a,0x00000133,0x0000001e, + 0x0007000c,0x0000001a,0x00000134,0x00000001,0x00000028,0x00000132,0x00000133,0x000200fe, + 0x00000134,0x00010038,0x00050036,0x00000013,0x00000023,0x00000000,0x00000015,0x00030037, + 0x00000014,0x00000021,0x00030037,0x00000014,0x00000022,0x000200f8,0x00000024,0x0004003d, + 0x00000013,0x00000137,0x00000021,0x0004003d,0x00000013,0x00000138,0x00000022,0x0007000c, + 0x00000013,0x00000139,0x00000001,0x0000002a,0x00000137,0x00000138,0x000200fe,0x00000139, + 0x00010038,0x00050036,0x0000001a,0x00000027,0x00000000,0x0000001c,0x00030037,0x0000001b, + 0x00000025,0x00030037,0x0000001b,0x00000026,0x000200f8,0x00000028,0x0004003d,0x0000001a, + 0x0000013c,0x00000025,0x0004003d,0x0000001a,0x0000013d,0x00000026,0x0007000c,0x0000001a, + 0x0000013e,0x00000001,0x0000001a,0x0000013c,0x0000013d,0x000200fe,0x0000013e,0x00010038, + 0x00050036,0x00000029,0x0000002c,0x00000000,0x0000002a,0x00030037,0x00000007,0x0000002b, + 0x000200f8,0x0000002d,0x0004003b,0x00000007,0x00000143,0x00000007,0x0004003b,0x00000007, + 0x00000145,0x00000007,0x0004003b,0x00000007,0x00000146,0x00000007,0x0004003b,0x00000007, + 0x00000149,0x00000007,0x0004003b,0x00000007,0x0000014a,0x00000007,0x0004003b,0x00000007, + 0x0000014c,0x00000007,0x0004003b,0x00000007,0x0000014e,0x00000007,0x0004003b,0x00000007, + 0x00000150,0x00000007,0x0004003b,0x00000007,0x00000151,0x00000007,0x0004003b,0x00000007, + 0x00000153,0x00000007,0x0004003b,0x00000007,0x00000155,0x00000007,0x0004003b,0x00000007, + 0x00000156,0x00000007,0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007, + 0x00000159,0x00000007,0x0004003b,0x00000007,0x0000015a,0x00000007,0x0004003d,0x00000006, + 0x00000144,0x0000002b,0x0003003e,0x00000143,0x00000144,0x0003003e,0x00000145,0x00000141, + 0x0003003e,0x00000146,0x00000142,0x00070039,0x00000006,0x00000147,0x0000000c,0x00000143, + 0x00000145,0x00000146,0x0003003e,0x00000149,0x00000147,0x0004003d,0x00000006,0x0000014b, + 0x0000002b,0x0003003e,0x0000014a,0x0000014b,0x0003003e,0x0000014c,0x00000148,0x00070039, + 0x00000006,0x0000014d,0x00000011,0x00000149,0x0000014a,0x0000014c,0x0004003d,0x00000006, + 0x0000014f,0x0000002b,0x0003003e,0x0000014e,0x0000014f,0x0003003e,0x00000150,0x00000142, + 0x0003003e,0x00000151,0x00000142,0x00070039,0x00000006,0x00000152,0x0000000c,0x0000014e, + 0x00000150,0x00000151,0x0004003d,0x00000006,0x00000154,0x0000002b,0x0003003e,0x00000153, + 0x00000154,0x0003003e,0x00000155,0x00000148,0x0003003e,0x00000156,0x00000141,0x00070039, + 0x00000006,0x00000157,0x0000000c,0x00000153,0x00000155,0x00000156,0x0003003e,0x00000158, + 0x00000152,0x0003003e,0x00000159,0x00000157,0x0003003e,0x0000015a,0x00000141,0x00070039, + 0x00000006,0x0000015b,0x00000011,0x00000158,0x00000159,0x0000015a,0x00050050,0x00000029, + 0x0000015c,0x0000014d,0x0000015b,0x000200fe,0x0000015c,0x00010038,0x00050036,0x0000002e, + 0x00000030,0x00000000,0x0000002f,0x000200f8,0x00000031,0x00050041,0x00000162,0x00000163, + 0x00000161,0x00000127,0x0004003d,0x0000002e,0x00000164,0x00000163,0x000200fe,0x00000164, + 0x00010038,0x00050036,0x0000001a,0x00000033,0x00000000,0x00000032,0x000200f8,0x00000034, + 0x00050041,0x00000168,0x00000169,0x00000161,0x00000167,0x0004003d,0x0000001a,0x0000016a, + 0x00000169,0x000200fe,0x0000016a,0x00010038,0x00050036,0x00000006,0x00000036,0x00000000, + 0x00000035,0x000200f8,0x00000037,0x00050041,0x00000170,0x00000171,0x0000016f,0x00000127, + 0x0004003d,0x00000006,0x00000172,0x00000171,0x000200fe,0x00000172,0x00010038,0x00050036, + 0x00000006,0x00000038,0x00000000,0x00000035,0x000200f8,0x00000039,0x00050041,0x00000170, + 0x00000176,0x0000016f,0x00000175,0x0004003d,0x00000006,0x00000177,0x00000176,0x000200fe, + 0x00000177,0x00010038,0x00050036,0x00000029,0x0000003b,0x00000000,0x0000003a,0x000200f8, + 0x0000003c,0x00050041,0x0000017b,0x0000017c,0x0000016f,0x0000017a,0x0004003d,0x00000029, + 0x0000017d,0x0000017c,0x000200fe,0x0000017d,0x00010038,0x00050036,0x0000001a,0x00000040, + 0x00000000,0x0000003e,0x00030037,0x0000003d,0x0000003f,0x000200f8,0x00000041,0x0004003d, + 0x00000180,0x00000183,0x00000182,0x0004003d,0x0000002e,0x00000184,0x0000003f,0x0007005f, + 0x0000004a,0x00000185,0x00000183,0x00000184,0x00000002,0x00000127,0x00050051,0x0000001a, + 0x00000187,0x00000185,0x00000000,0x000200fe,0x00000187,0x00010038,0x00050036,0x00000002, + 0x00000045,0x00000000,0x00000042,0x00030037,0x0000003d,0x00000043,0x00030037,0x0000001b, + 0x00000044,0x000200f8,0x00000046,0x0004003d,0x0000018a,0x0000018d,0x0000018c,0x0004003d, + 0x0000002e,0x0000018e,0x00000043,0x0004003d,0x0000001a,0x0000018f,0x00000044,0x00070050, + 0x0000004a,0x00000191,0x0000018f,0x00000190,0x00000190,0x00000190,0x00040063,0x0000018d, + 0x0000018e,0x00000191,0x000100fd,0x00010038,0x00050036,0x0000001a,0x00000048,0x00000000, + 0x0000003e,0x00030037,0x0000003d,0x00000047,0x000200f8,0x00000049,0x0004003d,0x00000180, + 0x00000193,0x00000192,0x0004003d,0x0000002e,0x00000194,0x00000047,0x0007005f,0x0000004a, + 0x00000195,0x00000193,0x00000194,0x00000002,0x00000127,0x00050051,0x0000001a,0x00000196, + 0x00000195,0x00000000,0x000200fe,0x00000196,0x00010038,0x00050036,0x0000004a,0x0000004c, + 0x00000000,0x0000004b,0x000200f8,0x0000004d,0x0004003d,0x00000199,0x0000019c,0x0000019b, + 0x00050062,0x0000004a,0x0000019e,0x0000019c,0x0000019d,0x000200fe,0x0000019e,0x00010038, + 0x00050036,0x00000002,0x00000051,0x00000000,0x0000004f,0x00030037,0x0000004e,0x00000050, + 0x000200f8,0x00000052,0x0004003d,0x00000199,0x000001a1,0x0000019b,0x0004003d,0x0000004a, + 0x000001a2,0x00000050,0x00040063,0x000001a1,0x0000019d,0x000001a2,0x000100fd,0x00010038, + 0x00050036,0x00000053,0x00000057,0x00000000,0x00000054,0x00030037,0x0000003d,0x00000055, + 0x00030037,0x00000007,0x00000056,0x000200f8,0x00000058,0x0004003d,0x00000006,0x000001a3, + 0x00000056,0x000500aa,0x0000009d,0x000001a4,0x000001a3,0x00000186,0x000300f7,0x000001a6, + 0x00000000,0x000400fa,0x000001a4,0x000001a5,0x000001a6,0x000200f8,0x000001a5,0x0004003d, + 0x000001a7,0x000001aa,0x000001a9,0x0004003d,0x0000002e,0x000001ab,0x00000055,0x00050062, + 0x0000004a,0x000001ac,0x000001aa,0x000001ab,0x0007004f,0x00000053,0x000001ad,0x000001ac, + 0x000001ac,0x00000000,0x00000001,0x000200fe,0x000001ad,0x000200f8,0x000001a6,0x0004003d, + 0x00000006,0x000001af,0x00000056,0x000500aa,0x0000009d,0x000001b0,0x000001af,0x00000148, + 0x000300f7,0x000001b2,0x00000000,0x000400fa,0x000001b0,0x000001b1,0x000001b2,0x000200f8, + 0x000001b1,0x0004003d,0x000001a7,0x000001b4,0x000001b3,0x0004003d,0x0000002e,0x000001b5, + 0x00000055,0x00050062,0x0000004a,0x000001b6,0x000001b4,0x000001b5,0x0007004f,0x00000053, + 0x000001b7,0x000001b6,0x000001b6,0x00000000,0x00000001,0x000200fe,0x000001b7,0x000200f8, + 0x000001b2,0x0004003d,0x00000006,0x000001b9,0x00000056,0x000500aa,0x0000009d,0x000001ba, + 0x000001b9,0x00000141,0x000300f7,0x000001bc,0x00000000,0x000400fa,0x000001ba,0x000001bb, + 0x000001bc,0x000200f8,0x000001bb,0x0004003d,0x000001a7,0x000001be,0x000001bd,0x0004003d, + 0x0000002e,0x000001bf,0x00000055,0x00050062,0x0000004a,0x000001c0,0x000001be,0x000001bf, + 0x0007004f,0x00000053,0x000001c1,0x000001c0,0x000001c0,0x00000000,0x00000001,0x000200fe, + 0x000001c1,0x000200f8,0x000001bc,0x0004003d,0x00000006,0x000001c3,0x00000056,0x000500aa, + 0x0000009d,0x000001c4,0x000001c3,0x00000142,0x000300f7,0x000001c6,0x00000000,0x000400fa, + 0x000001c4,0x000001c5,0x000001c6,0x000200f8,0x000001c5,0x0004003d,0x000001a7,0x000001c8, + 0x000001c7,0x0004003d,0x0000002e,0x000001c9,0x00000055,0x00050062,0x0000004a,0x000001ca, + 0x000001c8,0x000001c9,0x0007004f,0x00000053,0x000001cb,0x000001ca,0x000001ca,0x00000000, + 0x00000001,0x000200fe,0x000001cb,0x000200f8,0x000001c6,0x0004003d,0x00000006,0x000001cd, + 0x00000056,0x000500aa,0x0000009d,0x000001cf,0x000001cd,0x000001ce,0x000300f7,0x000001d1, + 0x00000000,0x000400fa,0x000001cf,0x000001d0,0x000001d1,0x000200f8,0x000001d0,0x0004003d, + 0x000001a7,0x000001d3,0x000001d2,0x0004003d,0x0000002e,0x000001d4,0x00000055,0x00050062, + 0x0000004a,0x000001d5,0x000001d3,0x000001d4,0x0007004f,0x00000053,0x000001d6,0x000001d5, + 0x000001d5,0x00000000,0x00000001,0x000200fe,0x000001d6,0x000200f8,0x000001d1,0x0004003d, + 0x00000006,0x000001d8,0x00000056,0x000500aa,0x0000009d,0x000001da,0x000001d8,0x000001d9, + 0x000300f7,0x000001dc,0x00000000,0x000400fa,0x000001da,0x000001db,0x000001dc,0x000200f8, + 0x000001db,0x0004003d,0x000001a7,0x000001de,0x000001dd,0x0004003d,0x0000002e,0x000001df, + 0x00000055,0x00050062,0x0000004a,0x000001e0,0x000001de,0x000001df,0x0007004f,0x00000053, + 0x000001e1,0x000001e0,0x000001e0,0x00000000,0x00000001,0x000200fe,0x000001e1,0x000200f8, + 0x000001dc,0x000200fe,0x000001e3,0x00010038,0x00050036,0x00000002,0x0000005e,0x00000000, + 0x0000005a,0x00030037,0x0000003d,0x0000005b,0x00030037,0x00000059,0x0000005c,0x00030037, + 0x00000007,0x0000005d,0x000200f8,0x0000005f,0x0004003d,0x00000006,0x000001e6,0x0000005d, + 0x000500aa,0x0000009d,0x000001e7,0x000001e6,0x00000186,0x000300f7,0x000001e9,0x00000000, + 0x000400fa,0x000001e7,0x000001e8,0x000001e9,0x000200f8,0x000001e8,0x0004003d,0x000001a7, + 0x000001ea,0x000001a9,0x0004003d,0x0000002e,0x000001eb,0x0000005b,0x0004003d,0x00000053, + 0x000001ec,0x0000005c,0x00050051,0x0000001a,0x000001ed,0x000001ec,0x00000000,0x00050051, + 0x0000001a,0x000001ee,0x000001ec,0x00000001,0x00070050,0x0000004a,0x000001ef,0x000001ed, + 0x000001ee,0x00000190,0x00000190,0x00040063,0x000001ea,0x000001eb,0x000001ef,0x000200f9, + 0x000001e9,0x000200f8,0x000001e9,0x0004003d,0x00000006,0x000001f0,0x0000005d,0x000500aa, + 0x0000009d,0x000001f1,0x000001f0,0x00000148,0x000300f7,0x000001f3,0x00000000,0x000400fa, + 0x000001f1,0x000001f2,0x000001f3,0x000200f8,0x000001f2,0x0004003d,0x000001a7,0x000001f4, + 0x000001b3,0x0004003d,0x0000002e,0x000001f5,0x0000005b,0x0004003d,0x00000053,0x000001f6, + 0x0000005c,0x00050051,0x0000001a,0x000001f7,0x000001f6,0x00000000,0x00050051,0x0000001a, + 0x000001f8,0x000001f6,0x00000001,0x00070050,0x0000004a,0x000001f9,0x000001f7,0x000001f8, + 0x00000190,0x00000190,0x00040063,0x000001f4,0x000001f5,0x000001f9,0x000200f9,0x000001f3, + 0x000200f8,0x000001f3,0x0004003d,0x00000006,0x000001fa,0x0000005d,0x000500aa,0x0000009d, + 0x000001fb,0x000001fa,0x00000141,0x000300f7,0x000001fd,0x00000000,0x000400fa,0x000001fb, + 0x000001fc,0x000001fd,0x000200f8,0x000001fc,0x0004003d,0x000001a7,0x000001fe,0x000001bd, + 0x0004003d,0x0000002e,0x000001ff,0x0000005b,0x0004003d,0x00000053,0x00000200,0x0000005c, + 0x00050051,0x0000001a,0x00000201,0x00000200,0x00000000,0x00050051,0x0000001a,0x00000202, + 0x00000200,0x00000001,0x00070050,0x0000004a,0x00000203,0x00000201,0x00000202,0x00000190, + 0x00000190,0x00040063,0x000001fe,0x000001ff,0x00000203,0x000200f9,0x000001fd,0x000200f8, + 0x000001fd,0x0004003d,0x00000006,0x00000204,0x0000005d,0x000500aa,0x0000009d,0x00000205, + 0x00000204,0x00000142,0x000300f7,0x00000207,0x00000000,0x000400fa,0x00000205,0x00000206, + 0x00000207,0x000200f8,0x00000206,0x0004003d,0x000001a7,0x00000208,0x000001c7,0x0004003d, + 0x0000002e,0x00000209,0x0000005b,0x0004003d,0x00000053,0x0000020a,0x0000005c,0x00050051, + 0x0000001a,0x0000020b,0x0000020a,0x00000000,0x00050051,0x0000001a,0x0000020c,0x0000020a, + 0x00000001,0x00070050,0x0000004a,0x0000020d,0x0000020b,0x0000020c,0x00000190,0x00000190, + 0x00040063,0x00000208,0x00000209,0x0000020d,0x000200f9,0x00000207,0x000200f8,0x00000207, + 0x0004003d,0x00000006,0x0000020e,0x0000005d,0x000500aa,0x0000009d,0x0000020f,0x0000020e, + 0x000001ce,0x000300f7,0x00000211,0x00000000,0x000400fa,0x0000020f,0x00000210,0x00000211, + 0x000200f8,0x00000210,0x0004003d,0x000001a7,0x00000212,0x000001d2,0x0004003d,0x0000002e, + 0x00000213,0x0000005b,0x0004003d,0x00000053,0x00000214,0x0000005c,0x00050051,0x0000001a, + 0x00000215,0x00000214,0x00000000,0x00050051,0x0000001a,0x00000216,0x00000214,0x00000001, + 0x00070050,0x0000004a,0x00000217,0x00000215,0x00000216,0x00000190,0x00000190,0x00040063, + 0x00000212,0x00000213,0x00000217,0x000200f9,0x00000211,0x000200f8,0x00000211,0x0004003d, + 0x00000006,0x00000218,0x0000005d,0x000500aa,0x0000009d,0x00000219,0x00000218,0x000001d9, + 0x000300f7,0x0000021b,0x00000000,0x000400fa,0x00000219,0x0000021a,0x0000021b,0x000200f8, + 0x0000021a,0x0004003d,0x000001a7,0x0000021c,0x000001dd,0x0004003d,0x0000002e,0x0000021d, + 0x0000005b,0x0004003d,0x00000053,0x0000021e,0x0000005c,0x00050051,0x0000001a,0x0000021f, + 0x0000021e,0x00000000,0x00050051,0x0000001a,0x00000220,0x0000021e,0x00000001,0x00070050, + 0x0000004a,0x00000221,0x0000021f,0x00000220,0x00000190,0x00000190,0x00040063,0x0000021c, + 0x0000021d,0x00000221,0x000200f9,0x0000021b,0x000200f8,0x0000021b,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000062,0x00000000,0x00000060,0x00030037,0x00000007,0x00000061, + 0x000200f8,0x00000063,0x0006003c,0x00000225,0x00000226,0x00000224,0x0000019d,0x00000186, + 0x000700ea,0x00000006,0x00000227,0x00000226,0x00000148,0x00000186,0x00000148,0x0003003e, + 0x00000061,0x00000227,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000064,0x00000000, + 0x00000003,0x000200f8,0x00000065,0x0004003d,0x00000222,0x00000228,0x00000224,0x00040063, + 0x00000228,0x0000019d,0x0000022a,0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000006a, + 0x00000000,0x00000066,0x00030037,0x0000003d,0x00000067,0x00030037,0x0000003d,0x00000068, + 0x00030037,0x0000003d,0x00000069,0x000200f8,0x0000006b,0x0004003b,0x0000003d,0x0000022b, + 0x00000007,0x0004003b,0x00000014,0x00000232,0x00000007,0x0004003b,0x00000014,0x00000235, + 0x00000007,0x0004003b,0x00000014,0x00000237,0x00000007,0x0004003b,0x00000014,0x00000238, + 0x00000007,0x0004003b,0x00000014,0x0000023e,0x00000007,0x0004003b,0x00000014,0x00000241, + 0x00000007,0x0004003b,0x00000014,0x00000243,0x00000007,0x0004003b,0x00000014,0x00000244, + 0x00000007,0x0004003d,0x0000002e,0x0000022c,0x00000067,0x0004003d,0x0000002e,0x0000022d, + 0x00000068,0x00050080,0x0000002e,0x0000022e,0x0000022c,0x0000022d,0x0003003e,0x0000022b, + 0x0000022e,0x00050041,0x00000014,0x0000022f,0x00000069,0x00000186,0x0004003d,0x00000013, + 0x00000230,0x0000022f,0x00050082,0x00000013,0x00000231,0x00000230,0x00000175,0x00050041, + 0x00000014,0x00000233,0x0000022b,0x00000186,0x0004003d,0x00000013,0x00000234,0x00000233, + 0x0003003e,0x00000232,0x00000234,0x0003003e,0x00000235,0x00000231,0x00060039,0x00000013, + 0x00000236,0x00000018,0x00000232,0x00000235,0x0003003e,0x00000237,0x00000127,0x0003003e, + 0x00000238,0x00000236,0x00060039,0x00000013,0x00000239,0x00000023,0x00000237,0x00000238, + 0x00050041,0x00000014,0x0000023a,0x0000022b,0x00000186,0x0003003e,0x0000023a,0x00000239, + 0x00050041,0x00000014,0x0000023b,0x00000069,0x00000148,0x0004003d,0x00000013,0x0000023c, + 0x0000023b,0x00050082,0x00000013,0x0000023d,0x0000023c,0x00000175,0x00050041,0x00000014, + 0x0000023f,0x0000022b,0x00000148,0x0004003d,0x00000013,0x00000240,0x0000023f,0x0003003e, + 0x0000023e,0x00000240,0x0003003e,0x00000241,0x0000023d,0x00060039,0x00000013,0x00000242, + 0x00000018,0x0000023e,0x00000241,0x0003003e,0x00000243,0x00000127,0x0003003e,0x00000244, + 0x00000242,0x00060039,0x00000013,0x00000245,0x00000023,0x00000243,0x00000244,0x00050041, + 0x00000014,0x00000246,0x0000022b,0x00000148,0x0003003e,0x00000246,0x00000245,0x0004003d, + 0x0000002e,0x00000247,0x0000022b,0x000200fe,0x00000247,0x00010038,0x00050036,0x0000001a, + 0x0000006e,0x00000000,0x0000006c,0x00030037,0x0000001b,0x0000006d,0x000200f8,0x0000006f, + 0x0004003b,0x0000001b,0x0000024c,0x00000007,0x0004003b,0x0000001b,0x00000253,0x00000007, + 0x0004003b,0x0000001b,0x00000256,0x00000007,0x0004003b,0x0000001b,0x00000257,0x00000007, + 0x0004003d,0x0000001a,0x0000024a,0x0000006d,0x0006000c,0x0000001a,0x0000024b,0x00000001, + 0x0000001b,0x0000024a,0x0003003e,0x0000006d,0x0000024b,0x0004003d,0x0000001a,0x0000024d, + 0x0000006d,0x00050085,0x0000001a,0x0000024f,0x0000024d,0x0000024e,0x00050088,0x0000001a, + 0x00000251,0x0000024f,0x00000250,0x0006000c,0x0000001a,0x00000252,0x00000001,0x0000001e, + 0x00000251,0x0003003e,0x0000024c,0x00000252,0x0003003e,0x00000256,0x00000255,0x0004003d, + 0x0000001a,0x00000258,0x0000024c,0x0003003e,0x00000257,0x00000258,0x00060039,0x0000001a, + 0x00000259,0x00000027,0x00000256,0x00000257,0x00050085,0x0000001a,0x0000025a,0x00000254, + 0x00000259,0x0003003e,0x00000253,0x0000025a,0x0004003d,0x0000001a,0x0000025c,0x00000253, + 0x00050088,0x0000001a,0x0000025d,0x0000025b,0x0000025c,0x000200fe,0x0000025d,0x00010038, + 0x00050036,0x00000002,0x00000071,0x00000000,0x00000060,0x00030037,0x00000007,0x00000070, + 0x000200f8,0x00000072,0x0004003b,0x00000007,0x00000262,0x00000007,0x0004003d,0x00000006, + 0x00000263,0x00000261,0x0003003e,0x00000262,0x00000263,0x00050039,0x00000002,0x00000264, + 0x00000062,0x00000262,0x0004003d,0x00000006,0x00000265,0x00000262,0x0003003e,0x00000261, + 0x00000265,0x000100fd,0x00010038,0x00050036,0x00000006,0x00000073,0x00000000,0x00000035, + 0x000200f8,0x00000074,0x0004003d,0x00000006,0x00000266,0x00000261,0x000200fe,0x00000266, + 0x00010038,0x00050036,0x00000002,0x00000076,0x00000000,0x00000060,0x00030037,0x00000007, + 0x00000075,0x000200f8,0x00000077,0x00040039,0x00000002,0x00000269,0x00000064,0x000100fd, + 0x00010038,0x00050036,0x0000004a,0x0000007b,0x00000000,0x00000078,0x00030037,0x00000059, + 0x00000079,0x00030037,0x00000007,0x0000007a,0x000200f8,0x0000007c,0x0004003b,0x0000003d, + 0x0000026a,0x00000007,0x0004003b,0x0000003d,0x0000026e,0x00000007,0x0004003b,0x0000003d, + 0x0000026f,0x00000007,0x0004003b,0x0000003d,0x00000270,0x00000007,0x0004003b,0x0000001b, + 0x00000272,0x00000007,0x0004003b,0x0000003d,0x00000273,0x00000007,0x0004003b,0x0000001b, + 0x00000276,0x00000007,0x0004003b,0x0000001b,0x0000027a,0x00000007,0x0004003b,0x0000001b, + 0x0000027b,0x00000007,0x0004003b,0x0000001b,0x0000027d,0x00000007,0x0004003b,0x0000003d, + 0x0000027e,0x00000007,0x0004003b,0x0000004e,0x00000281,0x00000007,0x0004003d,0x00000053, + 0x0000026b,0x00000079,0x0004006e,0x0000002e,0x0000026c,0x0000026b,0x00040039,0x0000002e, + 0x0000026d,0x00000030,0x0003003e,0x0000026e,0x0000026c,0x0003003e,0x0000026f,0x0000019d, + 0x0003003e,0x00000270,0x0000026d,0x00070039,0x0000002e,0x00000271,0x0000006a,0x0000026e, + 0x0000026f,0x00000270,0x0003003e,0x0000026a,0x00000271,0x0004003d,0x0000002e,0x00000274, + 0x0000026a,0x0003003e,0x00000273,0x00000274,0x00050039,0x0000001a,0x00000275,0x00000048, + 0x00000273,0x0003003e,0x00000272,0x00000275,0x0004003d,0x0000001a,0x00000278,0x00000272, + 0x0006000c,0x0000001a,0x00000279,0x00000001,0x0000001c,0x00000278,0x0003003e,0x0000027a, + 0x00000277,0x0003003e,0x0000027b,0x00000279,0x00060039,0x0000001a,0x0000027c,0x0000001f, + 0x0000027a,0x0000027b,0x0003003e,0x00000276,0x0000027c,0x0004003d,0x0000002e,0x0000027f, + 0x0000026a,0x0003003e,0x0000027e,0x0000027f,0x00050039,0x0000001a,0x00000280,0x00000040, + 0x0000027e,0x0003003e,0x0000027d,0x00000280,0x0003003e,0x00000281,0x00000282,0x0004003d, + 0x0000001a,0x00000283,0x00000276,0x00050041,0x0000001b,0x00000284,0x00000281,0x00000186, + 0x0003003e,0x00000284,0x00000283,0x0004003d,0x0000001a,0x00000285,0x00000272,0x00050041, + 0x0000001b,0x00000286,0x00000281,0x00000148,0x0003003e,0x00000286,0x00000285,0x0004003d, + 0x0000001a,0x00000287,0x0000027d,0x00050041,0x0000001b,0x00000288,0x00000281,0x00000141, + 0x0003003e,0x00000288,0x00000287,0x0004003d,0x0000004a,0x00000289,0x00000281,0x000200fe, + 0x00000289,0x00010038,0x00050036,0x0000004a,0x00000080,0x00000000,0x0000007d,0x00030037, + 0x0000003d,0x0000007e,0x00030037,0x00000007,0x0000007f,0x000200f8,0x00000081,0x0004003b, + 0x0000003d,0x0000028c,0x00000007,0x0004003b,0x00000007,0x0000028e,0x00000007,0x0004003d, + 0x0000002e,0x0000028d,0x0000007e,0x0003003e,0x0000028c,0x0000028d,0x0003003e,0x0000028e, + 0x000001d9,0x00060039,0x00000053,0x0000028f,0x00000057,0x0000028c,0x0000028e,0x00050051, + 0x0000001a,0x00000290,0x0000028f,0x00000000,0x00050051,0x0000001a,0x00000291,0x0000028f, + 0x00000001,0x00070050,0x0000004a,0x00000292,0x00000290,0x00000291,0x00000190,0x00000190, + 0x000200fe,0x00000292,0x00010038,0x00050036,0x0000004a,0x00000087,0x00000000,0x00000082, + 0x00030037,0x0000004e,0x00000083,0x00030037,0x0000004e,0x00000084,0x00030037,0x0000004e, + 0x00000085,0x00030037,0x0000004e,0x00000086,0x000200f8,0x00000088,0x0004003d,0x0000004a, + 0x00000295,0x00000083,0x0004003d,0x0000004a,0x00000296,0x00000084,0x00050081,0x0000004a, + 0x00000297,0x00000295,0x00000296,0x0004003d,0x0000004a,0x00000298,0x00000085,0x00050081, + 0x0000004a,0x00000299,0x00000297,0x00000298,0x0004003d,0x0000004a,0x0000029a,0x00000086, + 0x00050081,0x0000004a,0x0000029b,0x00000299,0x0000029a,0x0005008e,0x0000004a,0x0000029d, + 0x0000029b,0x0000029c,0x000200fe,0x0000029d,0x00010038,0x00050036,0x00000002,0x0000008e, + 0x00000000,0x00000089,0x00030037,0x0000003d,0x0000008a,0x00030037,0x0000004e,0x0000008b, + 0x00030037,0x00000007,0x0000008c,0x00030037,0x00000007,0x0000008d,0x000200f8,0x0000008f, + 0x0004003b,0x0000003d,0x000002a4,0x00000007,0x0004003b,0x00000059,0x000002a6,0x00000007, + 0x0004003b,0x00000007,0x000002a9,0x00000007,0x0004003b,0x0000003d,0x000002b1,0x00000007, + 0x0004003b,0x0000001b,0x000002b3,0x00000007,0x0004003b,0x0000004e,0x000002c3,0x00000007, + 0x0004003b,0x0000001b,0x000002c5,0x00000007,0x0004003b,0x0000001b,0x000002c8,0x00000007, + 0x0004003b,0x0000001b,0x000002cb,0x00000007,0x0004003b,0x0000001b,0x000002dd,0x00000007, + 0x0004003b,0x0000001b,0x000002de,0x00000007,0x0004003b,0x0000001b,0x000002e1,0x00000007, + 0x0004003b,0x0000004e,0x000002e9,0x00000007,0x0004003d,0x00000006,0x000002a0,0x0000008c, + 0x000500aa,0x0000009d,0x000002a1,0x000002a0,0x000001d9,0x000300f7,0x000002a3,0x00000000, + 0x000400fa,0x000002a1,0x000002a2,0x000002ac,0x000200f8,0x000002a2,0x0004003d,0x0000002e, + 0x000002a5,0x0000008a,0x0003003e,0x000002a4,0x000002a5,0x0004003d,0x0000004a,0x000002a7, + 0x0000008b,0x0007004f,0x00000053,0x000002a8,0x000002a7,0x000002a7,0x00000000,0x00000001, + 0x0003003e,0x000002a6,0x000002a8,0x0004003d,0x00000006,0x000002aa,0x0000008c,0x0003003e, + 0x000002a9,0x000002aa,0x00070039,0x00000002,0x000002ab,0x0000005e,0x000002a4,0x000002a6, + 0x000002a9,0x000200f9,0x000002a3,0x000200f8,0x000002ac,0x0004003d,0x00000006,0x000002ad, + 0x0000008c,0x000500aa,0x0000009d,0x000002ae,0x000002ad,0x00000186,0x000300f7,0x000002b0, + 0x00000000,0x000400fa,0x000002ae,0x000002af,0x000002b0,0x000200f8,0x000002af,0x0004003d, + 0x0000002e,0x000002b2,0x0000008a,0x0003003e,0x000002b1,0x000002b2,0x00050041,0x0000001b, + 0x000002b4,0x0000008b,0x00000141,0x0004003d,0x0000001a,0x000002b5,0x000002b4,0x0003003e, + 0x000002b3,0x000002b5,0x00060039,0x00000002,0x000002b6,0x00000045,0x000002b1,0x000002b3, + 0x000200f9,0x000002b0,0x000200f8,0x000002b0,0x000200f9,0x000002a3,0x000200f8,0x000002a3, + 0x0004003d,0x00000006,0x000002b7,0x0000008c,0x00040039,0x00000006,0x000002b8,0x00000036, + 0x00050082,0x00000006,0x000002b9,0x000002b8,0x00000148,0x000500aa,0x0000009d,0x000002ba, + 0x000002b7,0x000002b9,0x000300f7,0x000002bc,0x00000000,0x000400fa,0x000002ba,0x000002bb, + 0x000002bc,0x000200f8,0x000002bb,0x0004003d,0x0000002e,0x000002bd,0x0000008a,0x000500aa, + 0x000002be,0x000002bf,0x000002bd,0x0000019d,0x0004009b,0x0000009d,0x000002c0,0x000002bf, + 0x000300f7,0x000002c2,0x00000000,0x000400fa,0x000002c0,0x000002c1,0x000002c2,0x000200f8, + 0x000002c1,0x00040039,0x0000004a,0x000002c4,0x0000004c,0x0003003e,0x000002c3,0x000002c4, + 0x00050041,0x0000001b,0x000002c6,0x0000008b,0x00000148,0x0004003d,0x0000001a,0x000002c7, + 0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00050041,0x0000001b,0x000002c9,0x000002c3, + 0x00000148,0x0004003d,0x0000001a,0x000002ca,0x000002c9,0x0003003e,0x000002c8,0x000002ca, + 0x00050041,0x0000001b,0x000002cc,0x0000008b,0x00000186,0x0004003d,0x0000001a,0x000002cd, + 0x000002cc,0x0003003e,0x000002cb,0x000002cd,0x0004003d,0x0000001a,0x000002ce,0x000002c8, + 0x000500b8,0x0000009d,0x000002d0,0x000002ce,0x000002cf,0x000300f7,0x000002d2,0x00000000, + 0x000400fa,0x000002d0,0x000002d1,0x000002d2,0x000200f8,0x000002d1,0x0004003d,0x0000001a, + 0x000002d3,0x000002c8,0x0004003d,0x0000001a,0x000002d4,0x000002cb,0x0004003d,0x0000001a, + 0x000002d5,0x000002c8,0x00050083,0x0000001a,0x000002d6,0x000002d4,0x000002d5,0x00040039, + 0x0000001a,0x000002d7,0x00000033,0x0004007f,0x0000001a,0x000002d8,0x000002d7,0x0006000c, + 0x0000001a,0x000002d9,0x00000001,0x0000001b,0x000002d8,0x00050083,0x0000001a,0x000002da, + 0x0000025b,0x000002d9,0x00050085,0x0000001a,0x000002db,0x000002d6,0x000002da,0x00050081, + 0x0000001a,0x000002dc,0x000002d3,0x000002db,0x0003003e,0x000002cb,0x000002dc,0x0003003e, + 0x000002dd,0x00000190,0x0004003d,0x0000001a,0x000002df,0x000002cb,0x0003003e,0x000002de, + 0x000002df,0x00060039,0x0000001a,0x000002e0,0x0000001f,0x000002dd,0x000002de,0x0003003e, + 0x000002cb,0x000002e0,0x000200f9,0x000002d2,0x000200f8,0x000002d2,0x0004003d,0x0000001a, + 0x000002e2,0x000002cb,0x0003003e,0x000002e1,0x000002e2,0x00050039,0x0000001a,0x000002e3, + 0x0000006e,0x000002e1,0x00050041,0x0000001b,0x000002e4,0x000002c3,0x00000186,0x0003003e, + 0x000002e4,0x000002e3,0x0004003d,0x0000001a,0x000002e5,0x000002cb,0x00050041,0x0000001b, + 0x000002e6,0x000002c3,0x00000148,0x0003003e,0x000002e6,0x000002e5,0x0004003d,0x0000001a, + 0x000002e7,0x000002c5,0x00050041,0x0000001b,0x000002e8,0x000002c3,0x00000141,0x0003003e, + 0x000002e8,0x000002e7,0x0004003d,0x0000004a,0x000002ea,0x000002c3,0x0003003e,0x000002e9, + 0x000002ea,0x00050039,0x00000002,0x000002eb,0x00000051,0x000002e9,0x000200f9,0x000002c2, + 0x000200f8,0x000002c2,0x000200f9,0x000002bc,0x000200f8,0x000002bc,0x000100fd,0x00010038, + 0x00050036,0x0000004a,0x00000093,0x00000000,0x00000090,0x00030037,0x00000007,0x00000091, + 0x00030037,0x00000007,0x00000092,0x000200f8,0x00000094,0x0004003d,0x00000006,0x000002f1, + 0x00000091,0x0004003d,0x00000006,0x000002f2,0x00000092,0x00060041,0x000002f3,0x000002f4, + 0x000002f0,0x000002f1,0x000002f2,0x0004003d,0x0000001a,0x000002f5,0x000002f4,0x0004003d, + 0x00000006,0x000002f7,0x00000091,0x0004003d,0x00000006,0x000002f8,0x00000092,0x00060041, + 0x000002f3,0x000002f9,0x000002f6,0x000002f7,0x000002f8,0x0004003d,0x0000001a,0x000002fa, + 0x000002f9,0x0004003d,0x00000006,0x000002fc,0x00000091,0x0004003d,0x00000006,0x000002fd, + 0x00000092,0x00060041,0x000002f3,0x000002fe,0x000002fb,0x000002fc,0x000002fd,0x0004003d, + 0x0000001a,0x000002ff,0x000002fe,0x0004003d,0x00000006,0x00000301,0x00000091,0x0004003d, + 0x00000006,0x00000302,0x00000092,0x00060041,0x000002f3,0x00000303,0x00000300,0x00000301, + 0x00000302,0x0004003d,0x0000001a,0x00000304,0x00000303,0x00070050,0x0000004a,0x00000305, + 0x000002f5,0x000002fa,0x000002ff,0x00000304,0x000200fe,0x00000305,0x00010038,0x00050036, + 0x00000002,0x00000099,0x00000000,0x00000095,0x00030037,0x00000007,0x00000096,0x00030037, + 0x00000007,0x00000097,0x00030037,0x0000004e,0x00000098,0x000200f8,0x0000009a,0x0004003d, + 0x00000006,0x00000308,0x00000096,0x0004003d,0x00000006,0x00000309,0x00000097,0x00050041, + 0x0000001b,0x0000030a,0x00000098,0x00000186,0x0004003d,0x0000001a,0x0000030b,0x0000030a, + 0x00060041,0x000002f3,0x0000030c,0x000002f0,0x00000308,0x00000309,0x0003003e,0x0000030c, + 0x0000030b,0x0004003d,0x00000006,0x0000030d,0x00000096,0x0004003d,0x00000006,0x0000030e, + 0x00000097,0x00050041,0x0000001b,0x0000030f,0x00000098,0x00000148,0x0004003d,0x0000001a, + 0x00000310,0x0000030f,0x00060041,0x000002f3,0x00000311,0x000002f6,0x0000030d,0x0000030e, + 0x0003003e,0x00000311,0x00000310,0x0004003d,0x00000006,0x00000312,0x00000096,0x0004003d, + 0x00000006,0x00000313,0x00000097,0x00050041,0x0000001b,0x00000314,0x00000098,0x00000141, + 0x0004003d,0x0000001a,0x00000315,0x00000314,0x00060041,0x000002f3,0x00000316,0x000002fb, + 0x00000312,0x00000313,0x0003003e,0x00000316,0x00000315,0x0004003d,0x00000006,0x00000317, + 0x00000096,0x0004003d,0x00000006,0x00000318,0x00000097,0x00050041,0x0000001b,0x00000319, + 0x00000098,0x00000142,0x0004003d,0x0000001a,0x0000031a,0x00000319,0x00060041,0x000002f3, + 0x0000031b,0x00000300,0x00000317,0x00000318,0x0003003e,0x0000031b,0x0000031a,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000009b,0x00000000,0x00000003,0x000200f8,0x0000009c, + 0x000300e1,0x00000141,0x0000031c,0x000400e0,0x00000141,0x00000141,0x0000031d,0x000100fd, + 0x00010038,0x00050036,0x0000009d,0x000000a2,0x00000000,0x0000009e,0x00030037,0x00000007, + 0x0000009f,0x00030037,0x00000007,0x000000a0,0x00030037,0x00000007,0x000000a1,0x000200f8, + 0x000000a3,0x0004003b,0x00000007,0x00000322,0x00000007,0x0004003d,0x00000006,0x0000031e, + 0x000000a0,0x000500aa,0x0000009d,0x0000031f,0x0000031e,0x00000186,0x000300f7,0x00000321, + 0x00000000,0x000400fa,0x0000031f,0x00000320,0x00000321,0x000200f8,0x00000320,0x0004003d, + 0x00000006,0x00000323,0x000000a1,0x0003003e,0x00000322,0x00000323,0x00050039,0x00000002, + 0x00000324,0x00000071,0x00000322,0x000200f9,0x00000321,0x000200f8,0x00000321,0x00040039, + 0x00000002,0x00000325,0x0000009b,0x00040039,0x00000006,0x00000326,0x00000073,0x0004003d, + 0x00000006,0x00000327,0x0000009f,0x00050082,0x00000006,0x00000328,0x00000327,0x00000148, + 0x000500ab,0x0000009d,0x00000329,0x00000326,0x00000328,0x000200fe,0x00000329,0x00010038, + 0x00050036,0x0000004a,0x000000aa,0x00000000,0x000000a5,0x00030037,0x000000a4,0x000000a6, + 0x00030037,0x000000a4,0x000000a7,0x00030037,0x000000a4,0x000000a8,0x00030037,0x000000a4, + 0x000000a9,0x000200f8,0x000000ab,0x0004003b,0x0000004e,0x0000032c,0x00000007,0x0004003b, + 0x00000007,0x0000032d,0x00000007,0x0004003b,0x00000007,0x00000330,0x00000007,0x0004003b, + 0x0000004e,0x00000334,0x00000007,0x0004003b,0x00000007,0x00000335,0x00000007,0x0004003b, + 0x00000007,0x00000338,0x00000007,0x0004003b,0x0000004e,0x0000033c,0x00000007,0x0004003b, + 0x00000007,0x0000033d,0x00000007,0x0004003b,0x00000007,0x00000340,0x00000007,0x0004003b, + 0x0000004e,0x00000344,0x00000007,0x0004003b,0x00000007,0x00000345,0x00000007,0x0004003b, + 0x00000007,0x00000348,0x00000007,0x0004003b,0x0000004e,0x0000034c,0x00000007,0x0004003b, + 0x0000004e,0x0000034e,0x00000007,0x0004003b,0x0000004e,0x00000350,0x00000007,0x0004003b, + 0x0000004e,0x00000352,0x00000007,0x00050041,0x00000007,0x0000032e,0x000000a6,0x00000186, + 0x0004003d,0x00000006,0x0000032f,0x0000032e,0x0003003e,0x0000032d,0x0000032f,0x00050041, + 0x00000007,0x00000331,0x000000a6,0x00000148,0x0004003d,0x00000006,0x00000332,0x00000331, + 0x0003003e,0x00000330,0x00000332,0x00060039,0x0000004a,0x00000333,0x00000093,0x0000032d, + 0x00000330,0x0003003e,0x0000032c,0x00000333,0x00050041,0x00000007,0x00000336,0x000000a7, + 0x00000186,0x0004003d,0x00000006,0x00000337,0x00000336,0x0003003e,0x00000335,0x00000337, + 0x00050041,0x00000007,0x00000339,0x000000a7,0x00000148,0x0004003d,0x00000006,0x0000033a, + 0x00000339,0x0003003e,0x00000338,0x0000033a,0x00060039,0x0000004a,0x0000033b,0x00000093, + 0x00000335,0x00000338,0x0003003e,0x00000334,0x0000033b,0x00050041,0x00000007,0x0000033e, + 0x000000a8,0x00000186,0x0004003d,0x00000006,0x0000033f,0x0000033e,0x0003003e,0x0000033d, + 0x0000033f,0x00050041,0x00000007,0x00000341,0x000000a8,0x00000148,0x0004003d,0x00000006, + 0x00000342,0x00000341,0x0003003e,0x00000340,0x00000342,0x00060039,0x0000004a,0x00000343, + 0x00000093,0x0000033d,0x00000340,0x0003003e,0x0000033c,0x00000343,0x00050041,0x00000007, + 0x00000346,0x000000a9,0x00000186,0x0004003d,0x00000006,0x00000347,0x00000346,0x0003003e, + 0x00000345,0x00000347,0x00050041,0x00000007,0x00000349,0x000000a9,0x00000148,0x0004003d, + 0x00000006,0x0000034a,0x00000349,0x0003003e,0x00000348,0x0000034a,0x00060039,0x0000004a, + 0x0000034b,0x00000093,0x00000345,0x00000348,0x0003003e,0x00000344,0x0000034b,0x0004003d, + 0x0000004a,0x0000034d,0x0000032c,0x0003003e,0x0000034c,0x0000034d,0x0004003d,0x0000004a, + 0x0000034f,0x00000334,0x0003003e,0x0000034e,0x0000034f,0x0004003d,0x0000004a,0x00000351, + 0x0000033c,0x0003003e,0x00000350,0x00000351,0x0004003d,0x0000004a,0x00000353,0x00000344, + 0x0003003e,0x00000352,0x00000353,0x00080039,0x0000004a,0x00000354,0x00000087,0x0000034c, + 0x0000034e,0x00000350,0x00000352,0x000200fe,0x00000354,0x00010038,0x00050036,0x0000004a, + 0x000000b2,0x00000000,0x000000ac,0x00030037,0x000000a4,0x000000ad,0x00030037,0x000000a4, + 0x000000ae,0x00030037,0x000000a4,0x000000af,0x00030037,0x000000a4,0x000000b0,0x00030037, + 0x00000007,0x000000b1,0x000200f8,0x000000b3,0x0004003b,0x0000004e,0x00000357,0x00000007, + 0x0004003b,0x0000003d,0x0000035a,0x00000007,0x0004003b,0x00000007,0x0000035b,0x00000007, + 0x0004003b,0x0000004e,0x0000035e,0x00000007,0x0004003b,0x0000003d,0x00000361,0x00000007, + 0x0004003b,0x00000007,0x00000362,0x00000007,0x0004003b,0x0000004e,0x00000365,0x00000007, + 0x0004003b,0x0000003d,0x00000368,0x00000007,0x0004003b,0x00000007,0x00000369,0x00000007, + 0x0004003b,0x0000004e,0x0000036c,0x00000007,0x0004003b,0x0000003d,0x0000036f,0x00000007, + 0x0004003b,0x00000007,0x00000370,0x00000007,0x0004003b,0x0000004e,0x00000373,0x00000007, + 0x0004003b,0x0000004e,0x00000375,0x00000007,0x0004003b,0x0000004e,0x00000377,0x00000007, + 0x0004003b,0x0000004e,0x00000379,0x00000007,0x0004003d,0x00000029,0x00000358,0x000000ad, + 0x0004007c,0x0000002e,0x00000359,0x00000358,0x0003003e,0x0000035a,0x00000359,0x0004003d, + 0x00000006,0x0000035c,0x000000b1,0x0003003e,0x0000035b,0x0000035c,0x00060039,0x0000004a, + 0x0000035d,0x00000080,0x0000035a,0x0000035b,0x0003003e,0x00000357,0x0000035d,0x0004003d, + 0x00000029,0x0000035f,0x000000ae,0x0004007c,0x0000002e,0x00000360,0x0000035f,0x0003003e, + 0x00000361,0x00000360,0x0004003d,0x00000006,0x00000363,0x000000b1,0x0003003e,0x00000362, + 0x00000363,0x00060039,0x0000004a,0x00000364,0x00000080,0x00000361,0x00000362,0x0003003e, + 0x0000035e,0x00000364,0x0004003d,0x00000029,0x00000366,0x000000af,0x0004007c,0x0000002e, + 0x00000367,0x00000366,0x0003003e,0x00000368,0x00000367,0x0004003d,0x00000006,0x0000036a, + 0x000000b1,0x0003003e,0x00000369,0x0000036a,0x00060039,0x0000004a,0x0000036b,0x00000080, + 0x00000368,0x00000369,0x0003003e,0x00000365,0x0000036b,0x0004003d,0x00000029,0x0000036d, + 0x000000b0,0x0004007c,0x0000002e,0x0000036e,0x0000036d,0x0003003e,0x0000036f,0x0000036e, + 0x0004003d,0x00000006,0x00000371,0x000000b1,0x0003003e,0x00000370,0x00000371,0x00060039, + 0x0000004a,0x00000372,0x00000080,0x0000036f,0x00000370,0x0003003e,0x0000036c,0x00000372, + 0x0004003d,0x0000004a,0x00000374,0x00000357,0x0003003e,0x00000373,0x00000374,0x0004003d, + 0x0000004a,0x00000376,0x0000035e,0x0003003e,0x00000375,0x00000376,0x0004003d,0x0000004a, + 0x00000378,0x00000365,0x0003003e,0x00000377,0x00000378,0x0004003d,0x0000004a,0x0000037a, + 0x0000036c,0x0003003e,0x00000379,0x0000037a,0x00080039,0x0000004a,0x0000037b,0x00000087, + 0x00000373,0x00000375,0x00000377,0x00000379,0x000200fe,0x0000037b,0x00010038,0x00050036, + 0x0000004a,0x000000b7,0x00000000,0x000000b4,0x00030037,0x000000a4,0x000000b5,0x00030037, + 0x00000007,0x000000b6,0x000200f8,0x000000b8,0x0004003b,0x000000a4,0x0000038a,0x00000007, + 0x0004003b,0x000000a4,0x0000038b,0x00000007,0x0004003b,0x000000a4,0x0000038c,0x00000007, + 0x0004003b,0x000000a4,0x0000038d,0x00000007,0x0004003b,0x00000007,0x0000038e,0x00000007, + 0x0004003d,0x00000029,0x0000037e,0x000000b5,0x00050080,0x00000029,0x00000380,0x0000037e, + 0x0000037f,0x0004003d,0x00000029,0x00000381,0x000000b5,0x00050080,0x00000029,0x00000383, + 0x00000381,0x00000382,0x0004003d,0x00000029,0x00000384,0x000000b5,0x00050080,0x00000029, + 0x00000386,0x00000384,0x00000385,0x0004003d,0x00000029,0x00000387,0x000000b5,0x00050080, + 0x00000029,0x00000389,0x00000387,0x00000388,0x0003003e,0x0000038a,0x00000380,0x0003003e, + 0x0000038b,0x00000383,0x0003003e,0x0000038c,0x00000386,0x0003003e,0x0000038d,0x00000389, + 0x0004003d,0x00000006,0x0000038f,0x000000b6,0x0003003e,0x0000038e,0x0000038f,0x00090039, + 0x0000004a,0x00000390,0x000000b2,0x0000038a,0x0000038b,0x0000038c,0x0000038d,0x0000038e, + 0x000200fe,0x00000390,0x00010038,0x00050036,0x0000004a,0x000000be,0x00000000,0x000000ac, + 0x00030037,0x000000a4,0x000000b9,0x00030037,0x000000a4,0x000000ba,0x00030037,0x000000a4, + 0x000000bb,0x00030037,0x000000a4,0x000000bc,0x00030037,0x00000007,0x000000bd,0x000200f8, + 0x000000bf,0x0004003b,0x0000004e,0x00000393,0x00000007,0x0004003b,0x00000059,0x00000397, + 0x00000007,0x0004003b,0x00000007,0x00000398,0x00000007,0x0004003b,0x0000004e,0x0000039b, + 0x00000007,0x0004003b,0x00000059,0x0000039f,0x00000007,0x0004003b,0x00000007,0x000003a0, + 0x00000007,0x0004003b,0x0000004e,0x000003a3,0x00000007,0x0004003b,0x00000059,0x000003a7, + 0x00000007,0x0004003b,0x00000007,0x000003a8,0x00000007,0x0004003b,0x0000004e,0x000003ab, + 0x00000007,0x0004003b,0x00000059,0x000003af,0x00000007,0x0004003b,0x00000007,0x000003b0, + 0x00000007,0x0004003b,0x0000004e,0x000003b3,0x00000007,0x0004003b,0x0000004e,0x000003b5, + 0x00000007,0x0004003b,0x0000004e,0x000003b7,0x00000007,0x0004003b,0x0000004e,0x000003b9, + 0x00000007,0x0004003d,0x00000029,0x00000394,0x000000b9,0x0004007c,0x0000002e,0x00000395, + 0x00000394,0x0004006f,0x00000053,0x00000396,0x00000395,0x0003003e,0x00000397,0x00000396, + 0x0004003d,0x00000006,0x00000399,0x000000bd,0x0003003e,0x00000398,0x00000399,0x00060039, + 0x0000004a,0x0000039a,0x0000007b,0x00000397,0x00000398,0x0003003e,0x00000393,0x0000039a, + 0x0004003d,0x00000029,0x0000039c,0x000000ba,0x0004007c,0x0000002e,0x0000039d,0x0000039c, + 0x0004006f,0x00000053,0x0000039e,0x0000039d,0x0003003e,0x0000039f,0x0000039e,0x0004003d, + 0x00000006,0x000003a1,0x000000bd,0x0003003e,0x000003a0,0x000003a1,0x00060039,0x0000004a, + 0x000003a2,0x0000007b,0x0000039f,0x000003a0,0x0003003e,0x0000039b,0x000003a2,0x0004003d, + 0x00000029,0x000003a4,0x000000bb,0x0004007c,0x0000002e,0x000003a5,0x000003a4,0x0004006f, + 0x00000053,0x000003a6,0x000003a5,0x0003003e,0x000003a7,0x000003a6,0x0004003d,0x00000006, + 0x000003a9,0x000000bd,0x0003003e,0x000003a8,0x000003a9,0x00060039,0x0000004a,0x000003aa, + 0x0000007b,0x000003a7,0x000003a8,0x0003003e,0x000003a3,0x000003aa,0x0004003d,0x00000029, + 0x000003ac,0x000000bc,0x0004007c,0x0000002e,0x000003ad,0x000003ac,0x0004006f,0x00000053, + 0x000003ae,0x000003ad,0x0003003e,0x000003af,0x000003ae,0x0004003d,0x00000006,0x000003b1, + 0x000000bd,0x0003003e,0x000003b0,0x000003b1,0x00060039,0x0000004a,0x000003b2,0x0000007b, + 0x000003af,0x000003b0,0x0003003e,0x000003ab,0x000003b2,0x0004003d,0x0000004a,0x000003b4, + 0x00000393,0x0003003e,0x000003b3,0x000003b4,0x0004003d,0x0000004a,0x000003b6,0x0000039b, + 0x0003003e,0x000003b5,0x000003b6,0x0004003d,0x0000004a,0x000003b8,0x000003a3,0x0003003e, + 0x000003b7,0x000003b8,0x0004003d,0x0000004a,0x000003ba,0x000003ab,0x0003003e,0x000003b9, + 0x000003ba,0x00080039,0x0000004a,0x000003bb,0x00000087,0x000003b3,0x000003b5,0x000003b7, + 0x000003b9,0x000200fe,0x000003bb,0x00010038,0x00050036,0x0000004a,0x000000c2,0x00000000, + 0x000000b4,0x00030037,0x000000a4,0x000000c0,0x00030037,0x00000007,0x000000c1,0x000200f8, + 0x000000c3,0x0004003b,0x000000a4,0x000003c6,0x00000007,0x0004003b,0x000000a4,0x000003c7, + 0x00000007,0x0004003b,0x000000a4,0x000003c8,0x00000007,0x0004003b,0x000000a4,0x000003c9, + 0x00000007,0x0004003b,0x00000007,0x000003ca,0x00000007,0x0004003d,0x00000029,0x000003be, + 0x000000c0,0x00050080,0x00000029,0x000003bf,0x000003be,0x0000037f,0x0004003d,0x00000029, + 0x000003c0,0x000000c0,0x00050080,0x00000029,0x000003c1,0x000003c0,0x00000382,0x0004003d, + 0x00000029,0x000003c2,0x000000c0,0x00050080,0x00000029,0x000003c3,0x000003c2,0x00000385, + 0x0004003d,0x00000029,0x000003c4,0x000000c0,0x00050080,0x00000029,0x000003c5,0x000003c4, + 0x00000388,0x0003003e,0x000003c6,0x000003bf,0x0003003e,0x000003c7,0x000003c1,0x0003003e, + 0x000003c8,0x000003c3,0x0003003e,0x000003c9,0x000003c5,0x0004003d,0x00000006,0x000003cb, + 0x000000c1,0x0003003e,0x000003ca,0x000003cb,0x00090039,0x0000004a,0x000003cc,0x000000be, + 0x000003c6,0x000003c7,0x000003c8,0x000003c9,0x000003ca,0x000200fe,0x000003cc,0x00010038, + 0x00050036,0x00000002,0x000000cb,0x00000000,0x000000c4,0x00030037,0x00000007,0x000000c5, + 0x00030037,0x00000007,0x000000c6,0x00030037,0x000000a4,0x000000c7,0x00030037,0x00000007, + 0x000000c8,0x00030037,0x00000007,0x000000c9,0x00030037,0x00000007,0x000000ca,0x000200f8, + 0x000000cc,0x0004003b,0x0000003d,0x000003cf,0x00000007,0x0004003b,0x0000003d,0x000003dd, + 0x00000007,0x0004003b,0x000003ea,0x000003eb,0x00000007,0x0004003b,0x000000a4,0x000003ee, + 0x00000007,0x0004003b,0x00000007,0x000003ef,0x00000007,0x0004003b,0x0000003d,0x000003f3, + 0x00000007,0x0004003b,0x0000004e,0x000003f5,0x00000007,0x0004003b,0x00000007,0x000003f8, + 0x00000007,0x0004003b,0x00000007,0x000003f9,0x00000007,0x0004003b,0x000000a4,0x00000416, + 0x00000007,0x0004003b,0x00000007,0x00000417,0x00000007,0x0004003b,0x0000003d,0x0000041b, + 0x00000007,0x0004003b,0x0000004e,0x0000041d,0x00000007,0x0004003b,0x00000007,0x00000420, + 0x00000007,0x0004003b,0x00000007,0x00000421,0x00000007,0x0004003b,0x000000a4,0x0000043e, + 0x00000007,0x0004003b,0x00000007,0x0000043f,0x00000007,0x0004003b,0x0000003d,0x00000443, + 0x00000007,0x0004003b,0x0000004e,0x00000445,0x00000007,0x0004003b,0x00000007,0x00000448, + 0x00000007,0x0004003b,0x00000007,0x00000449,0x00000007,0x0004003b,0x000000a4,0x00000469, + 0x00000007,0x0004003b,0x00000007,0x0000046a,0x00000007,0x0004003b,0x0000003d,0x0000046e, + 0x00000007,0x0004003b,0x0000004e,0x00000470,0x00000007,0x0004003b,0x00000007,0x00000473, + 0x00000007,0x0004003b,0x00000007,0x00000474,0x00000007,0x0004003b,0x00000007,0x0000047c, + 0x00000007,0x0004003b,0x00000007,0x00000485,0x00000007,0x0004003b,0x00000007,0x00000487, + 0x00000007,0x0004003b,0x0000004e,0x00000489,0x00000007,0x0004003b,0x000000a4,0x000004af, + 0x00000007,0x0004003b,0x000000a4,0x000004b0,0x00000007,0x0004003b,0x000000a4,0x000004b1, + 0x00000007,0x0004003b,0x000000a4,0x000004b2,0x00000007,0x0004003b,0x0000003d,0x000004c9, + 0x00000007,0x0004003b,0x0000004e,0x000004ca,0x00000007,0x0004003b,0x00000007,0x000004cd, + 0x00000007,0x0004003b,0x00000007,0x000004ce,0x00000007,0x0004003b,0x00000007,0x000004dc, + 0x00000007,0x0004003b,0x00000007,0x000004dd,0x00000007,0x0004003b,0x0000004e,0x000004de, + 0x00000007,0x0004003b,0x00000007,0x000004e6,0x00000007,0x0004003b,0x00000007,0x000004e7, + 0x00000007,0x0004003b,0x0000004e,0x000004e8,0x00000007,0x0004003b,0x00000007,0x000004f0, + 0x00000007,0x0004003b,0x00000007,0x000004f1,0x00000007,0x0004003b,0x0000004e,0x000004f2, + 0x00000007,0x0004003b,0x00000007,0x000004fa,0x00000007,0x0004003b,0x00000007,0x000004fb, + 0x00000007,0x0004003b,0x0000004e,0x000004fc,0x00000007,0x0004003d,0x00000029,0x000003d0, + 0x000000c7,0x00050050,0x00000029,0x000003d2,0x000003d1,0x000003d1,0x00050084,0x00000029, + 0x000003d3,0x000003d0,0x000003d2,0x0004007c,0x0000002e,0x000003d4,0x000003d3,0x0004003d, + 0x00000006,0x000003d5,0x000000c5,0x00050084,0x00000006,0x000003d6,0x000003d5,0x00000141, + 0x0004007c,0x00000013,0x000003d7,0x000003d6,0x0004003d,0x00000006,0x000003d8,0x000000c6, + 0x00050084,0x00000006,0x000003d9,0x000003d8,0x00000141,0x0004007c,0x00000013,0x000003da, + 0x000003d9,0x00050050,0x0000002e,0x000003db,0x000003d7,0x000003da,0x00050080,0x0000002e, + 0x000003dc,0x000003d4,0x000003db,0x0003003e,0x000003cf,0x000003dc,0x0004003d,0x00000029, + 0x000003de,0x000000c7,0x00050050,0x00000029,0x000003e0,0x000003df,0x000003df,0x00050084, + 0x00000029,0x000003e1,0x000003de,0x000003e0,0x0004007c,0x0000002e,0x000003e2,0x000003e1, + 0x0004003d,0x00000006,0x000003e3,0x000000c5,0x0004007c,0x00000013,0x000003e4,0x000003e3, + 0x0004003d,0x00000006,0x000003e5,0x000000c6,0x0004007c,0x00000013,0x000003e6,0x000003e5, + 0x00050050,0x0000002e,0x000003e7,0x000003e4,0x000003e6,0x00050080,0x0000002e,0x000003e8, + 0x000003e2,0x000003e7,0x0003003e,0x000003dd,0x000003e8,0x0004003d,0x0000002e,0x000003ec, + 0x000003cf,0x0004007c,0x00000029,0x000003ed,0x000003ec,0x0003003e,0x000003ee,0x000003ed, + 0x0004003d,0x00000006,0x000003f0,0x000000ca,0x0003003e,0x000003ef,0x000003f0,0x00060039, + 0x0000004a,0x000003f1,0x000000c2,0x000003ee,0x000003ef,0x00050041,0x0000004e,0x000003f2, + 0x000003eb,0x00000127,0x0003003e,0x000003f2,0x000003f1,0x0004003d,0x0000002e,0x000003f4, + 0x000003dd,0x0003003e,0x000003f3,0x000003f4,0x00050041,0x0000004e,0x000003f6,0x000003eb, + 0x00000127,0x0004003d,0x0000004a,0x000003f7,0x000003f6,0x0003003e,0x000003f5,0x000003f7, + 0x0003003e,0x000003f8,0x00000186,0x0004003d,0x00000006,0x000003fa,0x000000ca,0x0003003e, + 0x000003f9,0x000003fa,0x00080039,0x00000002,0x000003fb,0x0000008e,0x000003f3,0x000003f5, + 0x000003f8,0x000003f9,0x0004003d,0x00000029,0x000003fc,0x000000c7,0x00050050,0x00000029, + 0x000003fd,0x000003d1,0x000003d1,0x00050084,0x00000029,0x000003fe,0x000003fc,0x000003fd, + 0x0004007c,0x0000002e,0x000003ff,0x000003fe,0x0004003d,0x00000006,0x00000400,0x000000c5, + 0x00050084,0x00000006,0x00000401,0x00000400,0x00000141,0x00050080,0x00000006,0x00000402, + 0x00000401,0x000003df,0x0004007c,0x00000013,0x00000403,0x00000402,0x0004003d,0x00000006, + 0x00000404,0x000000c6,0x00050084,0x00000006,0x00000405,0x00000404,0x00000141,0x0004007c, + 0x00000013,0x00000406,0x00000405,0x00050050,0x0000002e,0x00000407,0x00000403,0x00000406, + 0x00050080,0x0000002e,0x00000408,0x000003ff,0x00000407,0x0003003e,0x000003cf,0x00000408, + 0x0004003d,0x00000029,0x00000409,0x000000c7,0x00050050,0x00000029,0x0000040a,0x000003df, + 0x000003df,0x00050084,0x00000029,0x0000040b,0x00000409,0x0000040a,0x0004007c,0x0000002e, + 0x0000040c,0x0000040b,0x0004003d,0x00000006,0x0000040d,0x000000c5,0x00050080,0x00000006, + 0x0000040e,0x0000040d,0x000002ec,0x0004007c,0x00000013,0x0000040f,0x0000040e,0x0004003d, + 0x00000006,0x00000410,0x000000c6,0x0004007c,0x00000013,0x00000411,0x00000410,0x00050050, + 0x0000002e,0x00000412,0x0000040f,0x00000411,0x00050080,0x0000002e,0x00000413,0x0000040c, + 0x00000412,0x0003003e,0x000003dd,0x00000413,0x0004003d,0x0000002e,0x00000414,0x000003cf, + 0x0004007c,0x00000029,0x00000415,0x00000414,0x0003003e,0x00000416,0x00000415,0x0004003d, + 0x00000006,0x00000418,0x000000ca,0x0003003e,0x00000417,0x00000418,0x00060039,0x0000004a, + 0x00000419,0x000000c2,0x00000416,0x00000417,0x00050041,0x0000004e,0x0000041a,0x000003eb, + 0x00000175,0x0003003e,0x0000041a,0x00000419,0x0004003d,0x0000002e,0x0000041c,0x000003dd, + 0x0003003e,0x0000041b,0x0000041c,0x00050041,0x0000004e,0x0000041e,0x000003eb,0x00000175, + 0x0004003d,0x0000004a,0x0000041f,0x0000041e,0x0003003e,0x0000041d,0x0000041f,0x0003003e, + 0x00000420,0x00000186,0x0004003d,0x00000006,0x00000422,0x000000ca,0x0003003e,0x00000421, + 0x00000422,0x00080039,0x00000002,0x00000423,0x0000008e,0x0000041b,0x0000041d,0x00000420, + 0x00000421,0x0004003d,0x00000029,0x00000424,0x000000c7,0x00050050,0x00000029,0x00000425, + 0x000003d1,0x000003d1,0x00050084,0x00000029,0x00000426,0x00000424,0x00000425,0x0004007c, + 0x0000002e,0x00000427,0x00000426,0x0004003d,0x00000006,0x00000428,0x000000c5,0x00050084, + 0x00000006,0x00000429,0x00000428,0x00000141,0x0004007c,0x00000013,0x0000042a,0x00000429, + 0x0004003d,0x00000006,0x0000042b,0x000000c6,0x00050084,0x00000006,0x0000042c,0x0000042b, + 0x00000141,0x00050080,0x00000006,0x0000042d,0x0000042c,0x000003df,0x0004007c,0x00000013, + 0x0000042e,0x0000042d,0x00050050,0x0000002e,0x0000042f,0x0000042a,0x0000042e,0x00050080, + 0x0000002e,0x00000430,0x00000427,0x0000042f,0x0003003e,0x000003cf,0x00000430,0x0004003d, + 0x00000029,0x00000431,0x000000c7,0x00050050,0x00000029,0x00000432,0x000003df,0x000003df, + 0x00050084,0x00000029,0x00000433,0x00000431,0x00000432,0x0004007c,0x0000002e,0x00000434, + 0x00000433,0x0004003d,0x00000006,0x00000435,0x000000c5,0x0004007c,0x00000013,0x00000436, + 0x00000435,0x0004003d,0x00000006,0x00000437,0x000000c6,0x00050080,0x00000006,0x00000438, + 0x00000437,0x000002ec,0x0004007c,0x00000013,0x00000439,0x00000438,0x00050050,0x0000002e, + 0x0000043a,0x00000436,0x00000439,0x00050080,0x0000002e,0x0000043b,0x00000434,0x0000043a, + 0x0003003e,0x000003dd,0x0000043b,0x0004003d,0x0000002e,0x0000043c,0x000003cf,0x0004007c, + 0x00000029,0x0000043d,0x0000043c,0x0003003e,0x0000043e,0x0000043d,0x0004003d,0x00000006, + 0x00000440,0x000000ca,0x0003003e,0x0000043f,0x00000440,0x00060039,0x0000004a,0x00000441, + 0x000000c2,0x0000043e,0x0000043f,0x00050041,0x0000004e,0x00000442,0x000003eb,0x0000017a, + 0x0003003e,0x00000442,0x00000441,0x0004003d,0x0000002e,0x00000444,0x000003dd,0x0003003e, + 0x00000443,0x00000444,0x00050041,0x0000004e,0x00000446,0x000003eb,0x0000017a,0x0004003d, + 0x0000004a,0x00000447,0x00000446,0x0003003e,0x00000445,0x00000447,0x0003003e,0x00000448, + 0x00000186,0x0004003d,0x00000006,0x0000044a,0x000000ca,0x0003003e,0x00000449,0x0000044a, + 0x00080039,0x00000002,0x0000044b,0x0000008e,0x00000443,0x00000445,0x00000448,0x00000449, + 0x0004003d,0x00000029,0x0000044c,0x000000c7,0x00050050,0x00000029,0x0000044d,0x000003d1, + 0x000003d1,0x00050084,0x00000029,0x0000044e,0x0000044c,0x0000044d,0x0004007c,0x0000002e, + 0x0000044f,0x0000044e,0x0004003d,0x00000006,0x00000450,0x000000c5,0x00050084,0x00000006, + 0x00000451,0x00000450,0x00000141,0x00050080,0x00000006,0x00000452,0x00000451,0x000003df, + 0x0004007c,0x00000013,0x00000453,0x00000452,0x0004003d,0x00000006,0x00000454,0x000000c6, + 0x00050084,0x00000006,0x00000455,0x00000454,0x00000141,0x00050080,0x00000006,0x00000456, + 0x00000455,0x000003df,0x0004007c,0x00000013,0x00000457,0x00000456,0x00050050,0x0000002e, + 0x00000458,0x00000453,0x00000457,0x00050080,0x0000002e,0x00000459,0x0000044f,0x00000458, + 0x0003003e,0x000003cf,0x00000459,0x0004003d,0x00000029,0x0000045a,0x000000c7,0x00050050, + 0x00000029,0x0000045b,0x000003df,0x000003df,0x00050084,0x00000029,0x0000045c,0x0000045a, + 0x0000045b,0x0004007c,0x0000002e,0x0000045d,0x0000045c,0x0004003d,0x00000006,0x0000045e, + 0x000000c5,0x00050080,0x00000006,0x0000045f,0x0000045e,0x000002ec,0x0004007c,0x00000013, + 0x00000460,0x0000045f,0x0004003d,0x00000006,0x00000461,0x000000c6,0x00050080,0x00000006, + 0x00000462,0x00000461,0x000002ec,0x0004007c,0x00000013,0x00000463,0x00000462,0x00050050, + 0x0000002e,0x00000464,0x00000460,0x00000463,0x00050080,0x0000002e,0x00000465,0x0000045d, + 0x00000464,0x0003003e,0x000003dd,0x00000465,0x0004003d,0x0000002e,0x00000467,0x000003cf, + 0x0004007c,0x00000029,0x00000468,0x00000467,0x0003003e,0x00000469,0x00000468,0x0004003d, + 0x00000006,0x0000046b,0x000000ca,0x0003003e,0x0000046a,0x0000046b,0x00060039,0x0000004a, + 0x0000046c,0x000000c2,0x00000469,0x0000046a,0x00050041,0x0000004e,0x0000046d,0x000003eb, + 0x00000466,0x0003003e,0x0000046d,0x0000046c,0x0004003d,0x0000002e,0x0000046f,0x000003dd, + 0x0003003e,0x0000046e,0x0000046f,0x00050041,0x0000004e,0x00000471,0x000003eb,0x00000466, + 0x0004003d,0x0000004a,0x00000472,0x00000471,0x0003003e,0x00000470,0x00000472,0x0003003e, + 0x00000473,0x00000186,0x0004003d,0x00000006,0x00000475,0x000000ca,0x0003003e,0x00000474, + 0x00000475,0x00080039,0x00000002,0x00000476,0x0000008e,0x0000046e,0x00000470,0x00000473, + 0x00000474,0x0004003d,0x00000006,0x00000477,0x000000c9,0x000500b2,0x0000009d,0x00000478, + 0x00000477,0x00000148,0x000300f7,0x0000047a,0x00000000,0x000400fa,0x00000478,0x00000479, + 0x0000047a,0x000200f8,0x00000479,0x000100fd,0x000200f8,0x0000047a,0x0003003e,0x0000047c, + 0x00000186,0x000200f9,0x0000047d,0x000200f8,0x0000047d,0x000400f6,0x0000047f,0x00000480, + 0x00000000,0x000200f9,0x00000481,0x000200f8,0x00000481,0x0004003d,0x00000006,0x00000482, + 0x0000047c,0x000500b0,0x0000009d,0x00000483,0x00000482,0x000001ce,0x000400fa,0x00000483, + 0x0000047e,0x0000047f,0x000200f8,0x0000047e,0x0004003d,0x00000006,0x00000484,0x0000047c, + 0x0004003d,0x00000006,0x00000486,0x000000c5,0x0003003e,0x00000485,0x00000486,0x0004003d, + 0x00000006,0x00000488,0x000000c6,0x0003003e,0x00000487,0x00000488,0x00050041,0x0000004e, + 0x0000048a,0x000003eb,0x00000484,0x0004003d,0x0000004a,0x0000048b,0x0000048a,0x0003003e, + 0x00000489,0x0000048b,0x00070039,0x00000002,0x0000048c,0x00000099,0x00000485,0x00000487, + 0x00000489,0x00040039,0x00000002,0x0000048d,0x0000009b,0x0004003d,0x00000006,0x0000048e, + 0x000000c8,0x000500b0,0x0000009d,0x0000048f,0x0000048e,0x000003d1,0x000300f7,0x00000491, + 0x00000000,0x000400fa,0x0000048f,0x00000490,0x00000491,0x000200f8,0x00000490,0x0004003d, + 0x00000006,0x00000492,0x0000047c,0x0004003d,0x00000006,0x00000493,0x000000c5,0x00050084, + 0x00000006,0x00000494,0x00000493,0x00000141,0x00050080,0x00000006,0x00000495,0x00000494, + 0x00000186,0x0004003d,0x00000006,0x00000496,0x000000c6,0x00050084,0x00000006,0x00000497, + 0x00000496,0x00000141,0x00050080,0x00000006,0x00000498,0x00000497,0x00000186,0x00050050, + 0x00000029,0x00000499,0x00000495,0x00000498,0x0004003d,0x00000006,0x0000049a,0x000000c5, + 0x00050084,0x00000006,0x0000049b,0x0000049a,0x00000141,0x00050080,0x00000006,0x0000049c, + 0x0000049b,0x00000148,0x0004003d,0x00000006,0x0000049d,0x000000c6,0x00050084,0x00000006, + 0x0000049e,0x0000049d,0x00000141,0x00050080,0x00000006,0x0000049f,0x0000049e,0x00000186, + 0x00050050,0x00000029,0x000004a0,0x0000049c,0x0000049f,0x0004003d,0x00000006,0x000004a1, + 0x000000c5,0x00050084,0x00000006,0x000004a2,0x000004a1,0x00000141,0x00050080,0x00000006, + 0x000004a3,0x000004a2,0x00000186,0x0004003d,0x00000006,0x000004a4,0x000000c6,0x00050084, + 0x00000006,0x000004a5,0x000004a4,0x00000141,0x00050080,0x00000006,0x000004a6,0x000004a5, + 0x00000148,0x00050050,0x00000029,0x000004a7,0x000004a3,0x000004a6,0x0004003d,0x00000006, + 0x000004a8,0x000000c5,0x00050084,0x00000006,0x000004a9,0x000004a8,0x00000141,0x00050080, + 0x00000006,0x000004aa,0x000004a9,0x00000148,0x0004003d,0x00000006,0x000004ab,0x000000c6, + 0x00050084,0x00000006,0x000004ac,0x000004ab,0x00000141,0x00050080,0x00000006,0x000004ad, + 0x000004ac,0x00000148,0x00050050,0x00000029,0x000004ae,0x000004aa,0x000004ad,0x0003003e, + 0x000004af,0x00000499,0x0003003e,0x000004b0,0x000004a0,0x0003003e,0x000004b1,0x000004a7, + 0x0003003e,0x000004b2,0x000004ae,0x00080039,0x0000004a,0x000004b3,0x000000aa,0x000004af, + 0x000004b0,0x000004b1,0x000004b2,0x00050041,0x0000004e,0x000004b4,0x000003eb,0x00000492, + 0x0003003e,0x000004b4,0x000004b3,0x0004003d,0x00000029,0x000004b5,0x000000c7,0x00050050, + 0x00000029,0x000004b6,0x000002ec,0x000002ec,0x00050084,0x00000029,0x000004b7,0x000004b5, + 0x000004b6,0x0004007c,0x0000002e,0x000004b8,0x000004b7,0x0004003d,0x00000006,0x000004b9, + 0x000000c5,0x0004003d,0x00000006,0x000004ba,0x0000047c,0x00050089,0x00000006,0x000004bb, + 0x000004ba,0x00000141,0x00050084,0x00000006,0x000004bd,0x000004bb,0x000004bc,0x00050080, + 0x00000006,0x000004be,0x000004b9,0x000004bd,0x0004007c,0x00000013,0x000004bf,0x000004be, + 0x0004003d,0x00000006,0x000004c0,0x000000c6,0x0004003d,0x00000006,0x000004c1,0x0000047c, + 0x00050086,0x00000006,0x000004c2,0x000004c1,0x00000141,0x00050084,0x00000006,0x000004c3, + 0x000004c2,0x000004bc,0x00050080,0x00000006,0x000004c4,0x000004c0,0x000004c3,0x0004007c, + 0x00000013,0x000004c5,0x000004c4,0x00050050,0x0000002e,0x000004c6,0x000004bf,0x000004c5, + 0x00050080,0x0000002e,0x000004c7,0x000004b8,0x000004c6,0x0004003d,0x00000006,0x000004c8, + 0x0000047c,0x0003003e,0x000004c9,0x000004c7,0x00050041,0x0000004e,0x000004cb,0x000003eb, + 0x000004c8,0x0004003d,0x0000004a,0x000004cc,0x000004cb,0x0003003e,0x000004ca,0x000004cc, + 0x0003003e,0x000004cd,0x00000148,0x0004003d,0x00000006,0x000004cf,0x000000ca,0x0003003e, + 0x000004ce,0x000004cf,0x00080039,0x00000002,0x000004d0,0x0000008e,0x000004c9,0x000004ca, + 0x000004cd,0x000004ce,0x000200f9,0x00000491,0x000200f8,0x00000491,0x00040039,0x00000002, + 0x000004d1,0x0000009b,0x000200f9,0x00000480,0x000200f8,0x00000480,0x0004003d,0x00000006, + 0x000004d2,0x0000047c,0x00050080,0x00000006,0x000004d3,0x000004d2,0x00000175,0x0003003e, + 0x0000047c,0x000004d3,0x000200f9,0x0000047d,0x000200f8,0x0000047f,0x0004003d,0x00000006, + 0x000004d4,0x000000c8,0x000500b0,0x0000009d,0x000004d5,0x000004d4,0x000003d1,0x000300f7, + 0x000004d7,0x00000000,0x000400fa,0x000004d5,0x000004d6,0x000004d7,0x000200f8,0x000004d6, + 0x0004003d,0x00000006,0x000004d8,0x000000c5,0x00050080,0x00000006,0x000004d9,0x000004d8, + 0x00000186,0x0004003d,0x00000006,0x000004da,0x000000c6,0x00050080,0x00000006,0x000004db, + 0x000004da,0x00000186,0x0003003e,0x000004dc,0x000004d9,0x0003003e,0x000004dd,0x000004db, + 0x00050041,0x0000004e,0x000004df,0x000003eb,0x00000127,0x0004003d,0x0000004a,0x000004e0, + 0x000004df,0x0003003e,0x000004de,0x000004e0,0x00070039,0x00000002,0x000004e1,0x00000099, + 0x000004dc,0x000004dd,0x000004de,0x0004003d,0x00000006,0x000004e2,0x000000c5,0x00050080, + 0x00000006,0x000004e3,0x000004e2,0x000004bc,0x0004003d,0x00000006,0x000004e4,0x000000c6, + 0x00050080,0x00000006,0x000004e5,0x000004e4,0x00000186,0x0003003e,0x000004e6,0x000004e3, + 0x0003003e,0x000004e7,0x000004e5,0x00050041,0x0000004e,0x000004e9,0x000003eb,0x00000175, + 0x0004003d,0x0000004a,0x000004ea,0x000004e9,0x0003003e,0x000004e8,0x000004ea,0x00070039, + 0x00000002,0x000004eb,0x00000099,0x000004e6,0x000004e7,0x000004e8,0x0004003d,0x00000006, + 0x000004ec,0x000000c5,0x00050080,0x00000006,0x000004ed,0x000004ec,0x00000186,0x0004003d, + 0x00000006,0x000004ee,0x000000c6,0x00050080,0x00000006,0x000004ef,0x000004ee,0x000004bc, + 0x0003003e,0x000004f0,0x000004ed,0x0003003e,0x000004f1,0x000004ef,0x00050041,0x0000004e, + 0x000004f3,0x000003eb,0x0000017a,0x0004003d,0x0000004a,0x000004f4,0x000004f3,0x0003003e, + 0x000004f2,0x000004f4,0x00070039,0x00000002,0x000004f5,0x00000099,0x000004f0,0x000004f1, + 0x000004f2,0x0004003d,0x00000006,0x000004f6,0x000000c5,0x00050080,0x00000006,0x000004f7, + 0x000004f6,0x000004bc,0x0004003d,0x00000006,0x000004f8,0x000000c6,0x00050080,0x00000006, + 0x000004f9,0x000004f8,0x000004bc,0x0003003e,0x000004fa,0x000004f7,0x0003003e,0x000004fb, + 0x000004f9,0x00050041,0x0000004e,0x000004fd,0x000003eb,0x00000466,0x0004003d,0x0000004a, + 0x000004fe,0x000004fd,0x0003003e,0x000004fc,0x000004fe,0x00070039,0x00000002,0x000004ff, + 0x00000099,0x000004fa,0x000004fb,0x000004fc,0x000200f9,0x000004d7,0x000200f8,0x000004d7, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000d3,0x00000000,0x000000c4,0x00030037, + 0x00000007,0x000000cd,0x00030037,0x00000007,0x000000ce,0x00030037,0x000000a4,0x000000cf, + 0x00030037,0x00000007,0x000000d0,0x00030037,0x00000007,0x000000d1,0x00030037,0x00000007, + 0x000000d2,0x000200f8,0x000000d4,0x0004003b,0x00000007,0x00000500,0x00000007,0x0004003b, + 0x00000007,0x00000502,0x00000007,0x0004003b,0x000000a4,0x00000504,0x00000007,0x0004003b, + 0x00000007,0x00000506,0x00000007,0x0004003b,0x00000007,0x00000508,0x00000007,0x0004003b, + 0x00000007,0x0000050a,0x00000007,0x0004003d,0x00000006,0x00000501,0x000000cd,0x0003003e, + 0x00000500,0x00000501,0x0004003d,0x00000006,0x00000503,0x000000ce,0x0003003e,0x00000502, + 0x00000503,0x0004003d,0x00000029,0x00000505,0x000000cf,0x0003003e,0x00000504,0x00000505, + 0x0004003d,0x00000006,0x00000507,0x000000d0,0x0003003e,0x00000506,0x00000507,0x0004003d, + 0x00000006,0x00000509,0x000000d1,0x0003003e,0x00000508,0x00000509,0x0004003d,0x00000006, + 0x0000050b,0x000000d2,0x0003003e,0x0000050a,0x0000050b,0x000a0039,0x00000002,0x0000050c, + 0x000000cb,0x00000500,0x00000502,0x00000504,0x00000506,0x00000508,0x0000050a,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x000000db,0x00000000,0x000000c4,0x00030037,0x00000007, + 0x000000d5,0x00030037,0x00000007,0x000000d6,0x00030037,0x000000a4,0x000000d7,0x00030037, + 0x00000007,0x000000d8,0x00030037,0x00000007,0x000000d9,0x00030037,0x00000007,0x000000da, + 0x000200f8,0x000000dc,0x0004003b,0x0000004e,0x00000511,0x00000007,0x0004003b,0x000000a4, + 0x0000052e,0x00000007,0x0004003b,0x000000a4,0x0000052f,0x00000007,0x0004003b,0x000000a4, + 0x00000530,0x00000007,0x0004003b,0x000000a4,0x00000531,0x00000007,0x0004003b,0x0000003d, + 0x0000053d,0x00000007,0x0004003b,0x0000004e,0x0000053e,0x00000007,0x0004003b,0x00000007, + 0x00000540,0x00000007,0x0004003b,0x00000007,0x00000542,0x00000007,0x0004003b,0x00000007, + 0x0000054c,0x00000007,0x0004003b,0x00000007,0x0000054d,0x00000007,0x0004003b,0x0000004e, + 0x0000054e,0x00000007,0x0004003d,0x00000006,0x0000050d,0x000000d8,0x000500b0,0x0000009d, + 0x0000050e,0x0000050d,0x000003d1,0x000300f7,0x00000510,0x00000000,0x000400fa,0x0000050e, + 0x0000050f,0x00000510,0x000200f8,0x0000050f,0x0004003d,0x00000006,0x00000512,0x000000d5, + 0x00050084,0x00000006,0x00000513,0x00000512,0x00000141,0x00050080,0x00000006,0x00000514, + 0x00000513,0x00000186,0x0004003d,0x00000006,0x00000515,0x000000d6,0x00050084,0x00000006, + 0x00000516,0x00000515,0x00000141,0x00050080,0x00000006,0x00000517,0x00000516,0x00000186, + 0x00050050,0x00000029,0x00000518,0x00000514,0x00000517,0x0004003d,0x00000006,0x00000519, + 0x000000d5,0x00050084,0x00000006,0x0000051a,0x00000519,0x00000141,0x00050080,0x00000006, + 0x0000051b,0x0000051a,0x00000148,0x0004003d,0x00000006,0x0000051c,0x000000d6,0x00050084, + 0x00000006,0x0000051d,0x0000051c,0x00000141,0x00050080,0x00000006,0x0000051e,0x0000051d, + 0x00000186,0x00050050,0x00000029,0x0000051f,0x0000051b,0x0000051e,0x0004003d,0x00000006, + 0x00000520,0x000000d5,0x00050084,0x00000006,0x00000521,0x00000520,0x00000141,0x00050080, + 0x00000006,0x00000522,0x00000521,0x00000186,0x0004003d,0x00000006,0x00000523,0x000000d6, + 0x00050084,0x00000006,0x00000524,0x00000523,0x00000141,0x00050080,0x00000006,0x00000525, + 0x00000524,0x00000148,0x00050050,0x00000029,0x00000526,0x00000522,0x00000525,0x0004003d, + 0x00000006,0x00000527,0x000000d5,0x00050084,0x00000006,0x00000528,0x00000527,0x00000141, + 0x00050080,0x00000006,0x00000529,0x00000528,0x00000148,0x0004003d,0x00000006,0x0000052a, + 0x000000d6,0x00050084,0x00000006,0x0000052b,0x0000052a,0x00000141,0x00050080,0x00000006, + 0x0000052c,0x0000052b,0x00000148,0x00050050,0x00000029,0x0000052d,0x00000529,0x0000052c, + 0x0003003e,0x0000052e,0x00000518,0x0003003e,0x0000052f,0x0000051f,0x0003003e,0x00000530, + 0x00000526,0x0003003e,0x00000531,0x0000052d,0x00080039,0x0000004a,0x00000532,0x000000aa, + 0x0000052e,0x0000052f,0x00000530,0x00000531,0x0003003e,0x00000511,0x00000532,0x0004003d, + 0x00000029,0x00000533,0x000000d7,0x00050050,0x00000029,0x00000534,0x000004bc,0x000004bc, + 0x00050084,0x00000029,0x00000535,0x00000533,0x00000534,0x0004007c,0x0000002e,0x00000536, + 0x00000535,0x0004003d,0x00000006,0x00000537,0x000000d5,0x0004007c,0x00000013,0x00000538, + 0x00000537,0x0004003d,0x00000006,0x00000539,0x000000d6,0x0004007c,0x00000013,0x0000053a, + 0x00000539,0x00050050,0x0000002e,0x0000053b,0x00000538,0x0000053a,0x00050080,0x0000002e, + 0x0000053c,0x00000536,0x0000053b,0x0003003e,0x0000053d,0x0000053c,0x0004003d,0x0000004a, + 0x0000053f,0x00000511,0x0003003e,0x0000053e,0x0000053f,0x0004003d,0x00000006,0x00000541, + 0x000000d9,0x0003003e,0x00000540,0x00000541,0x0004003d,0x00000006,0x00000543,0x000000da, + 0x0003003e,0x00000542,0x00000543,0x00080039,0x00000002,0x00000544,0x0000008e,0x0000053d, + 0x0000053e,0x00000540,0x00000542,0x0004003d,0x00000006,0x00000545,0x000000d5,0x00050084, + 0x00000006,0x00000546,0x00000545,0x00000141,0x0004003d,0x00000006,0x00000547,0x000000d6, + 0x00050089,0x00000006,0x00000548,0x00000547,0x00000141,0x00050080,0x00000006,0x00000549, + 0x00000546,0x00000548,0x0004003d,0x00000006,0x0000054a,0x000000d6,0x00050084,0x00000006, + 0x0000054b,0x0000054a,0x00000141,0x0003003e,0x0000054c,0x00000549,0x0003003e,0x0000054d, + 0x0000054b,0x0004003d,0x0000004a,0x0000054f,0x00000511,0x0003003e,0x0000054e,0x0000054f, + 0x00070039,0x00000002,0x00000550,0x00000099,0x0000054c,0x0000054d,0x0000054e,0x000200f9, + 0x00000510,0x000200f8,0x00000510,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000e3, + 0x00000000,0x000000c4,0x00030037,0x00000007,0x000000dd,0x00030037,0x00000007,0x000000de, + 0x00030037,0x000000a4,0x000000df,0x00030037,0x00000007,0x000000e0,0x00030037,0x00000007, + 0x000000e1,0x00030037,0x00000007,0x000000e2,0x000200f8,0x000000e4,0x0004003b,0x0000004e, + 0x00000555,0x00000007,0x0004003b,0x000000a4,0x00000576,0x00000007,0x0004003b,0x000000a4, + 0x00000577,0x00000007,0x0004003b,0x000000a4,0x00000578,0x00000007,0x0004003b,0x000000a4, + 0x00000579,0x00000007,0x0004003b,0x0000003d,0x00000585,0x00000007,0x0004003b,0x0000004e, + 0x00000586,0x00000007,0x0004003b,0x00000007,0x00000588,0x00000007,0x0004003b,0x00000007, + 0x0000058a,0x00000007,0x0004003b,0x00000007,0x00000593,0x00000007,0x0004003b,0x00000007, + 0x00000594,0x00000007,0x0004003b,0x0000004e,0x00000595,0x00000007,0x0004003d,0x00000006, + 0x00000551,0x000000e0,0x000500b0,0x0000009d,0x00000552,0x00000551,0x000002ec,0x000300f7, + 0x00000554,0x00000000,0x000400fa,0x00000552,0x00000553,0x00000554,0x000200f8,0x00000553, + 0x0004003d,0x00000006,0x00000556,0x000000dd,0x00050084,0x00000006,0x00000557,0x00000556, + 0x000001ce,0x00050080,0x00000006,0x00000558,0x00000557,0x00000186,0x00050080,0x00000006, + 0x00000559,0x00000558,0x00000186,0x0004003d,0x00000006,0x0000055a,0x000000de,0x00050084, + 0x00000006,0x0000055b,0x0000055a,0x000001ce,0x00050080,0x00000006,0x0000055c,0x0000055b, + 0x00000186,0x00050050,0x00000029,0x0000055d,0x00000559,0x0000055c,0x0004003d,0x00000006, + 0x0000055e,0x000000dd,0x00050084,0x00000006,0x0000055f,0x0000055e,0x000001ce,0x00050080, + 0x00000006,0x00000560,0x0000055f,0x00000141,0x00050080,0x00000006,0x00000561,0x00000560, + 0x00000186,0x0004003d,0x00000006,0x00000562,0x000000de,0x00050084,0x00000006,0x00000563, + 0x00000562,0x000001ce,0x00050080,0x00000006,0x00000564,0x00000563,0x00000186,0x00050050, + 0x00000029,0x00000565,0x00000561,0x00000564,0x0004003d,0x00000006,0x00000566,0x000000dd, + 0x00050084,0x00000006,0x00000567,0x00000566,0x000001ce,0x00050080,0x00000006,0x00000568, + 0x00000567,0x00000186,0x00050080,0x00000006,0x00000569,0x00000568,0x00000148,0x0004003d, + 0x00000006,0x0000056a,0x000000de,0x00050084,0x00000006,0x0000056b,0x0000056a,0x000001ce, + 0x00050080,0x00000006,0x0000056c,0x0000056b,0x00000141,0x00050050,0x00000029,0x0000056d, + 0x00000569,0x0000056c,0x0004003d,0x00000006,0x0000056e,0x000000dd,0x00050084,0x00000006, + 0x0000056f,0x0000056e,0x000001ce,0x00050080,0x00000006,0x00000570,0x0000056f,0x00000141, + 0x00050080,0x00000006,0x00000571,0x00000570,0x00000148,0x0004003d,0x00000006,0x00000572, + 0x000000de,0x00050084,0x00000006,0x00000573,0x00000572,0x000001ce,0x00050080,0x00000006, + 0x00000574,0x00000573,0x00000141,0x00050050,0x00000029,0x00000575,0x00000571,0x00000574, + 0x0003003e,0x00000576,0x0000055d,0x0003003e,0x00000577,0x00000565,0x0003003e,0x00000578, + 0x0000056d,0x0003003e,0x00000579,0x00000575,0x00080039,0x0000004a,0x0000057a,0x000000aa, + 0x00000576,0x00000577,0x00000578,0x00000579,0x0003003e,0x00000555,0x0000057a,0x0004003d, + 0x00000029,0x0000057b,0x000000df,0x00050050,0x00000029,0x0000057c,0x000001ce,0x000001ce, + 0x00050084,0x00000029,0x0000057d,0x0000057b,0x0000057c,0x0004007c,0x0000002e,0x0000057e, + 0x0000057d,0x0004003d,0x00000006,0x0000057f,0x000000dd,0x0004007c,0x00000013,0x00000580, + 0x0000057f,0x0004003d,0x00000006,0x00000581,0x000000de,0x0004007c,0x00000013,0x00000582, + 0x00000581,0x00050050,0x0000002e,0x00000583,0x00000580,0x00000582,0x00050080,0x0000002e, + 0x00000584,0x0000057e,0x00000583,0x0003003e,0x00000585,0x00000584,0x0004003d,0x0000004a, + 0x00000587,0x00000555,0x0003003e,0x00000586,0x00000587,0x0004003d,0x00000006,0x00000589, + 0x000000e1,0x0003003e,0x00000588,0x00000589,0x0004003d,0x00000006,0x0000058b,0x000000e2, + 0x0003003e,0x0000058a,0x0000058b,0x00080039,0x00000002,0x0000058c,0x0000008e,0x00000585, + 0x00000586,0x00000588,0x0000058a,0x0004003d,0x00000006,0x0000058d,0x000000dd,0x00050084, + 0x00000006,0x0000058e,0x0000058d,0x000001ce,0x0004003d,0x00000006,0x0000058f,0x000000de, + 0x00050080,0x00000006,0x00000590,0x0000058e,0x0000058f,0x0004003d,0x00000006,0x00000591, + 0x000000de,0x00050084,0x00000006,0x00000592,0x00000591,0x000001ce,0x0003003e,0x00000593, + 0x00000590,0x0003003e,0x00000594,0x00000592,0x0004003d,0x0000004a,0x00000596,0x00000555, + 0x0003003e,0x00000595,0x00000596,0x00070039,0x00000002,0x00000597,0x00000099,0x00000593, + 0x00000594,0x00000595,0x000200f9,0x00000554,0x000200f8,0x00000554,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000eb,0x00000000,0x000000c4,0x00030037,0x00000007,0x000000e5, + 0x00030037,0x00000007,0x000000e6,0x00030037,0x000000a4,0x000000e7,0x00030037,0x00000007, + 0x000000e8,0x00030037,0x00000007,0x000000e9,0x00030037,0x00000007,0x000000ea,0x000200f8, + 0x000000ec,0x0004003b,0x0000004e,0x0000059c,0x00000007,0x0004003b,0x000000a4,0x000005c9, + 0x00000007,0x0004003b,0x000000a4,0x000005ca,0x00000007,0x0004003b,0x000000a4,0x000005cb, + 0x00000007,0x0004003b,0x000000a4,0x000005cc,0x00000007,0x0004003b,0x0000003d,0x000005d8, + 0x00000007,0x0004003b,0x0000004e,0x000005d9,0x00000007,0x0004003b,0x00000007,0x000005db, + 0x00000007,0x0004003b,0x00000007,0x000005dd,0x00000007,0x0004003b,0x00000007,0x000005e4, + 0x00000007,0x0004003b,0x00000007,0x000005e5,0x00000007,0x0004003b,0x0000004e,0x000005e6, + 0x00000007,0x0004003d,0x00000006,0x00000598,0x000000e8,0x000500b0,0x0000009d,0x00000599, + 0x00000598,0x000001ce,0x000300f7,0x0000059b,0x00000000,0x000400fa,0x00000599,0x0000059a, + 0x0000059b,0x000200f8,0x0000059a,0x0004003d,0x00000006,0x0000059d,0x000000e5,0x00050084, + 0x00000006,0x0000059e,0x0000059d,0x000004bc,0x00050080,0x00000006,0x0000059f,0x0000059e, + 0x00000186,0x00050080,0x00000006,0x000005a0,0x0000059f,0x00000186,0x0004003d,0x00000006, + 0x000005a1,0x000000e6,0x00050084,0x00000006,0x000005a2,0x000005a1,0x00000141,0x00050080, + 0x00000006,0x000005a3,0x000005a0,0x000005a2,0x0004003d,0x00000006,0x000005a4,0x000000e6, + 0x00050084,0x00000006,0x000005a5,0x000005a4,0x000004bc,0x00050080,0x00000006,0x000005a6, + 0x000005a5,0x00000186,0x00050050,0x00000029,0x000005a7,0x000005a3,0x000005a6,0x0004003d, + 0x00000006,0x000005a8,0x000000e5,0x00050084,0x00000006,0x000005a9,0x000005a8,0x000004bc, + 0x00050080,0x00000006,0x000005aa,0x000005a9,0x000001ce,0x00050080,0x00000006,0x000005ab, + 0x000005aa,0x00000186,0x0004003d,0x00000006,0x000005ac,0x000000e6,0x00050084,0x00000006, + 0x000005ad,0x000005ac,0x00000141,0x00050080,0x00000006,0x000005ae,0x000005ab,0x000005ad, + 0x0004003d,0x00000006,0x000005af,0x000000e6,0x00050084,0x00000006,0x000005b0,0x000005af, + 0x000004bc,0x00050080,0x00000006,0x000005b1,0x000005b0,0x00000186,0x00050050,0x00000029, + 0x000005b2,0x000005ae,0x000005b1,0x0004003d,0x00000006,0x000005b3,0x000000e5,0x00050084, + 0x00000006,0x000005b4,0x000005b3,0x000004bc,0x00050080,0x00000006,0x000005b5,0x000005b4, + 0x00000186,0x00050080,0x00000006,0x000005b6,0x000005b5,0x00000148,0x0004003d,0x00000006, + 0x000005b7,0x000000e6,0x00050084,0x00000006,0x000005b8,0x000005b7,0x00000141,0x00050080, + 0x00000006,0x000005b9,0x000005b6,0x000005b8,0x0004003d,0x00000006,0x000005ba,0x000000e6, + 0x00050084,0x00000006,0x000005bb,0x000005ba,0x000004bc,0x00050080,0x00000006,0x000005bc, + 0x000005bb,0x000001ce,0x00050050,0x00000029,0x000005bd,0x000005b9,0x000005bc,0x0004003d, + 0x00000006,0x000005be,0x000000e5,0x00050084,0x00000006,0x000005bf,0x000005be,0x000004bc, + 0x00050080,0x00000006,0x000005c0,0x000005bf,0x000001ce,0x00050080,0x00000006,0x000005c1, + 0x000005c0,0x00000148,0x0004003d,0x00000006,0x000005c2,0x000000e6,0x00050084,0x00000006, + 0x000005c3,0x000005c2,0x00000141,0x00050080,0x00000006,0x000005c4,0x000005c1,0x000005c3, + 0x0004003d,0x00000006,0x000005c5,0x000000e6,0x00050084,0x00000006,0x000005c6,0x000005c5, + 0x000004bc,0x00050080,0x00000006,0x000005c7,0x000005c6,0x000001ce,0x00050050,0x00000029, + 0x000005c8,0x000005c4,0x000005c7,0x0003003e,0x000005c9,0x000005a7,0x0003003e,0x000005ca, + 0x000005b2,0x0003003e,0x000005cb,0x000005bd,0x0003003e,0x000005cc,0x000005c8,0x00080039, + 0x0000004a,0x000005cd,0x000000aa,0x000005c9,0x000005ca,0x000005cb,0x000005cc,0x0003003e, + 0x0000059c,0x000005cd,0x0004003d,0x00000029,0x000005ce,0x000000e7,0x00050050,0x00000029, + 0x000005cf,0x00000141,0x00000141,0x00050084,0x00000029,0x000005d0,0x000005ce,0x000005cf, + 0x0004007c,0x0000002e,0x000005d1,0x000005d0,0x0004003d,0x00000006,0x000005d2,0x000000e5, + 0x0004007c,0x00000013,0x000005d3,0x000005d2,0x0004003d,0x00000006,0x000005d4,0x000000e6, + 0x0004007c,0x00000013,0x000005d5,0x000005d4,0x00050050,0x0000002e,0x000005d6,0x000005d3, + 0x000005d5,0x00050080,0x0000002e,0x000005d7,0x000005d1,0x000005d6,0x0003003e,0x000005d8, + 0x000005d7,0x0004003d,0x0000004a,0x000005da,0x0000059c,0x0003003e,0x000005d9,0x000005da, + 0x0004003d,0x00000006,0x000005dc,0x000000e9,0x0003003e,0x000005db,0x000005dc,0x0004003d, + 0x00000006,0x000005de,0x000000ea,0x0003003e,0x000005dd,0x000005de,0x00080039,0x00000002, + 0x000005df,0x0000008e,0x000005d8,0x000005d9,0x000005db,0x000005dd,0x0004003d,0x00000006, + 0x000005e0,0x000000e5,0x0004003d,0x00000006,0x000005e1,0x000000e6,0x00050084,0x00000006, + 0x000005e2,0x000005e1,0x00000141,0x00050080,0x00000006,0x000005e3,0x000005e0,0x000005e2, + 0x0003003e,0x000005e4,0x000005e3,0x0003003e,0x000005e5,0x00000186,0x0004003d,0x0000004a, + 0x000005e7,0x0000059c,0x0003003e,0x000005e6,0x000005e7,0x00070039,0x00000002,0x000005e8, + 0x00000099,0x000005e4,0x000005e5,0x000005e6,0x000200f9,0x0000059b,0x000200f8,0x0000059b, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f2,0x00000000,0x000000ed,0x00030037, + 0x000000a4,0x000000ee,0x00030037,0x00000007,0x000000ef,0x00030037,0x00000007,0x000000f0, + 0x00030037,0x00000007,0x000000f1,0x000200f8,0x000000f3,0x0004003b,0x0000004e,0x000005ed, + 0x00000007,0x0004003b,0x000000a4,0x000005f0,0x00000007,0x0004003b,0x000000a4,0x000005f1, + 0x00000007,0x0004003b,0x000000a4,0x000005f2,0x00000007,0x0004003b,0x000000a4,0x000005f3, + 0x00000007,0x0004003b,0x0000003d,0x000005f7,0x00000007,0x0004003b,0x0000004e,0x000005f8, + 0x00000007,0x0004003b,0x00000007,0x000005fa,0x00000007,0x0004003b,0x00000007,0x000005fc, + 0x00000007,0x0004003d,0x00000006,0x000005e9,0x000000ef,0x000500b0,0x0000009d,0x000005ea, + 0x000005e9,0x00000148,0x000300f7,0x000005ec,0x00000000,0x000400fa,0x000005ea,0x000005eb, + 0x000005ec,0x000200f8,0x000005eb,0x0003003e,0x000005f0,0x0000037f,0x0003003e,0x000005f1, + 0x00000385,0x0003003e,0x000005f2,0x000005ee,0x0003003e,0x000005f3,0x000005ef,0x00080039, + 0x0000004a,0x000005f4,0x000000aa,0x000005f0,0x000005f1,0x000005f2,0x000005f3,0x0003003e, + 0x000005ed,0x000005f4,0x0004003d,0x00000029,0x000005f5,0x000000ee,0x0004007c,0x0000002e, + 0x000005f6,0x000005f5,0x0003003e,0x000005f7,0x000005f6,0x0004003d,0x0000004a,0x000005f9, + 0x000005ed,0x0003003e,0x000005f8,0x000005f9,0x0004003d,0x00000006,0x000005fb,0x000000f0, + 0x0003003e,0x000005fa,0x000005fb,0x0004003d,0x00000006,0x000005fd,0x000000f1,0x0003003e, + 0x000005fc,0x000005fd,0x00080039,0x00000002,0x000005fe,0x0000008e,0x000005f7,0x000005f8, + 0x000005fa,0x000005fc,0x000200f9,0x000005ec,0x000200f8,0x000005ec,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000f9,0x00000000,0x000000f4,0x00030037,0x00000007,0x000000f5, + 0x00030037,0x00000007,0x000000f6,0x00030037,0x00000007,0x000000f7,0x00030037,0x00000007, + 0x000000f8,0x000200f8,0x000000fa,0x0004003b,0x0000003d,0x000005ff,0x00000007,0x0004003b, + 0x0000003d,0x00000609,0x00000007,0x0004003b,0x0000004e,0x00000613,0x00000007,0x0004003b, + 0x000000a4,0x00000616,0x00000007,0x0004003b,0x00000007,0x00000617,0x00000007,0x0004003b, + 0x0000003d,0x0000061b,0x00000007,0x0004003b,0x0000004e,0x0000061d,0x00000007,0x0004003b, + 0x00000007,0x0000061f,0x00000007,0x0004003b,0x00000007,0x00000620,0x00000007,0x0004003b, + 0x0000004e,0x00000635,0x00000007,0x0004003b,0x000000a4,0x00000638,0x00000007,0x0004003b, + 0x00000007,0x00000639,0x00000007,0x0004003b,0x0000003d,0x0000063c,0x00000007,0x0004003b, + 0x0000004e,0x0000063e,0x00000007,0x0004003b,0x00000007,0x00000640,0x00000007,0x0004003b, + 0x00000007,0x00000641,0x00000007,0x0004003b,0x0000004e,0x00000656,0x00000007,0x0004003b, + 0x000000a4,0x00000659,0x00000007,0x0004003b,0x00000007,0x0000065a,0x00000007,0x0004003b, + 0x0000003d,0x0000065d,0x00000007,0x0004003b,0x0000004e,0x0000065f,0x00000007,0x0004003b, + 0x00000007,0x00000661,0x00000007,0x0004003b,0x00000007,0x00000662,0x00000007,0x0004003b, + 0x0000004e,0x00000677,0x00000007,0x0004003b,0x000000a4,0x0000067a,0x00000007,0x0004003b, + 0x00000007,0x0000067b,0x00000007,0x0004003b,0x0000003d,0x0000067e,0x00000007,0x0004003b, + 0x0000004e,0x00000680,0x00000007,0x0004003b,0x00000007,0x00000682,0x00000007,0x0004003b, + 0x00000007,0x00000683,0x00000007,0x0004003b,0x0000004e,0x0000068c,0x00000007,0x0004003b, + 0x0000004e,0x0000068d,0x00000007,0x0004003b,0x0000004e,0x0000068f,0x00000007,0x0004003b, + 0x0000004e,0x00000691,0x00000007,0x0004003b,0x0000004e,0x00000693,0x00000007,0x0004003b, + 0x0000003d,0x0000069b,0x00000007,0x0004003b,0x0000004e,0x0000069c,0x00000007,0x0004003b, + 0x00000007,0x0000069e,0x00000007,0x0004003b,0x00000007,0x0000069f,0x00000007,0x0004003b, + 0x00000007,0x000006a2,0x00000007,0x0004003b,0x00000007,0x000006a4,0x00000007,0x0004003b, + 0x0000004e,0x000006a6,0x00000007,0x0004003d,0x00000006,0x00000600,0x000000f5,0x00050084, + 0x00000006,0x00000601,0x00000600,0x000001ce,0x00050080,0x00000006,0x00000602,0x00000601, + 0x00000186,0x0004007c,0x00000013,0x00000603,0x00000602,0x0004003d,0x00000006,0x00000604, + 0x000000f6,0x00050084,0x00000006,0x00000605,0x00000604,0x000001ce,0x00050080,0x00000006, + 0x00000606,0x00000605,0x00000186,0x0004007c,0x00000013,0x00000607,0x00000606,0x00050050, + 0x0000002e,0x00000608,0x00000603,0x00000607,0x0003003e,0x000005ff,0x00000608,0x0004003d, + 0x00000006,0x0000060a,0x000000f5,0x00050084,0x00000006,0x0000060b,0x0000060a,0x00000141, + 0x00050080,0x00000006,0x0000060c,0x0000060b,0x00000186,0x0004007c,0x00000013,0x0000060d, + 0x0000060c,0x0004003d,0x00000006,0x0000060e,0x000000f6,0x00050084,0x00000006,0x0000060f, + 0x0000060e,0x00000141,0x00050080,0x00000006,0x00000610,0x0000060f,0x00000186,0x0004007c, + 0x00000013,0x00000611,0x00000610,0x00050050,0x0000002e,0x00000612,0x0000060d,0x00000611, + 0x0003003e,0x00000609,0x00000612,0x0004003d,0x0000002e,0x00000614,0x000005ff,0x0004007c, + 0x00000029,0x00000615,0x00000614,0x0003003e,0x00000616,0x00000615,0x0004003d,0x00000006, + 0x00000618,0x000000f8,0x0003003e,0x00000617,0x00000618,0x00060039,0x0000004a,0x00000619, + 0x000000b7,0x00000616,0x00000617,0x0003003e,0x00000613,0x00000619,0x0004003d,0x0000002e, + 0x0000061c,0x00000609,0x0003003e,0x0000061b,0x0000061c,0x0004003d,0x0000004a,0x0000061e, + 0x00000613,0x0003003e,0x0000061d,0x0000061e,0x0003003e,0x0000061f,0x0000061a,0x0004003d, + 0x00000006,0x00000621,0x000000f8,0x0003003e,0x00000620,0x00000621,0x00080039,0x00000002, + 0x00000622,0x0000008e,0x0000061b,0x0000061d,0x0000061f,0x00000620,0x0004003d,0x00000006, + 0x00000623,0x000000f5,0x00050084,0x00000006,0x00000624,0x00000623,0x000001ce,0x00050080, + 0x00000006,0x00000625,0x00000624,0x00000141,0x0004007c,0x00000013,0x00000626,0x00000625, + 0x0004003d,0x00000006,0x00000627,0x000000f6,0x00050084,0x00000006,0x00000628,0x00000627, + 0x000001ce,0x00050080,0x00000006,0x00000629,0x00000628,0x00000186,0x0004007c,0x00000013, + 0x0000062a,0x00000629,0x00050050,0x0000002e,0x0000062b,0x00000626,0x0000062a,0x0003003e, + 0x000005ff,0x0000062b,0x0004003d,0x00000006,0x0000062c,0x000000f5,0x00050084,0x00000006, + 0x0000062d,0x0000062c,0x00000141,0x00050080,0x00000006,0x0000062e,0x0000062d,0x00000148, + 0x0004007c,0x00000013,0x0000062f,0x0000062e,0x0004003d,0x00000006,0x00000630,0x000000f6, + 0x00050084,0x00000006,0x00000631,0x00000630,0x00000141,0x00050080,0x00000006,0x00000632, + 0x00000631,0x00000186,0x0004007c,0x00000013,0x00000633,0x00000632,0x00050050,0x0000002e, + 0x00000634,0x0000062f,0x00000633,0x0003003e,0x00000609,0x00000634,0x0004003d,0x0000002e, + 0x00000636,0x000005ff,0x0004007c,0x00000029,0x00000637,0x00000636,0x0003003e,0x00000638, + 0x00000637,0x0004003d,0x00000006,0x0000063a,0x000000f8,0x0003003e,0x00000639,0x0000063a, + 0x00060039,0x0000004a,0x0000063b,0x000000b7,0x00000638,0x00000639,0x0003003e,0x00000635, + 0x0000063b,0x0004003d,0x0000002e,0x0000063d,0x00000609,0x0003003e,0x0000063c,0x0000063d, + 0x0004003d,0x0000004a,0x0000063f,0x00000635,0x0003003e,0x0000063e,0x0000063f,0x0003003e, + 0x00000640,0x0000061a,0x0004003d,0x00000006,0x00000642,0x000000f8,0x0003003e,0x00000641, + 0x00000642,0x00080039,0x00000002,0x00000643,0x0000008e,0x0000063c,0x0000063e,0x00000640, + 0x00000641,0x0004003d,0x00000006,0x00000644,0x000000f5,0x00050084,0x00000006,0x00000645, + 0x00000644,0x000001ce,0x00050080,0x00000006,0x00000646,0x00000645,0x00000186,0x0004007c, + 0x00000013,0x00000647,0x00000646,0x0004003d,0x00000006,0x00000648,0x000000f6,0x00050084, + 0x00000006,0x00000649,0x00000648,0x000001ce,0x00050080,0x00000006,0x0000064a,0x00000649, + 0x00000141,0x0004007c,0x00000013,0x0000064b,0x0000064a,0x00050050,0x0000002e,0x0000064c, + 0x00000647,0x0000064b,0x0003003e,0x000005ff,0x0000064c,0x0004003d,0x00000006,0x0000064d, + 0x000000f5,0x00050084,0x00000006,0x0000064e,0x0000064d,0x00000141,0x00050080,0x00000006, + 0x0000064f,0x0000064e,0x00000186,0x0004007c,0x00000013,0x00000650,0x0000064f,0x0004003d, + 0x00000006,0x00000651,0x000000f6,0x00050084,0x00000006,0x00000652,0x00000651,0x00000141, + 0x00050080,0x00000006,0x00000653,0x00000652,0x00000148,0x0004007c,0x00000013,0x00000654, + 0x00000653,0x00050050,0x0000002e,0x00000655,0x00000650,0x00000654,0x0003003e,0x00000609, + 0x00000655,0x0004003d,0x0000002e,0x00000657,0x000005ff,0x0004007c,0x00000029,0x00000658, + 0x00000657,0x0003003e,0x00000659,0x00000658,0x0004003d,0x00000006,0x0000065b,0x000000f8, + 0x0003003e,0x0000065a,0x0000065b,0x00060039,0x0000004a,0x0000065c,0x000000b7,0x00000659, + 0x0000065a,0x0003003e,0x00000656,0x0000065c,0x0004003d,0x0000002e,0x0000065e,0x00000609, + 0x0003003e,0x0000065d,0x0000065e,0x0004003d,0x0000004a,0x00000660,0x00000656,0x0003003e, + 0x0000065f,0x00000660,0x0003003e,0x00000661,0x0000061a,0x0004003d,0x00000006,0x00000663, + 0x000000f8,0x0003003e,0x00000662,0x00000663,0x00080039,0x00000002,0x00000664,0x0000008e, + 0x0000065d,0x0000065f,0x00000661,0x00000662,0x0004003d,0x00000006,0x00000665,0x000000f5, + 0x00050084,0x00000006,0x00000666,0x00000665,0x000001ce,0x00050080,0x00000006,0x00000667, + 0x00000666,0x00000141,0x0004007c,0x00000013,0x00000668,0x00000667,0x0004003d,0x00000006, + 0x00000669,0x000000f6,0x00050084,0x00000006,0x0000066a,0x00000669,0x000001ce,0x00050080, + 0x00000006,0x0000066b,0x0000066a,0x00000141,0x0004007c,0x00000013,0x0000066c,0x0000066b, + 0x00050050,0x0000002e,0x0000066d,0x00000668,0x0000066c,0x0003003e,0x000005ff,0x0000066d, + 0x0004003d,0x00000006,0x0000066e,0x000000f5,0x00050084,0x00000006,0x0000066f,0x0000066e, + 0x00000141,0x00050080,0x00000006,0x00000670,0x0000066f,0x00000148,0x0004007c,0x00000013, + 0x00000671,0x00000670,0x0004003d,0x00000006,0x00000672,0x000000f6,0x00050084,0x00000006, + 0x00000673,0x00000672,0x00000141,0x00050080,0x00000006,0x00000674,0x00000673,0x00000148, + 0x0004007c,0x00000013,0x00000675,0x00000674,0x00050050,0x0000002e,0x00000676,0x00000671, + 0x00000675,0x0003003e,0x00000609,0x00000676,0x0004003d,0x0000002e,0x00000678,0x000005ff, + 0x0004007c,0x00000029,0x00000679,0x00000678,0x0003003e,0x0000067a,0x00000679,0x0004003d, + 0x00000006,0x0000067c,0x000000f8,0x0003003e,0x0000067b,0x0000067c,0x00060039,0x0000004a, + 0x0000067d,0x000000b7,0x0000067a,0x0000067b,0x0003003e,0x00000677,0x0000067d,0x0004003d, + 0x0000002e,0x0000067f,0x00000609,0x0003003e,0x0000067e,0x0000067f,0x0004003d,0x0000004a, + 0x00000681,0x00000677,0x0003003e,0x00000680,0x00000681,0x0003003e,0x00000682,0x0000061a, + 0x0004003d,0x00000006,0x00000684,0x000000f8,0x0003003e,0x00000683,0x00000684,0x00080039, + 0x00000002,0x00000685,0x0000008e,0x0000067e,0x00000680,0x00000682,0x00000683,0x0004003d, + 0x00000006,0x00000686,0x000000f7,0x000500b2,0x0000009d,0x00000688,0x00000686,0x00000687, + 0x000300f7,0x0000068a,0x00000000,0x000400fa,0x00000688,0x00000689,0x0000068a,0x000200f8, + 0x00000689,0x000100fd,0x000200f8,0x0000068a,0x0004003d,0x0000004a,0x0000068e,0x00000613, + 0x0003003e,0x0000068d,0x0000068e,0x0004003d,0x0000004a,0x00000690,0x00000635,0x0003003e, + 0x0000068f,0x00000690,0x0004003d,0x0000004a,0x00000692,0x00000656,0x0003003e,0x00000691, + 0x00000692,0x0004003d,0x0000004a,0x00000694,0x00000677,0x0003003e,0x00000693,0x00000694, + 0x00080039,0x0000004a,0x00000695,0x00000087,0x0000068d,0x0000068f,0x00000691,0x00000693, + 0x0003003e,0x0000068c,0x00000695,0x0004003d,0x00000006,0x00000696,0x000000f5,0x0004007c, + 0x00000013,0x00000697,0x00000696,0x0004003d,0x00000006,0x00000698,0x000000f6,0x0004007c, + 0x00000013,0x00000699,0x00000698,0x00050050,0x0000002e,0x0000069a,0x00000697,0x00000699, + 0x0003003e,0x0000069b,0x0000069a,0x0004003d,0x0000004a,0x0000069d,0x0000068c,0x0003003e, + 0x0000069c,0x0000069d,0x0003003e,0x0000069e,0x00000687,0x0004003d,0x00000006,0x000006a0, + 0x000000f8,0x0003003e,0x0000069f,0x000006a0,0x00080039,0x00000002,0x000006a1,0x0000008e, + 0x0000069b,0x0000069c,0x0000069e,0x0000069f,0x0004003d,0x00000006,0x000006a3,0x000000f5, + 0x0003003e,0x000006a2,0x000006a3,0x0004003d,0x00000006,0x000006a5,0x000000f6,0x0003003e, + 0x000006a4,0x000006a5,0x0004003d,0x0000004a,0x000006a7,0x0000068c,0x0003003e,0x000006a6, + 0x000006a7,0x00070039,0x00000002,0x000006a8,0x00000099,0x000006a2,0x000006a4,0x000006a6, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000103,0x00000000,0x000000fb,0x00030037, + 0x00000007,0x000000fc,0x00030037,0x00000007,0x000000fd,0x00030037,0x000000a4,0x000000fe, + 0x00030037,0x00000007,0x000000ff,0x00030037,0x00000007,0x00000100,0x00030037,0x00000007, + 0x00000101,0x00030037,0x00000007,0x00000102,0x000200f8,0x00000104,0x0004003b,0x00000007, + 0x000006b0,0x00000007,0x0004003b,0x00000007,0x000006b2,0x00000007,0x0004003b,0x000000a4, + 0x000006b4,0x00000007,0x0004003b,0x00000007,0x000006b6,0x00000007,0x0004003b,0x00000007, + 0x000006b8,0x00000007,0x0004003b,0x00000007,0x000006ba,0x00000007,0x0004003b,0x00000007, + 0x000006c7,0x00000007,0x0004003b,0x00000007,0x000006c9,0x00000007,0x0004003b,0x000000a4, + 0x000006cb,0x00000007,0x0004003b,0x00000007,0x000006cd,0x00000007,0x0004003b,0x00000007, + 0x000006cf,0x00000007,0x0004003b,0x00000007,0x000006d0,0x00000007,0x0004003b,0x00000007, + 0x000006dd,0x00000007,0x0004003b,0x00000007,0x000006df,0x00000007,0x0004003b,0x000000a4, + 0x000006e1,0x00000007,0x0004003b,0x00000007,0x000006e3,0x00000007,0x0004003b,0x00000007, + 0x000006e5,0x00000007,0x0004003b,0x00000007,0x000006e6,0x00000007,0x0004003b,0x000000a4, + 0x000006f3,0x00000007,0x0004003b,0x00000007,0x000006f5,0x00000007,0x0004003b,0x00000007, + 0x000006f7,0x00000007,0x0004003b,0x00000007,0x000006f8,0x00000007,0x0004003d,0x00000006, + 0x000006a9,0x00000101,0x0004003d,0x00000006,0x000006aa,0x00000100,0x000500b2,0x0000009d, + 0x000006ab,0x000006a9,0x000006aa,0x000300f7,0x000006ad,0x00000000,0x000400fa,0x000006ab, + 0x000006ac,0x000006ad,0x000200f8,0x000006ac,0x000100fd,0x000200f8,0x000006ad,0x00040039, + 0x00000002,0x000006af,0x0000009b,0x0004003d,0x00000006,0x000006b1,0x000000fc,0x0003003e, + 0x000006b0,0x000006b1,0x0004003d,0x00000006,0x000006b3,0x000000fd,0x0003003e,0x000006b2, + 0x000006b3,0x0004003d,0x00000029,0x000006b5,0x000000fe,0x0003003e,0x000006b4,0x000006b5, + 0x0004003d,0x00000006,0x000006b7,0x000000ff,0x0003003e,0x000006b6,0x000006b7,0x0004003d, + 0x00000006,0x000006b9,0x00000100,0x0003003e,0x000006b8,0x000006b9,0x0004003d,0x00000006, + 0x000006bb,0x00000102,0x0003003e,0x000006ba,0x000006bb,0x000a0039,0x00000002,0x000006bc, + 0x000000db,0x000006b0,0x000006b2,0x000006b4,0x000006b6,0x000006b8,0x000006ba,0x0004003d, + 0x00000006,0x000006bd,0x00000101,0x0004003d,0x00000006,0x000006be,0x00000100,0x00050080, + 0x00000006,0x000006bf,0x000006be,0x00000148,0x000500b2,0x0000009d,0x000006c0,0x000006bd, + 0x000006bf,0x000300f7,0x000006c2,0x00000000,0x000400fa,0x000006c0,0x000006c1,0x000006c2, + 0x000200f8,0x000006c1,0x000100fd,0x000200f8,0x000006c2,0x00040039,0x00000002,0x000006c4, + 0x0000009b,0x0004003d,0x00000006,0x000006c5,0x00000100,0x00050080,0x00000006,0x000006c6, + 0x000006c5,0x00000148,0x0004003d,0x00000006,0x000006c8,0x000000fc,0x0003003e,0x000006c7, + 0x000006c8,0x0004003d,0x00000006,0x000006ca,0x000000fd,0x0003003e,0x000006c9,0x000006ca, + 0x0004003d,0x00000029,0x000006cc,0x000000fe,0x0003003e,0x000006cb,0x000006cc,0x0004003d, + 0x00000006,0x000006ce,0x000000ff,0x0003003e,0x000006cd,0x000006ce,0x0003003e,0x000006cf, + 0x000006c6,0x0004003d,0x00000006,0x000006d1,0x00000102,0x0003003e,0x000006d0,0x000006d1, + 0x000a0039,0x00000002,0x000006d2,0x000000e3,0x000006c7,0x000006c9,0x000006cb,0x000006cd, + 0x000006cf,0x000006d0,0x0004003d,0x00000006,0x000006d3,0x00000101,0x0004003d,0x00000006, + 0x000006d4,0x00000100,0x00050080,0x00000006,0x000006d5,0x000006d4,0x00000141,0x000500b2, + 0x0000009d,0x000006d6,0x000006d3,0x000006d5,0x000300f7,0x000006d8,0x00000000,0x000400fa, + 0x000006d6,0x000006d7,0x000006d8,0x000200f8,0x000006d7,0x000100fd,0x000200f8,0x000006d8, + 0x00040039,0x00000002,0x000006da,0x0000009b,0x0004003d,0x00000006,0x000006db,0x00000100, + 0x00050080,0x00000006,0x000006dc,0x000006db,0x00000141,0x0004003d,0x00000006,0x000006de, + 0x000000fc,0x0003003e,0x000006dd,0x000006de,0x0004003d,0x00000006,0x000006e0,0x000000fd, + 0x0003003e,0x000006df,0x000006e0,0x0004003d,0x00000029,0x000006e2,0x000000fe,0x0003003e, + 0x000006e1,0x000006e2,0x0004003d,0x00000006,0x000006e4,0x000000ff,0x0003003e,0x000006e3, + 0x000006e4,0x0003003e,0x000006e5,0x000006dc,0x0004003d,0x00000006,0x000006e7,0x00000102, + 0x0003003e,0x000006e6,0x000006e7,0x000a0039,0x00000002,0x000006e8,0x000000eb,0x000006dd, + 0x000006df,0x000006e1,0x000006e3,0x000006e5,0x000006e6,0x0004003d,0x00000006,0x000006e9, + 0x00000101,0x0004003d,0x00000006,0x000006ea,0x00000100,0x00050080,0x00000006,0x000006eb, + 0x000006ea,0x00000142,0x000500b2,0x0000009d,0x000006ec,0x000006e9,0x000006eb,0x000300f7, + 0x000006ee,0x00000000,0x000400fa,0x000006ec,0x000006ed,0x000006ee,0x000200f8,0x000006ed, + 0x000100fd,0x000200f8,0x000006ee,0x00040039,0x00000002,0x000006f0,0x0000009b,0x0004003d, + 0x00000006,0x000006f1,0x00000100,0x00050080,0x00000006,0x000006f2,0x000006f1,0x00000142, + 0x0004003d,0x00000029,0x000006f4,0x000000fe,0x0003003e,0x000006f3,0x000006f4,0x0004003d, + 0x00000006,0x000006f6,0x000000ff,0x0003003e,0x000006f5,0x000006f6,0x0003003e,0x000006f7, + 0x000006f2,0x0004003d,0x00000006,0x000006f9,0x00000102,0x0003003e,0x000006f8,0x000006f9, + 0x00080039,0x00000002,0x000006fa,0x000000f2,0x000006f3,0x000006f5,0x000006f7,0x000006f8, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000010b,0x00000000,0x00000105,0x00030037, + 0x000000a4,0x00000106,0x00030037,0x00000007,0x00000107,0x00030037,0x00000007,0x00000108, + 0x00030037,0x00000007,0x00000109,0x00030037,0x00000007,0x0000010a,0x000200f8,0x0000010c, + 0x0004003b,0x000000a4,0x000006fb,0x00000007,0x0004003b,0x00000007,0x000006fe,0x00000007, + 0x0004003b,0x00000007,0x00000700,0x00000007,0x0004003b,0x00000007,0x00000709,0x00000007, + 0x0004003b,0x00000007,0x00000711,0x00000007,0x0004003b,0x00000007,0x00000713,0x00000007, + 0x0004003b,0x000000a4,0x00000715,0x00000007,0x0004003b,0x00000007,0x00000717,0x00000007, + 0x0004003b,0x00000007,0x00000719,0x00000007,0x0004003b,0x00000007,0x0000071b,0x00000007, + 0x0004003b,0x00000007,0x0000071e,0x00000007,0x0004003b,0x00000007,0x00000720,0x00000007, + 0x0004003b,0x000000a4,0x00000722,0x00000007,0x0004003b,0x00000007,0x00000724,0x00000007, + 0x0004003b,0x00000007,0x00000726,0x00000007,0x0004003b,0x00000007,0x00000727,0x00000007, + 0x0004003b,0x00000007,0x00000729,0x00000007,0x0004003b,0x00000007,0x00000731,0x00000007, + 0x0004003b,0x00000007,0x00000733,0x00000007,0x0004003b,0x00000007,0x00000735,0x00000007, + 0x0004003b,0x00000007,0x0000073b,0x00000007,0x0004003b,0x00000007,0x0000073e,0x00000007, + 0x0004003b,0x00000007,0x00000740,0x00000007,0x0004003b,0x00000007,0x00000742,0x00000007, + 0x0004003b,0x00000007,0x00000744,0x00000007,0x0004003b,0x00000007,0x00000747,0x00000007, + 0x0004003b,0x00000007,0x00000749,0x00000007,0x0004003b,0x000000a4,0x0000074b,0x00000007, + 0x0004003b,0x00000007,0x0000074c,0x00000007,0x0004003b,0x00000007,0x0000074e,0x00000007, + 0x0004003b,0x00000007,0x0000074f,0x00000007,0x0004003b,0x00000007,0x00000751,0x00000007, + 0x0004003d,0x00000006,0x000006fc,0x00000107,0x00050089,0x00000006,0x000006fd,0x000006fc, + 0x000003d1,0x0003003e,0x000006fe,0x000006fd,0x00050039,0x00000029,0x000006ff,0x0000002c, + 0x000006fe,0x0003003e,0x000006fb,0x000006ff,0x00050041,0x00000007,0x00000701,0x000006fb, + 0x00000186,0x0004003d,0x00000006,0x00000702,0x00000701,0x0004003d,0x00000006,0x00000703, + 0x00000107,0x000500c2,0x00000006,0x00000705,0x00000703,0x00000704,0x00050089,0x00000006, + 0x00000706,0x00000705,0x00000141,0x00050084,0x00000006,0x00000707,0x000004bc,0x00000706, + 0x00050080,0x00000006,0x00000708,0x00000702,0x00000707,0x0003003e,0x00000700,0x00000708, + 0x00050041,0x00000007,0x0000070a,0x000006fb,0x00000148,0x0004003d,0x00000006,0x0000070b, + 0x0000070a,0x0004003d,0x00000006,0x0000070c,0x00000107,0x000500c2,0x00000006,0x0000070e, + 0x0000070c,0x0000070d,0x00050084,0x00000006,0x0000070f,0x000004bc,0x0000070e,0x00050080, + 0x00000006,0x00000710,0x0000070b,0x0000070f,0x0003003e,0x00000709,0x00000710,0x0004003d, + 0x00000006,0x00000712,0x00000700,0x0003003e,0x00000711,0x00000712,0x0004003d,0x00000006, + 0x00000714,0x00000709,0x0003003e,0x00000713,0x00000714,0x0004003d,0x00000029,0x00000716, + 0x00000106,0x0003003e,0x00000715,0x00000716,0x0004003d,0x00000006,0x00000718,0x00000107, + 0x0003003e,0x00000717,0x00000718,0x0004003d,0x00000006,0x0000071a,0x00000108,0x0003003e, + 0x00000719,0x0000071a,0x0004003d,0x00000006,0x0000071c,0x0000010a,0x0003003e,0x0000071b, + 0x0000071c,0x000a0039,0x00000002,0x0000071d,0x000000d3,0x00000711,0x00000713,0x00000715, + 0x00000717,0x00000719,0x0000071b,0x0004003d,0x00000006,0x0000071f,0x00000700,0x0003003e, + 0x0000071e,0x0000071f,0x0004003d,0x00000006,0x00000721,0x00000709,0x0003003e,0x00000720, + 0x00000721,0x0004003d,0x00000029,0x00000723,0x00000106,0x0003003e,0x00000722,0x00000723, + 0x0004003d,0x00000006,0x00000725,0x00000107,0x0003003e,0x00000724,0x00000725,0x0003003e, + 0x00000726,0x00000141,0x0004003d,0x00000006,0x00000728,0x00000108,0x0003003e,0x00000727, + 0x00000728,0x0004003d,0x00000006,0x0000072a,0x0000010a,0x0003003e,0x00000729,0x0000072a, + 0x000b0039,0x00000002,0x0000072b,0x00000103,0x0000071e,0x00000720,0x00000722,0x00000724, + 0x00000726,0x00000727,0x00000729,0x0004003d,0x00000006,0x0000072c,0x00000108,0x000500b2, + 0x0000009d,0x0000072d,0x0000072c,0x0000061a,0x000300f7,0x0000072f,0x00000000,0x000400fa, + 0x0000072d,0x0000072e,0x0000072f,0x000200f8,0x0000072e,0x000100fd,0x000200f8,0x0000072f, + 0x0004003d,0x00000006,0x00000732,0x00000109,0x0003003e,0x00000731,0x00000732,0x0004003d, + 0x00000006,0x00000734,0x00000107,0x0003003e,0x00000733,0x00000734,0x0004003d,0x00000006, + 0x00000736,0x0000010a,0x0003003e,0x00000735,0x00000736,0x00070039,0x0000009d,0x00000737, + 0x000000a2,0x00000731,0x00000733,0x00000735,0x000300f7,0x00000739,0x00000000,0x000400fa, + 0x00000737,0x00000738,0x00000739,0x000200f8,0x00000738,0x000100fd,0x000200f8,0x00000739, + 0x0004003d,0x00000006,0x0000073c,0x0000010a,0x0003003e,0x0000073b,0x0000073c,0x00050039, + 0x00000002,0x0000073d,0x00000076,0x0000073b,0x0004003d,0x00000006,0x0000073f,0x00000700, + 0x0003003e,0x0000073e,0x0000073f,0x0004003d,0x00000006,0x00000741,0x00000709,0x0003003e, + 0x00000740,0x00000741,0x0004003d,0x00000006,0x00000743,0x00000108,0x0003003e,0x00000742, + 0x00000743,0x0004003d,0x00000006,0x00000745,0x0000010a,0x0003003e,0x00000744,0x00000745, + 0x00080039,0x00000002,0x00000746,0x000000f9,0x0000073e,0x00000740,0x00000742,0x00000744, + 0x0004003d,0x00000006,0x00000748,0x00000700,0x0003003e,0x00000747,0x00000748,0x0004003d, + 0x00000006,0x0000074a,0x00000709,0x0003003e,0x00000749,0x0000074a,0x0003003e,0x0000074b, + 0x0000037f,0x0004003d,0x00000006,0x0000074d,0x00000107,0x0003003e,0x0000074c,0x0000074d, + 0x0003003e,0x0000074e,0x000004bc,0x0004003d,0x00000006,0x00000750,0x00000108,0x0003003e, + 0x0000074f,0x00000750,0x0004003d,0x00000006,0x00000752,0x0000010a,0x0003003e,0x00000751, + 0x00000752,0x000b0039,0x00000002,0x00000753,0x00000103,0x00000747,0x00000749,0x0000074b, + 0x0000074c,0x0000074e,0x0000074f,0x00000751,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000114,0x00000000,0x0000010d,0x00030037,0x000000a4,0x0000010e,0x00030037,0x00000007, + 0x0000010f,0x00030037,0x00000007,0x00000110,0x00030037,0x00000007,0x00000111,0x00030037, + 0x00000007,0x00000112,0x00030037,0x000000a4,0x00000113,0x000200f8,0x00000115,0x0004003b, + 0x000000a4,0x00000757,0x00000007,0x0004003b,0x00000007,0x00000758,0x00000007,0x0004003b, + 0x00000007,0x0000075a,0x00000007,0x0004003b,0x00000007,0x0000075c,0x00000007,0x0004003b, + 0x00000007,0x0000075e,0x00000007,0x0004003d,0x00000029,0x00000754,0x0000010e,0x0004003d, + 0x00000029,0x00000755,0x00000113,0x00050080,0x00000029,0x00000756,0x00000754,0x00000755, + 0x0003003e,0x00000757,0x00000756,0x0004003d,0x00000006,0x00000759,0x0000010f,0x0003003e, + 0x00000758,0x00000759,0x0004003d,0x00000006,0x0000075b,0x00000110,0x0003003e,0x0000075a, + 0x0000075b,0x0004003d,0x00000006,0x0000075d,0x00000111,0x0003003e,0x0000075c,0x0000075d, + 0x0004003d,0x00000006,0x0000075f,0x00000112,0x0003003e,0x0000075e,0x0000075f,0x00090039, + 0x00000002,0x00000760,0x0000010b,0x00000757,0x00000758,0x0000075a,0x0000075c,0x0000075e, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x0000011b,0x00000000,0x00000118,0x00030037, + 0x00000117,0x00000119,0x00030037,0x00000007,0x0000011a,0x000200f8,0x0000011c,0x0004003b, + 0x000000a4,0x00000769,0x00000007,0x0004003b,0x00000007,0x0000076a,0x00000007,0x0004003b, + 0x00000007,0x0000076b,0x00000007,0x0004003b,0x00000007,0x0000076c,0x00000007,0x0004003b, + 0x00000007,0x0000076d,0x00000007,0x0004003b,0x000000a4,0x0000076e,0x00000007,0x0004003d, + 0x00000116,0x00000761,0x00000119,0x0007004f,0x00000029,0x00000762,0x00000761,0x00000761, + 0x00000000,0x00000001,0x0004003d,0x00000006,0x00000763,0x0000011a,0x00040039,0x00000006, + 0x00000764,0x00000036,0x00040039,0x00000006,0x00000765,0x00000038,0x00050041,0x00000007, + 0x00000766,0x00000119,0x00000141,0x0004003d,0x00000006,0x00000767,0x00000766,0x00040039, + 0x00000029,0x00000768,0x0000003b,0x0003003e,0x00000769,0x00000762,0x0003003e,0x0000076a, + 0x00000763,0x0003003e,0x0000076b,0x00000764,0x0003003e,0x0000076c,0x00000765,0x0003003e, + 0x0000076d,0x00000767,0x0003003e,0x0000076e,0x00000768,0x000a0039,0x00000002,0x0000076f, + 0x00000114,0x00000769,0x0000076a,0x0000076b,0x0000076c,0x0000076d,0x0000076e,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h b/gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h new file mode 100644 index 000000000..f2c41a35a --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h @@ -0,0 +1,957 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_COMPUTE_OPTICAL_FLOW_V5_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000004d8,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x0000003f,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x000a000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x000000b2,0x000004bf,0x000004c3,0x000004c7,0x000004cb, + 0x00060010,0x00000004,0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x000a0004,0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x615f7075, + 0x68746972,0x6974656d,0x00000063,0x00090004,0x4b5f4c47,0x735f5248,0x65646168,0x75735f72, + 0x6f726762,0x625f7075,0x6f6c6c61,0x00000074,0x00090004,0x4b5f4c47,0x735f5248,0x65646168, + 0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00090004,0x4b5f4c47,0x735f5248, + 0x65646168,0x75735f72,0x6f726762,0x735f7075,0x66667568,0x0000656c,0x00040005,0x00000004, + 0x6e69616d,0x00000000,0x00070005,0x0000000b,0x42786666,0x64616f72,0x74736163,0x31752834, + 0x0000003b,0x00040005,0x0000000a,0x756c6176,0x00000065,0x00070005,0x0000000f,0x57786666, + 0x49657661,0x72694673,0x614c7473,0x0028656e,0x00060005,0x00000013,0x57786666,0x4d657661, + 0x75286e69,0x00003b31,0x00030005,0x00000012,0x00000061,0x00060005,0x00000016,0x57786666, + 0x53657661,0x75286d75,0x00003b31,0x00030005,0x00000015,0x00000061,0x00070005,0x00000019, + 0x57786666,0x4c657661,0x43656e61,0x746e756f,0x00000028,0x00060005,0x00000020,0x4d786666, + 0x69286e69,0x31693b31,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00030005,0x0000001f, + 0x00000079,0x00060005,0x00000025,0x4d786666,0x75286e69,0x31753b31,0x0000003b,0x00030005, + 0x00000023,0x00000078,0x00030005,0x00000024,0x00000079,0x00060005,0x00000029,0x4d786666, + 0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000027,0x00000078,0x00030005,0x00000028, + 0x00000079,0x000b0005,0x00000032,0x50746547,0x656b6361,0x6d754c64,0x31692861,0x3b31693b, + 0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00040005,0x0000002c,0x74646977,0x00000068, + 0x00030005,0x0000002d,0x00000078,0x00040005,0x0000002e,0x616d756c,0x00000030,0x00040005, + 0x0000002f,0x616d756c,0x00000031,0x00040005,0x00000030,0x616d756c,0x00000032,0x00040005, + 0x00000031,0x616d756c,0x00000033,0x00050005,0x00000036,0x28646153,0x753b3175,0x00003b31, + 0x00030005,0x00000034,0x00000061,0x00030005,0x00000035,0x00000062,0x00060005,0x0000003c, + 0x64615351,0x3b317528,0x753b3175,0x00003b31,0x00030005,0x00000039,0x00003061,0x00030005, + 0x0000003a,0x00003161,0x00030005,0x0000003b,0x00000062,0x00060005,0x00000040,0x70736944, + 0x5379616c,0x28657a69,0x00000000,0x00050005,0x00000042,0x6d617246,0x646e4965,0x00287865, + 0x00090005,0x00000044,0x6974704f,0x466c6163,0x50776f6c,0x6d617279,0x654c6469,0x286c6576, + 0x00000000,0x000a0005,0x00000046,0x6974704f,0x466c6163,0x50776f6c,0x6d617279,0x654c6469, + 0x436c6576,0x746e756f,0x00000028,0x00090005,0x0000004b,0x64616f4c,0x6974704f,0x466c6163, + 0x49776f6c,0x7475706e,0x32697628,0x0000003b,0x00040005,0x0000004a,0x50785069,0x0000736f, + 0x000b0005,0x0000004e,0x64616f4c,0x6974704f,0x466c6163,0x50776f6c,0x69766572,0x4973756f, + 0x7475706e,0x32697628,0x0000003b,0x00040005,0x0000004d,0x50785069,0x0000736f,0x00080005, + 0x00000052,0x64616f4c,0x704f7752,0x61636974,0x6f6c466c,0x69762877,0x00003b32,0x00040005, + 0x00000051,0x50785069,0x0000736f,0x00090005,0x00000057,0x726f7453,0x74704f65,0x6c616369, + 0x776f6c46,0x32697628,0x3269763b,0x0000003b,0x00040005,0x00000055,0x50785069,0x0000736f, + 0x00060005,0x00000056,0x69746f6d,0x65566e6f,0x726f7463,0x00000000,0x00070005,0x0000005b, + 0x64616f4c,0x43537752,0x74754f44,0x28747570,0x003b3169,0x00040005,0x0000005a,0x646e4969, + 0x00007865,0x00060005,0x0000005d,0x63537349,0x43656e65,0x676e6168,0x00286465,0x000a0005, + 0x00000060,0x64616f4c,0x73726946,0x616d4974,0x61506567,0x64656b63,0x616d754c,0x32697628, + 0x0000003b,0x00040005,0x0000005f,0x50785069,0x0000736f,0x000a0005,0x00000063,0x64616f4c, + 0x6f636553,0x6d49646e,0x50656761,0x656b6361,0x6d754c64,0x69762861,0x00003b32,0x00040005, + 0x00000062,0x50785069,0x0000736f,0x00080005,0x0000006a,0x636f6c42,0x6461536b,0x75283436, + 0x31693b31,0x3b31693b,0x003b3169,0x00050005,0x00000066,0x636f6c62,0x6461536b,0x006d7553, + 0x00050005,0x00000067,0x636f4c69,0x6e496c61,0x00786564,0x00060005,0x00000068,0x6e614c69, + 0x426f5465,0x6b636f6c,0x00006449,0x00040005,0x00000069,0x636f6c62,0x0000006b,0x000a0005, + 0x0000006f,0x4d646153,0x694d7061,0x6465526e,0x69746375,0x35326e6f,0x69762836,0x31693b32, + 0x0000003b,0x00050005,0x0000006d,0x61655369,0x49686372,0x00000064,0x00050005,0x0000006e, + 0x636f4c69,0x6e496c61,0x00786564,0x00090005,0x00000074,0x64616f4c,0x72616553,0x75426863, + 0x72656666,0x3b316928,0x3b326976,0x00000000,0x00050005,0x00000072,0x636f4c69,0x6e496c61, + 0x00786564,0x00060005,0x00000073,0x50785069,0x6853736f,0x65746669,0x00000064,0x00080005, + 0x00000078,0x636c6143,0x74616c75,0x61535165,0x28327364,0x3b326976,0x00000000,0x00050005, + 0x00000077,0x61655369,0x49686372,0x00000064,0x00050005,0x0000007d,0x5f736261,0x69762832, + 0x00003b32,0x00030005,0x0000007c,0x006c6176,0x00080005,0x00000080,0x6f636e45,0x65536564, + 0x68637261,0x726f6f43,0x69762864,0x00003b32,0x00040005,0x0000007f,0x726f6f63,0x00000064, + 0x00080005,0x00000084,0x6f636544,0x65536564,0x68637261,0x726f6f43,0x31752864,0x0000003b, + 0x00040005,0x00000083,0x73746962,0x00000000,0x00080005,0x0000008a,0x70657250,0x53657261, + 0x614d6461,0x69762870,0x75763b32,0x00003b34,0x00050005,0x00000088,0x61655369,0x49686372, + 0x00000064,0x00040005,0x00000089,0x64617371,0x00000000,0x00060005,0x00000090,0x65664241, + 0x3b317528,0x753b3175,0x00003b31,0x00030005,0x0000008d,0x00637273,0x00030005,0x0000008e, + 0x0066666f,0x00040005,0x0000008f,0x73746962,0x00000000,0x000a0005,0x00000098,0x5470614d, + 0x61657268,0x76287364,0x693b3269,0x69763b31,0x69763b32,0x31693b32,0x0000003b,0x00050005, + 0x00000093,0x6f724769,0x64497075,0x00000000,0x00050005,0x00000094,0x636f4c69,0x6e496c61, + 0x00786564,0x00050005,0x00000095,0x61655369,0x49686372,0x00000064,0x00040005,0x00000096, + 0x50785069,0x0000736f,0x00060005,0x00000097,0x6e614c69,0x426f5465,0x6b636f6c,0x00006449, + 0x000d0005,0x0000009f,0x706d6f43,0x4f657475,0x63697470,0x6c466c61,0x6441776f,0x636e6176, + 0x76286465,0x763b3269,0x763b3269,0x693b3269,0x00003b31,0x00050005,0x0000009b,0x6f6c4769, + 0x496c6162,0x00000064,0x00050005,0x0000009c,0x636f4c69,0x64496c61,0x00000000,0x00050005, + 0x0000009d,0x6f724769,0x64497075,0x00000000,0x00050005,0x0000009e,0x636f4c69,0x6e496c61, + 0x00786564,0x00060005,0x000000b2,0x535f6c67,0x72676275,0x5370756f,0x00657a69,0x00050005, + 0x000000c7,0x6b636170,0x754c6465,0x0000616d,0x00070005,0x000000da,0x4f74756f,0x72635366, + 0x466e6565,0x656c6c69,0x00000072,0x00070005,0x00000101,0x4f74756f,0x72635366,0x466e6565, + 0x656c6c69,0x00000072,0x00030005,0x00000157,0x00646173,0x00040005,0x00000158,0x61726170, + 0x0000006d,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00040005,0x00000167,0x61726170, + 0x0000006d,0x00040005,0x00000169,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170, + 0x0000006d,0x00040005,0x00000178,0x61726170,0x0000006d,0x00040005,0x00000183,0x61726170, + 0x0000006d,0x00040005,0x00000185,0x61726170,0x0000006d,0x00040005,0x0000018e,0x464f6263, + 0x0000745f,0x00090006,0x0000018e,0x00000000,0x706e4969,0x754c7475,0x6552616d,0x756c6f73, + 0x6e6f6974,0x00000000,0x000a0006,0x0000018e,0x00000001,0x74704f75,0x6c616369,0x776f6c46, + 0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x0000018e,0x00000002,0x74704f75, + 0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43,0x00000074,0x00060006, + 0x0000018e,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006,0x0000018e,0x00000004, + 0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006, + 0x0000018e,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00040005,0x00000190, + 0x464f6263,0x00000000,0x00080005,0x000001a5,0x706f5f72,0x61636974,0x6c665f6c,0x695f776f, + 0x7475706e,0x00000000,0x000a0005,0x000001ac,0x706f5f72,0x61636974,0x6c665f6c,0x705f776f, + 0x69766572,0x5f73756f,0x75706e69,0x00000074,0x00060005,0x000001b5,0x6f5f7772,0x63697470, + 0x665f6c61,0x00776f6c,0x00090005,0x000001c5,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x5f646373,0x7074756f,0x00007475,0x00040005,0x000001d5,0x61726170,0x0000006d,0x00070005, + 0x000001dc,0x616d756c,0x74786554,0x57657275,0x68746469,0x00000000,0x00070005,0x000001e1, + 0x616d756c,0x74786554,0x48657275,0x68676965,0x00000074,0x00050005,0x000001e6,0x756a6461, + 0x64657473,0x00736f50,0x00040005,0x000001e9,0x61726170,0x0000006d,0x00040005,0x000001ea, + 0x61726170,0x0000006d,0x00040005,0x000001ee,0x61726170,0x0000006d,0x00040005,0x000001ef, + 0x61726170,0x0000006d,0x00040005,0x000001f3,0x61726170,0x0000006d,0x00040005,0x000001f4, + 0x61726170,0x0000006d,0x00040005,0x000001f8,0x61726170,0x0000006d,0x00040005,0x000001f9, + 0x61726170,0x0000006d,0x00040005,0x000001fc,0x616d756c,0x00000030,0x00040005,0x00000200, + 0x61726170,0x0000006d,0x00040005,0x00000202,0x616d756c,0x00000031,0x00040005,0x00000206, + 0x61726170,0x0000006d,0x00040005,0x00000208,0x616d756c,0x00000032,0x00040005,0x0000020c, + 0x61726170,0x0000006d,0x00040005,0x0000020e,0x616d756c,0x00000033,0x00040005,0x00000212, + 0x61726170,0x0000006d,0x00040005,0x00000214,0x61726170,0x0000006d,0x00040005,0x00000216, + 0x61726170,0x0000006d,0x00040005,0x00000219,0x61726170,0x0000006d,0x00040005,0x0000021b, + 0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d,0x00040005,0x0000021f, + 0x61726170,0x0000006d,0x00070005,0x00000224,0x616d756c,0x74786554,0x57657275,0x68746469, + 0x00000000,0x00070005,0x00000229,0x616d756c,0x74786554,0x48657275,0x68676965,0x00000074, + 0x00050005,0x0000022e,0x756a6461,0x64657473,0x00736f50,0x00040005,0x00000231,0x61726170, + 0x0000006d,0x00040005,0x00000232,0x61726170,0x0000006d,0x00040005,0x00000236,0x61726170, + 0x0000006d,0x00040005,0x00000237,0x61726170,0x0000006d,0x00040005,0x0000023b,0x61726170, + 0x0000006d,0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005,0x00000240,0x61726170, + 0x0000006d,0x00040005,0x00000241,0x61726170,0x0000006d,0x00040005,0x00000244,0x616d756c, + 0x00000030,0x00040005,0x00000247,0x61726170,0x0000006d,0x00040005,0x00000249,0x616d756c, + 0x00000031,0x00040005,0x0000024c,0x61726170,0x0000006d,0x00040005,0x0000024e,0x616d756c, + 0x00000032,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005,0x00000253,0x616d756c, + 0x00000033,0x00040005,0x00000256,0x61726170,0x0000006d,0x00040005,0x00000258,0x61726170, + 0x0000006d,0x00040005,0x0000025a,0x61726170,0x0000006d,0x00040005,0x0000025d,0x61726170, + 0x0000006d,0x00040005,0x0000025f,0x61726170,0x0000006d,0x00040005,0x00000261,0x61726170, + 0x0000006d,0x00040005,0x00000263,0x61726170,0x0000006d,0x00040005,0x0000026d,0x61726170, + 0x0000006d,0x00040005,0x00000275,0x65766177,0x00006449,0x00050005,0x0000027d,0x76615773, + 0x64615365,0x00000000,0x00040005,0x0000028d,0x306e696d,0x00000031,0x00060005,0x00000294, + 0x4d646173,0x75427061,0x72656666,0x00000000,0x00040005,0x0000029d,0x61726170,0x0000006d, + 0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005,0x000002a4,0x326e696d,0x00000033, + 0x00040005,0x000002ad,0x61726170,0x0000006d,0x00040005,0x000002b0,0x61726170,0x0000006d, + 0x00040005,0x000002b4,0x306e696d,0x00333231,0x00040005,0x000002b5,0x61726170,0x0000006d, + 0x00040005,0x000002b7,0x61726170,0x0000006d,0x00040005,0x000002ba,0x61726170,0x0000006d, + 0x00040005,0x000002c1,0x65766177,0x00006449,0x00050005,0x000002c7,0x76615773,0x6e694d65, + 0x00000000,0x00040005,0x000002cd,0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170, + 0x0000006d,0x00040005,0x000002d6,0x65736162,0x00000058,0x00040005,0x000002da,0x65736162, + 0x00000059,0x00030005,0x000002de,0x00006469,0x00030005,0x000002e8,0x00786469,0x00030005, + 0x000002ec,0x00796469,0x00030005,0x000002ef,0x00000078,0x00030005,0x000002f4,0x00000079, + 0x00060005,0x000002fc,0x72616573,0x75426863,0x72656666,0x00000000,0x00040005,0x00000301, + 0x61726170,0x0000006d,0x00030005,0x00000307,0x00646173,0x00040005,0x00000308,0x61726170, + 0x0000006d,0x00030005,0x0000030a,0x00007964,0x00050005,0x00000312,0x4f776f72,0x65736666, + 0x00000074,0x00030005,0x00000318,0x00003061,0x00030005,0x0000031f,0x00003161,0x00030005, + 0x00000327,0x00003261,0x00040005,0x00000332,0x65786970,0x0000736c,0x00040005,0x00000334, + 0x61726170,0x0000006d,0x00040005,0x00000336,0x61726170,0x0000006d,0x00040005,0x00000338, + 0x61726170,0x0000006d,0x00040005,0x0000033f,0x61726170,0x0000006d,0x00040005,0x00000341, + 0x61726170,0x0000006d,0x00040005,0x00000343,0x61726170,0x0000006d,0x00030005,0x0000034e, + 0x00706d74,0x00040005,0x00000350,0x6b73616d,0x00000000,0x00030005,0x00000356,0x00736572, + 0x00050005,0x00000360,0x43736261,0x64726f6f,0x00000000,0x00040005,0x00000364,0x61726170, + 0x0000006d,0x00030005,0x00000379,0x00007864,0x00030005,0x0000037e,0x00007964,0x00040005, + 0x00000397,0x61726170,0x0000006d,0x00040005,0x000003a9,0x61726170,0x0000006d,0x00040005, + 0x000003bb,0x61726170,0x0000006d,0x00040005,0x000003cd,0x61726170,0x0000006d,0x00040005, + 0x000003d1,0x6b73616d,0x00000000,0x00040005,0x000003de,0x61726170,0x0000006d,0x00040005, + 0x000003df,0x61726170,0x0000006d,0x00040005,0x000003e0,0x61726170,0x0000006d,0x00040005, + 0x000003e5,0x61726170,0x0000006d,0x00040005,0x000003e6,0x61726170,0x0000006d,0x00040005, + 0x000003e7,0x61726170,0x0000006d,0x00040005,0x000003ed,0x61726170,0x0000006d,0x00040005, + 0x000003ee,0x61726170,0x0000006d,0x00040005,0x000003ef,0x61726170,0x0000006d,0x00040005, + 0x000003f3,0x61726170,0x0000006d,0x00040005,0x000003f4,0x61726170,0x0000006d,0x00040005, + 0x000003f5,0x61726170,0x0000006d,0x00050005,0x00000401,0x61655369,0x49686372,0x00000064, + 0x00040005,0x00000402,0x50785069,0x0000736f,0x00060005,0x00000403,0x6e614c69,0x426f5465, + 0x6b636f6c,0x00006449,0x00040005,0x00000404,0x61726170,0x0000006d,0x00040005,0x00000406, + 0x61726170,0x0000006d,0x00040005,0x00000408,0x61726170,0x0000006d,0x00040005,0x00000409, + 0x61726170,0x0000006d,0x00040005,0x0000040a,0x61726170,0x0000006d,0x00060005,0x0000040f, + 0x72727563,0x4f746e65,0x736f5046,0x00000000,0x00040005,0x00000424,0x61726170,0x0000006d, + 0x00040005,0x00000426,0x61726170,0x0000006d,0x000a0005,0x0000042a,0x65735562,0x64657250, + 0x69746369,0x72466e6f,0x72506d6f,0x6f697665,0x654c7375,0x006c6576,0x00070005,0x0000042f, + 0x6b636170,0x754c6465,0x345f616d,0x636f6c62,0x0000736b,0x00040005,0x00000430,0x61726170, + 0x0000006d,0x00080005,0x00000433,0x76657270,0x6b636150,0x754c6465,0x345f616d,0x636f6c62, + 0x0000736b,0x00040005,0x00000434,0x61726170,0x0000006d,0x00050005,0x00000437,0x5f646173, + 0x6f6c6234,0x00736b63,0x00040005,0x00000438,0x61726170,0x0000006d,0x00040005,0x0000043a, + 0x61726170,0x0000006d,0x00060005,0x0000043d,0x7247666f,0x4f70756f,0x65736666,0x00000074, + 0x00070005,0x00000441,0x65786970,0x6f72476c,0x664f7075,0x74657366,0x00000000,0x00040005, + 0x00000445,0x636f6c62,0x0064496b,0x00060005,0x00000458,0x72727563,0x56746e65,0x6f746365, + 0x00000072,0x00040005,0x0000045c,0x61726170,0x0000006d,0x00040005,0x0000047b,0x61726170, + 0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00040005,0x0000047f,0x64617371, + 0x00000000,0x00040005,0x00000480,0x61726170,0x0000006d,0x00040005,0x00000483,0x61726170, + 0x0000006d,0x00040005,0x00000485,0x61726170,0x0000006d,0x00040005,0x00000488,0x536e696d, + 0x00006461,0x00040005,0x00000489,0x61726170,0x0000006d,0x00040005,0x0000048b,0x61726170, + 0x0000006d,0x00050005,0x0000048e,0x536e696d,0x6f436461,0x0064726f,0x00040005,0x0000048f, + 0x61726170,0x0000006d,0x00050005,0x00000492,0x5677656e,0x6f746365,0x00000072,0x00050005, + 0x00000496,0x636f6c62,0x6461536b,0x006d7553,0x00040005,0x0000049d,0x61726170,0x0000006d, + 0x00040005,0x0000049f,0x61726170,0x0000006d,0x00040005,0x000004a1,0x61726170,0x0000006d, + 0x00040005,0x000004a3,0x61726170,0x0000006d,0x00040005,0x000004b3,0x61726170,0x0000006d, + 0x00040005,0x000004b4,0x61726170,0x0000006d,0x00080005,0x000004bf,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00080005,0x000004c3,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00060005,0x000004c7,0x575f6c67,0x476b726f, + 0x70756f72,0x00004449,0x00080005,0x000004cb,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163, + 0x6e496e6f,0x00786564,0x00040005,0x000004ce,0x61726170,0x0000006d,0x00040005,0x000004cf, + 0x61726170,0x0000006d,0x00040005,0x000004d0,0x61726170,0x0000006d,0x00040005,0x000004d1, + 0x61726170,0x0000006d,0x00030047,0x000000b2,0x00000000,0x00040047,0x000000b2,0x0000000b, + 0x00000024,0x00030047,0x000000b3,0x00000000,0x00030047,0x0000018e,0x00000002,0x00050048, + 0x0000018e,0x00000000,0x00000023,0x00000000,0x00050048,0x0000018e,0x00000001,0x00000023, + 0x00000008,0x00050048,0x0000018e,0x00000002,0x00000023,0x0000000c,0x00050048,0x0000018e, + 0x00000003,0x00000023,0x00000010,0x00050048,0x0000018e,0x00000004,0x00000023,0x00000014, + 0x00050048,0x0000018e,0x00000005,0x00000023,0x00000018,0x00040047,0x00000190,0x00000021, + 0x00000004,0x00040047,0x00000190,0x00000022,0x00000000,0x00040047,0x000001a5,0x00000021, + 0x00000000,0x00040047,0x000001a5,0x00000022,0x00000000,0x00040047,0x000001ac,0x00000021, + 0x00000001,0x00040047,0x000001ac,0x00000022,0x00000000,0x00040047,0x000001b5,0x00000021, + 0x00000002,0x00040047,0x000001b5,0x00000022,0x00000000,0x00040047,0x000001c5,0x00000021, + 0x00000003,0x00040047,0x000001c5,0x00000022,0x00000000,0x00040047,0x000004bf,0x0000000b, + 0x0000001c,0x00040047,0x000004c3,0x0000000b,0x0000001b,0x00040047,0x000004c7,0x0000000b, + 0x0000001a,0x00040047,0x000004cb,0x0000000b,0x0000001d,0x00040047,0x000004d7,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00040017,0x00000008, + 0x00000006,0x00000004,0x00040021,0x00000009,0x00000008,0x00000007,0x00020014,0x0000000d, + 0x00030021,0x0000000e,0x0000000d,0x00040021,0x00000011,0x00000006,0x00000007,0x00030021, + 0x00000018,0x00000006,0x00040015,0x0000001b,0x00000020,0x00000001,0x00040020,0x0000001c, + 0x00000007,0x0000001b,0x00050021,0x0000001d,0x0000001b,0x0000001c,0x0000001c,0x00050021, + 0x00000022,0x00000006,0x00000007,0x00000007,0x00090021,0x0000002b,0x00000006,0x0000001c, + 0x0000001c,0x00000007,0x00000007,0x00000007,0x00000007,0x00060021,0x00000038,0x00000008, + 0x00000007,0x00000007,0x00000007,0x00040017,0x0000003e,0x0000001b,0x00000002,0x00030021, + 0x0000003f,0x0000003e,0x00040020,0x00000048,0x00000007,0x0000003e,0x00040021,0x00000049, + 0x00000006,0x00000048,0x00040021,0x00000050,0x0000003e,0x00000048,0x00050021,0x00000054, + 0x00000002,0x00000048,0x00000048,0x00040021,0x00000059,0x00000006,0x0000001c,0x00070021, + 0x00000065,0x00000006,0x00000007,0x0000001c,0x0000001c,0x0000001c,0x00050021,0x0000006c, + 0x00000006,0x00000048,0x0000001c,0x00050021,0x00000071,0x00000002,0x0000001c,0x00000048, + 0x00040021,0x00000076,0x00000008,0x00000048,0x00040017,0x0000007a,0x00000006,0x00000002, + 0x00040021,0x0000007b,0x0000007a,0x00000048,0x00040021,0x00000082,0x0000003e,0x00000007, + 0x00040020,0x00000086,0x00000007,0x00000008,0x00050021,0x00000087,0x00000002,0x00000048, + 0x00000086,0x00060021,0x0000008c,0x00000006,0x00000007,0x00000007,0x00000007,0x00080021, + 0x00000092,0x00000002,0x00000048,0x0000001c,0x00000048,0x00000048,0x0000001c,0x00070021, + 0x0000009a,0x00000002,0x00000048,0x00000048,0x00000048,0x0000001c,0x0004002b,0x00000006, + 0x000000a5,0x00000003,0x00040020,0x000000b1,0x00000001,0x00000006,0x0004003b,0x000000b1, + 0x000000b2,0x00000001,0x0004002b,0x0000001b,0x000000ca,0x00000008,0x0004002b,0x0000001b, + 0x000000ce,0x00000010,0x0004002b,0x0000001b,0x000000d2,0x00000018,0x0004002b,0x0000001b, + 0x000000d6,0x00000000,0x0004002b,0x00000006,0x000000dc,0x000000ff,0x0004002b,0x0000001b, + 0x000000df,0xffffffff,0x0004002b,0x0000001b,0x000000e8,0xfffffffe,0x0004002b,0x0000001b, + 0x000000f1,0xfffffffd,0x0004002b,0x0000001b,0x000000fc,0x00000004,0x0004002b,0x00000006, + 0x00000103,0xff000000,0x0004002b,0x0000001b,0x00000107,0x00000003,0x0004002b,0x0000001b, + 0x00000112,0x00000002,0x0004002b,0x0000001b,0x0000011d,0x00000001,0x0004002b,0x00000006, + 0x0000015d,0x00000000,0x0004002b,0x00000006,0x0000016c,0x00000001,0x0004002b,0x00000006, + 0x0000017b,0x00000002,0x00030016,0x0000018c,0x00000020,0x00040017,0x0000018d,0x0000018c, + 0x00000002,0x0008001e,0x0000018e,0x0000003e,0x00000006,0x00000006,0x00000006,0x00000006, + 0x0000018d,0x00040020,0x0000018f,0x00000002,0x0000018e,0x0004003b,0x0000018f,0x00000190, + 0x00000002,0x00040020,0x00000191,0x00000002,0x0000003e,0x00040020,0x00000196,0x00000002, + 0x00000006,0x00090019,0x000001a3,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x000001a4,0x00000000,0x000001a3,0x0004003b,0x000001a4, + 0x000001a5,0x00000000,0x0004003b,0x000001a4,0x000001ac,0x00000000,0x00090019,0x000001b3, + 0x0000001b,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x0000001a,0x00040020, + 0x000001b4,0x00000000,0x000001b3,0x0004003b,0x000001b4,0x000001b5,0x00000000,0x00040017, + 0x000001b8,0x0000001b,0x00000004,0x00090019,0x000001c3,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x000001c4,0x00000000,0x000001c3, + 0x0004003b,0x000001c4,0x000001c5,0x00000000,0x0004002b,0x00000006,0x000001ce,0x00000005, + 0x00030029,0x0000000d,0x000001d2,0x0004002b,0x00000006,0x000001d7,0x0000000f,0x0005002c, + 0x0000003e,0x000001fe,0x000000d6,0x000000d6,0x0005002c,0x0000003e,0x00000204,0x0000011d, + 0x000000d6,0x0005002c,0x0000003e,0x0000020a,0x00000112,0x000000d6,0x0005002c,0x0000003e, + 0x00000210,0x00000107,0x000000d6,0x0004002b,0x00000006,0x00000271,0x00000020,0x0004001c, + 0x0000027b,0x00000006,0x0000017b,0x00040020,0x0000027c,0x00000004,0x0000027b,0x0004003b, + 0x0000027c,0x0000027d,0x00000004,0x00040020,0x00000280,0x00000004,0x00000006,0x0004002b, + 0x00000006,0x00000282,0x00000d48,0x0004002b,0x00000006,0x00000283,0x00000108,0x0004001c, + 0x0000028e,0x00000006,0x000001ce,0x0004002b,0x00000006,0x0000028f,0x00000010,0x0004001c, + 0x00000290,0x0000028e,0x0000028f,0x0004002b,0x00000006,0x00000291,0x00000004,0x0004001c, + 0x00000292,0x00000290,0x00000291,0x00040020,0x00000293,0x00000004,0x00000292,0x0004003b, + 0x00000293,0x00000294,0x00000004,0x0004003b,0x0000027c,0x000002c7,0x00000004,0x0004002b, + 0x0000001b,0x000002e6,0x00000090,0x0004002b,0x0000001b,0x000002ea,0x00000006,0x0004002b, + 0x00000006,0x000002f8,0x00000090,0x0004001c,0x000002f9,0x00000006,0x000002f8,0x0004001c, + 0x000002fa,0x000002f9,0x0000016c,0x00040020,0x000002fb,0x00000004,0x000002fa,0x0004003b, + 0x000002fb,0x000002fc,0x00000004,0x0004002b,0x0000001b,0x00000304,0x00000040,0x0004002b, + 0x00000006,0x0000032f,0x00000008,0x0004001c,0x00000330,0x0000027b,0x0000032f,0x00040020, + 0x00000331,0x00000004,0x00000330,0x0004003b,0x00000331,0x00000332,0x00000004,0x0004002b, + 0x0000001b,0x00000352,0x0000001f,0x00040020,0x00000355,0x00000007,0x0000007a,0x0004002b, + 0x0000001b,0x00000368,0x0000000c,0x0005002c,0x0000003e,0x000003fe,0x000000fc,0x0000011d, + 0x0004002b,0x0000001b,0x00000418,0x00000007,0x00040020,0x00000429,0x00000007,0x0000000d, + 0x00040017,0x000004bd,0x00000006,0x00000003,0x00040020,0x000004be,0x00000001,0x000004bd, + 0x0004003b,0x000004be,0x000004bf,0x00000001,0x0004003b,0x000004be,0x000004c3,0x00000001, + 0x0004003b,0x000004be,0x000004c7,0x00000001,0x0004003b,0x000000b1,0x000004cb,0x00000001, + 0x0004002b,0x0000018c,0x000004d3,0x387fda40,0x0004002b,0x0000018c,0x000004d4,0x477fe000, + 0x0004002b,0x0000018c,0x000004d5,0x37801002,0x0004002b,0x00000006,0x000004d6,0x00000040, + 0x0006002c,0x000004bd,0x000004d7,0x000004d6,0x0000016c,0x0000016c,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000048,0x000004ce, + 0x00000007,0x0004003b,0x00000048,0x000004cf,0x00000007,0x0004003b,0x00000048,0x000004d0, + 0x00000007,0x0004003b,0x0000001c,0x000004d1,0x00000007,0x0004003d,0x000004bd,0x000004c0, + 0x000004bf,0x0007004f,0x0000007a,0x000004c1,0x000004c0,0x000004c0,0x00000000,0x00000001, + 0x0004007c,0x0000003e,0x000004c2,0x000004c1,0x0004003d,0x000004bd,0x000004c4,0x000004c3, + 0x0007004f,0x0000007a,0x000004c5,0x000004c4,0x000004c4,0x00000000,0x00000001,0x0004007c, + 0x0000003e,0x000004c6,0x000004c5,0x0004003d,0x000004bd,0x000004c8,0x000004c7,0x0007004f, + 0x0000007a,0x000004c9,0x000004c8,0x000004c8,0x00000000,0x00000001,0x0004007c,0x0000003e, + 0x000004ca,0x000004c9,0x0004003d,0x00000006,0x000004cc,0x000004cb,0x0004007c,0x0000001b, + 0x000004cd,0x000004cc,0x0003003e,0x000004ce,0x000004c2,0x0003003e,0x000004cf,0x000004c6, + 0x0003003e,0x000004d0,0x000004ca,0x0003003e,0x000004d1,0x000004cd,0x00080039,0x00000002, + 0x000004d2,0x0000009f,0x000004ce,0x000004cf,0x000004d0,0x000004d1,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x000000a1,0x0000000a,0x00070050,0x00000008, + 0x000000a2,0x000000a1,0x000000a1,0x000000a1,0x000000a1,0x000200fe,0x000000a2,0x00010038, + 0x00050036,0x0000000d,0x0000000f,0x00000000,0x0000000e,0x000200f8,0x00000010,0x0004014d, + 0x0000000d,0x000000a6,0x000000a5,0x000200fe,0x000000a6,0x00010038,0x00050036,0x00000006, + 0x00000013,0x00000000,0x00000011,0x00030037,0x00000007,0x00000012,0x000200f8,0x00000014, + 0x0004003d,0x00000006,0x000000a9,0x00000012,0x00060162,0x00000006,0x000000aa,0x000000a5, + 0x00000000,0x000000a9,0x000200fe,0x000000aa,0x00010038,0x00050036,0x00000006,0x00000016, + 0x00000000,0x00000011,0x00030037,0x00000007,0x00000015,0x000200f8,0x00000017,0x0004003d, + 0x00000006,0x000000ad,0x00000015,0x0006015d,0x00000006,0x000000ae,0x000000a5,0x00000000, + 0x000000ad,0x000200fe,0x000000ae,0x00010038,0x00050036,0x00000006,0x00000019,0x00000000, + 0x00000018,0x000200f8,0x0000001a,0x0004003b,0x00000007,0x000000b4,0x00000007,0x0004003d, + 0x00000006,0x000000b3,0x000000b2,0x0003003e,0x000000b4,0x000000b3,0x0004003d,0x00000006, + 0x000000b5,0x000000b4,0x000200fe,0x000000b5,0x00010038,0x00050036,0x0000001b,0x00000020, + 0x00000000,0x0000001d,0x00030037,0x0000001c,0x0000001e,0x00030037,0x0000001c,0x0000001f, + 0x000200f8,0x00000021,0x0004003d,0x0000001b,0x000000b8,0x0000001e,0x0004003d,0x0000001b, + 0x000000b9,0x0000001f,0x0007000c,0x0000001b,0x000000ba,0x00000001,0x00000027,0x000000b8, + 0x000000b9,0x000200fe,0x000000ba,0x00010038,0x00050036,0x00000006,0x00000025,0x00000000, + 0x00000022,0x00030037,0x00000007,0x00000023,0x00030037,0x00000007,0x00000024,0x000200f8, + 0x00000026,0x0004003d,0x00000006,0x000000bd,0x00000023,0x0004003d,0x00000006,0x000000be, + 0x00000024,0x0007000c,0x00000006,0x000000bf,0x00000001,0x00000026,0x000000bd,0x000000be, + 0x000200fe,0x000000bf,0x00010038,0x00050036,0x0000001b,0x00000029,0x00000000,0x0000001d, + 0x00030037,0x0000001c,0x00000027,0x00030037,0x0000001c,0x00000028,0x000200f8,0x0000002a, + 0x0004003d,0x0000001b,0x000000c2,0x00000027,0x0004003d,0x0000001b,0x000000c3,0x00000028, + 0x0007000c,0x0000001b,0x000000c4,0x00000001,0x0000002a,0x000000c2,0x000000c3,0x000200fe, + 0x000000c4,0x00010038,0x00050036,0x00000006,0x00000032,0x00000000,0x0000002b,0x00030037, + 0x0000001c,0x0000002c,0x00030037,0x0000001c,0x0000002d,0x00030037,0x00000007,0x0000002e, + 0x00030037,0x00000007,0x0000002f,0x00030037,0x00000007,0x00000030,0x00030037,0x00000007, + 0x00000031,0x000200f8,0x00000033,0x0004003b,0x00000007,0x000000c7,0x00000007,0x0004003b, + 0x00000007,0x000000da,0x00000007,0x0004003b,0x00000007,0x00000101,0x00000007,0x0004003d, + 0x00000006,0x000000c8,0x0000002e,0x0004003d,0x00000006,0x000000c9,0x0000002f,0x000500c4, + 0x00000006,0x000000cb,0x000000c9,0x000000ca,0x000500c5,0x00000006,0x000000cc,0x000000c8, + 0x000000cb,0x0004003d,0x00000006,0x000000cd,0x00000030,0x000500c4,0x00000006,0x000000cf, + 0x000000cd,0x000000ce,0x000500c5,0x00000006,0x000000d0,0x000000cc,0x000000cf,0x0004003d, + 0x00000006,0x000000d1,0x00000031,0x000500c4,0x00000006,0x000000d3,0x000000d1,0x000000d2, + 0x000500c5,0x00000006,0x000000d4,0x000000d0,0x000000d3,0x0003003e,0x000000c7,0x000000d4, + 0x0004003d,0x0000001b,0x000000d5,0x0000002d,0x000500b1,0x0000000d,0x000000d7,0x000000d5, + 0x000000d6,0x000300f7,0x000000d9,0x00000000,0x000400fa,0x000000d7,0x000000d8,0x000000f9, + 0x000200f8,0x000000d8,0x0004003d,0x00000006,0x000000db,0x000000c7,0x000500c7,0x00000006, + 0x000000dd,0x000000db,0x000000dc,0x0003003e,0x000000da,0x000000dd,0x0004003d,0x0000001b, + 0x000000de,0x0000002d,0x000500b3,0x0000000d,0x000000e0,0x000000de,0x000000df,0x000300f7, + 0x000000e2,0x00000000,0x000400fa,0x000000e0,0x000000e1,0x000000e2,0x000200f8,0x000000e1, + 0x0004003d,0x00000006,0x000000e3,0x000000c7,0x000500c4,0x00000006,0x000000e4,0x000000e3, + 0x000000ca,0x0004003d,0x00000006,0x000000e5,0x000000da,0x000500c5,0x00000006,0x000000e6, + 0x000000e4,0x000000e5,0x0003003e,0x000000c7,0x000000e6,0x000200f9,0x000000e2,0x000200f8, + 0x000000e2,0x0004003d,0x0000001b,0x000000e7,0x0000002d,0x000500b3,0x0000000d,0x000000e9, + 0x000000e7,0x000000e8,0x000300f7,0x000000eb,0x00000000,0x000400fa,0x000000e9,0x000000ea, + 0x000000eb,0x000200f8,0x000000ea,0x0004003d,0x00000006,0x000000ec,0x000000c7,0x000500c4, + 0x00000006,0x000000ed,0x000000ec,0x000000ca,0x0004003d,0x00000006,0x000000ee,0x000000da, + 0x000500c5,0x00000006,0x000000ef,0x000000ed,0x000000ee,0x0003003e,0x000000c7,0x000000ef, + 0x000200f9,0x000000eb,0x000200f8,0x000000eb,0x0004003d,0x0000001b,0x000000f0,0x0000002d, + 0x000500b3,0x0000000d,0x000000f2,0x000000f0,0x000000f1,0x000300f7,0x000000f4,0x00000000, + 0x000400fa,0x000000f2,0x000000f3,0x000000f4,0x000200f8,0x000000f3,0x0004003d,0x00000006, + 0x000000f5,0x000000c7,0x000500c4,0x00000006,0x000000f6,0x000000f5,0x000000ca,0x0004003d, + 0x00000006,0x000000f7,0x000000da,0x000500c5,0x00000006,0x000000f8,0x000000f6,0x000000f7, + 0x0003003e,0x000000c7,0x000000f8,0x000200f9,0x000000f4,0x000200f8,0x000000f4,0x000200f9, + 0x000000d9,0x000200f8,0x000000f9,0x0004003d,0x0000001b,0x000000fa,0x0000002d,0x0004003d, + 0x0000001b,0x000000fb,0x0000002c,0x00050082,0x0000001b,0x000000fd,0x000000fb,0x000000fc, + 0x000500ad,0x0000000d,0x000000fe,0x000000fa,0x000000fd,0x000300f7,0x00000100,0x00000000, + 0x000400fa,0x000000fe,0x000000ff,0x00000100,0x000200f8,0x000000ff,0x0004003d,0x00000006, + 0x00000102,0x000000c7,0x000500c7,0x00000006,0x00000104,0x00000102,0x00000103,0x0003003e, + 0x00000101,0x00000104,0x0004003d,0x0000001b,0x00000105,0x0000002d,0x0004003d,0x0000001b, + 0x00000106,0x0000002c,0x00050082,0x0000001b,0x00000108,0x00000106,0x00000107,0x000500af, + 0x0000000d,0x00000109,0x00000105,0x00000108,0x000300f7,0x0000010b,0x00000000,0x000400fa, + 0x00000109,0x0000010a,0x0000010b,0x000200f8,0x0000010a,0x0004003d,0x00000006,0x0000010c, + 0x000000c7,0x000500c2,0x00000006,0x0000010d,0x0000010c,0x000000ca,0x0004003d,0x00000006, + 0x0000010e,0x00000101,0x000500c5,0x00000006,0x0000010f,0x0000010d,0x0000010e,0x0003003e, + 0x000000c7,0x0000010f,0x000200f9,0x0000010b,0x000200f8,0x0000010b,0x0004003d,0x0000001b, + 0x00000110,0x0000002d,0x0004003d,0x0000001b,0x00000111,0x0000002c,0x00050082,0x0000001b, + 0x00000113,0x00000111,0x00000112,0x000500af,0x0000000d,0x00000114,0x00000110,0x00000113, + 0x000300f7,0x00000116,0x00000000,0x000400fa,0x00000114,0x00000115,0x00000116,0x000200f8, + 0x00000115,0x0004003d,0x00000006,0x00000117,0x000000c7,0x000500c2,0x00000006,0x00000118, + 0x00000117,0x000000ca,0x0004003d,0x00000006,0x00000119,0x00000101,0x000500c5,0x00000006, + 0x0000011a,0x00000118,0x00000119,0x0003003e,0x000000c7,0x0000011a,0x000200f9,0x00000116, + 0x000200f8,0x00000116,0x0004003d,0x0000001b,0x0000011b,0x0000002d,0x0004003d,0x0000001b, + 0x0000011c,0x0000002c,0x00050082,0x0000001b,0x0000011e,0x0000011c,0x0000011d,0x000500af, + 0x0000000d,0x0000011f,0x0000011b,0x0000011e,0x000300f7,0x00000121,0x00000000,0x000400fa, + 0x0000011f,0x00000120,0x00000121,0x000200f8,0x00000120,0x0004003d,0x00000006,0x00000122, + 0x000000c7,0x000500c2,0x00000006,0x00000123,0x00000122,0x000000ca,0x0004003d,0x00000006, + 0x00000124,0x00000101,0x000500c5,0x00000006,0x00000125,0x00000123,0x00000124,0x0003003e, + 0x000000c7,0x00000125,0x000200f9,0x00000121,0x000200f8,0x00000121,0x000200f9,0x00000100, + 0x000200f8,0x00000100,0x000200f9,0x000000d9,0x000200f8,0x000000d9,0x0004003d,0x00000006, + 0x00000126,0x000000c7,0x000200fe,0x00000126,0x00010038,0x00050036,0x00000006,0x00000036, + 0x00000000,0x00000022,0x00030037,0x00000007,0x00000034,0x00030037,0x00000007,0x00000035, + 0x000200f8,0x00000037,0x0004003d,0x00000006,0x00000129,0x00000034,0x000500c2,0x00000006, + 0x0000012a,0x00000129,0x000000d6,0x000500c7,0x00000006,0x0000012b,0x0000012a,0x000000dc, + 0x0004007c,0x0000001b,0x0000012c,0x0000012b,0x0004003d,0x00000006,0x0000012d,0x00000035, + 0x000500c2,0x00000006,0x0000012e,0x0000012d,0x000000d6,0x000500c7,0x00000006,0x0000012f, + 0x0000012e,0x000000dc,0x0004007c,0x0000001b,0x00000130,0x0000012f,0x00050082,0x0000001b, + 0x00000131,0x0000012c,0x00000130,0x0006000c,0x0000001b,0x00000132,0x00000001,0x00000005, + 0x00000131,0x0004003d,0x00000006,0x00000133,0x00000034,0x000500c2,0x00000006,0x00000134, + 0x00000133,0x000000ca,0x000500c7,0x00000006,0x00000135,0x00000134,0x000000dc,0x0004007c, + 0x0000001b,0x00000136,0x00000135,0x0004003d,0x00000006,0x00000137,0x00000035,0x000500c2, + 0x00000006,0x00000138,0x00000137,0x000000ca,0x000500c7,0x00000006,0x00000139,0x00000138, + 0x000000dc,0x0004007c,0x0000001b,0x0000013a,0x00000139,0x00050082,0x0000001b,0x0000013b, + 0x00000136,0x0000013a,0x0006000c,0x0000001b,0x0000013c,0x00000001,0x00000005,0x0000013b, + 0x00050080,0x0000001b,0x0000013d,0x00000132,0x0000013c,0x0004003d,0x00000006,0x0000013e, + 0x00000034,0x000500c2,0x00000006,0x0000013f,0x0000013e,0x000000ce,0x000500c7,0x00000006, + 0x00000140,0x0000013f,0x000000dc,0x0004007c,0x0000001b,0x00000141,0x00000140,0x0004003d, + 0x00000006,0x00000142,0x00000035,0x000500c2,0x00000006,0x00000143,0x00000142,0x000000ce, + 0x000500c7,0x00000006,0x00000144,0x00000143,0x000000dc,0x0004007c,0x0000001b,0x00000145, + 0x00000144,0x00050082,0x0000001b,0x00000146,0x00000141,0x00000145,0x0006000c,0x0000001b, + 0x00000147,0x00000001,0x00000005,0x00000146,0x00050080,0x0000001b,0x00000148,0x0000013d, + 0x00000147,0x0004003d,0x00000006,0x00000149,0x00000034,0x000500c2,0x00000006,0x0000014a, + 0x00000149,0x000000d2,0x000500c7,0x00000006,0x0000014b,0x0000014a,0x000000dc,0x0004007c, + 0x0000001b,0x0000014c,0x0000014b,0x0004003d,0x00000006,0x0000014d,0x00000035,0x000500c2, + 0x00000006,0x0000014e,0x0000014d,0x000000d2,0x000500c7,0x00000006,0x0000014f,0x0000014e, + 0x000000dc,0x0004007c,0x0000001b,0x00000150,0x0000014f,0x00050082,0x0000001b,0x00000151, + 0x0000014c,0x00000150,0x0006000c,0x0000001b,0x00000152,0x00000001,0x00000005,0x00000151, + 0x00050080,0x0000001b,0x00000153,0x00000148,0x00000152,0x0004007c,0x00000006,0x00000154, + 0x00000153,0x000200fe,0x00000154,0x00010038,0x00050036,0x00000008,0x0000003c,0x00000000, + 0x00000038,0x00030037,0x00000007,0x00000039,0x00030037,0x00000007,0x0000003a,0x00030037, + 0x00000007,0x0000003b,0x000200f8,0x0000003d,0x0004003b,0x00000086,0x00000157,0x00000007, + 0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007,0x0000015a,0x00000007, + 0x0004003b,0x00000007,0x00000167,0x00000007,0x0004003b,0x00000007,0x00000169,0x00000007, + 0x0004003b,0x00000007,0x00000176,0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007, + 0x0004003b,0x00000007,0x00000183,0x00000007,0x0004003b,0x00000007,0x00000185,0x00000007, + 0x0004003d,0x00000006,0x00000159,0x00000039,0x0003003e,0x00000158,0x00000159,0x0004003d, + 0x00000006,0x0000015b,0x0000003b,0x0003003e,0x0000015a,0x0000015b,0x00060039,0x00000006, + 0x0000015c,0x00000036,0x00000158,0x0000015a,0x00050041,0x00000007,0x0000015e,0x00000157, + 0x0000015d,0x0003003e,0x0000015e,0x0000015c,0x0004003d,0x00000006,0x0000015f,0x00000039, + 0x000500c2,0x00000006,0x00000160,0x0000015f,0x000000ca,0x0004003d,0x00000006,0x00000161, + 0x0000003a,0x000500c7,0x00000006,0x00000162,0x00000161,0x000000dc,0x000500c4,0x00000006, + 0x00000163,0x00000162,0x000000d2,0x000500c5,0x00000006,0x00000164,0x00000160,0x00000163, + 0x0003003e,0x00000039,0x00000164,0x0004003d,0x00000006,0x00000165,0x0000003a,0x000500c2, + 0x00000006,0x00000166,0x00000165,0x000000ca,0x0003003e,0x0000003a,0x00000166,0x0004003d, + 0x00000006,0x00000168,0x00000039,0x0003003e,0x00000167,0x00000168,0x0004003d,0x00000006, + 0x0000016a,0x0000003b,0x0003003e,0x00000169,0x0000016a,0x00060039,0x00000006,0x0000016b, + 0x00000036,0x00000167,0x00000169,0x00050041,0x00000007,0x0000016d,0x00000157,0x0000016c, + 0x0003003e,0x0000016d,0x0000016b,0x0004003d,0x00000006,0x0000016e,0x00000039,0x000500c2, + 0x00000006,0x0000016f,0x0000016e,0x000000ca,0x0004003d,0x00000006,0x00000170,0x0000003a, + 0x000500c7,0x00000006,0x00000171,0x00000170,0x000000dc,0x000500c4,0x00000006,0x00000172, + 0x00000171,0x000000d2,0x000500c5,0x00000006,0x00000173,0x0000016f,0x00000172,0x0003003e, + 0x00000039,0x00000173,0x0004003d,0x00000006,0x00000174,0x0000003a,0x000500c2,0x00000006, + 0x00000175,0x00000174,0x000000ca,0x0003003e,0x0000003a,0x00000175,0x0004003d,0x00000006, + 0x00000177,0x00000039,0x0003003e,0x00000176,0x00000177,0x0004003d,0x00000006,0x00000179, + 0x0000003b,0x0003003e,0x00000178,0x00000179,0x00060039,0x00000006,0x0000017a,0x00000036, + 0x00000176,0x00000178,0x00050041,0x00000007,0x0000017c,0x00000157,0x0000017b,0x0003003e, + 0x0000017c,0x0000017a,0x0004003d,0x00000006,0x0000017d,0x00000039,0x000500c2,0x00000006, + 0x0000017e,0x0000017d,0x000000ca,0x0004003d,0x00000006,0x0000017f,0x0000003a,0x000500c7, + 0x00000006,0x00000180,0x0000017f,0x000000dc,0x000500c4,0x00000006,0x00000181,0x00000180, + 0x000000d2,0x000500c5,0x00000006,0x00000182,0x0000017e,0x00000181,0x0003003e,0x00000039, + 0x00000182,0x0004003d,0x00000006,0x00000184,0x00000039,0x0003003e,0x00000183,0x00000184, + 0x0004003d,0x00000006,0x00000186,0x0000003b,0x0003003e,0x00000185,0x00000186,0x00060039, + 0x00000006,0x00000187,0x00000036,0x00000183,0x00000185,0x00050041,0x00000007,0x00000188, + 0x00000157,0x000000a5,0x0003003e,0x00000188,0x00000187,0x0004003d,0x00000008,0x00000189, + 0x00000157,0x000200fe,0x00000189,0x00010038,0x00050036,0x0000003e,0x00000040,0x00000000, + 0x0000003f,0x000200f8,0x00000041,0x00050041,0x00000191,0x00000192,0x00000190,0x000000d6, + 0x0004003d,0x0000003e,0x00000193,0x00000192,0x000200fe,0x00000193,0x00010038,0x00050036, + 0x00000006,0x00000042,0x00000000,0x00000018,0x000200f8,0x00000043,0x00050041,0x00000196, + 0x00000197,0x00000190,0x00000107,0x0004003d,0x00000006,0x00000198,0x00000197,0x000200fe, + 0x00000198,0x00010038,0x00050036,0x00000006,0x00000044,0x00000000,0x00000018,0x000200f8, + 0x00000045,0x00050041,0x00000196,0x0000019b,0x00000190,0x0000011d,0x0004003d,0x00000006, + 0x0000019c,0x0000019b,0x000200fe,0x0000019c,0x00010038,0x00050036,0x00000006,0x00000046, + 0x00000000,0x00000018,0x000200f8,0x00000047,0x00050041,0x00000196,0x0000019f,0x00000190, + 0x00000112,0x0004003d,0x00000006,0x000001a0,0x0000019f,0x000200fe,0x000001a0,0x00010038, + 0x00050036,0x00000006,0x0000004b,0x00000000,0x00000049,0x00030037,0x00000048,0x0000004a, + 0x000200f8,0x0000004c,0x0004003d,0x000001a3,0x000001a6,0x000001a5,0x0004003d,0x0000003e, + 0x000001a7,0x0000004a,0x0007005f,0x00000008,0x000001a8,0x000001a6,0x000001a7,0x00000002, + 0x000000d6,0x00050051,0x00000006,0x000001a9,0x000001a8,0x00000000,0x000200fe,0x000001a9, + 0x00010038,0x00050036,0x00000006,0x0000004e,0x00000000,0x00000049,0x00030037,0x00000048, + 0x0000004d,0x000200f8,0x0000004f,0x0004003d,0x000001a3,0x000001ad,0x000001ac,0x0004003d, + 0x0000003e,0x000001ae,0x0000004d,0x0007005f,0x00000008,0x000001af,0x000001ad,0x000001ae, + 0x00000002,0x000000d6,0x00050051,0x00000006,0x000001b0,0x000001af,0x00000000,0x000200fe, + 0x000001b0,0x00010038,0x00050036,0x0000003e,0x00000052,0x00000000,0x00000050,0x00030037, + 0x00000048,0x00000051,0x000200f8,0x00000053,0x0004003d,0x000001b3,0x000001b6,0x000001b5, + 0x0004003d,0x0000003e,0x000001b7,0x00000051,0x00050062,0x000001b8,0x000001b9,0x000001b6, + 0x000001b7,0x0007004f,0x0000003e,0x000001ba,0x000001b9,0x000001b9,0x00000000,0x00000001, + 0x000200fe,0x000001ba,0x00010038,0x00050036,0x00000002,0x00000057,0x00000000,0x00000054, + 0x00030037,0x00000048,0x00000055,0x00030037,0x00000048,0x00000056,0x000200f8,0x00000058, + 0x0004003d,0x000001b3,0x000001bd,0x000001b5,0x0004003d,0x0000003e,0x000001be,0x00000055, + 0x0004003d,0x0000003e,0x000001bf,0x00000056,0x00050051,0x0000001b,0x000001c0,0x000001bf, + 0x00000000,0x00050051,0x0000001b,0x000001c1,0x000001bf,0x00000001,0x00070050,0x000001b8, + 0x000001c2,0x000001c0,0x000001c1,0x000000d6,0x000000d6,0x00040063,0x000001bd,0x000001be, + 0x000001c2,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000005b,0x00000000,0x00000059, + 0x00030037,0x0000001c,0x0000005a,0x000200f8,0x0000005c,0x0004003d,0x000001c3,0x000001c6, + 0x000001c5,0x0004003d,0x0000001b,0x000001c7,0x0000005a,0x00050050,0x0000003e,0x000001c8, + 0x000001c7,0x000000d6,0x00050062,0x00000008,0x000001c9,0x000001c6,0x000001c8,0x00050051, + 0x00000006,0x000001ca,0x000001c9,0x00000000,0x000200fe,0x000001ca,0x00010038,0x00050036, + 0x0000000d,0x0000005d,0x00000000,0x0000000e,0x000200f8,0x0000005e,0x0004003b,0x0000001c, + 0x000001d5,0x00000007,0x00040039,0x00000006,0x000001cd,0x00000042,0x000500b2,0x0000000d, + 0x000001cf,0x000001cd,0x000001ce,0x000300f7,0x000001d1,0x00000000,0x000400fa,0x000001cf, + 0x000001d0,0x000001d4,0x000200f8,0x000001d0,0x000200fe,0x000001d2,0x000200f8,0x000001d4, + 0x0003003e,0x000001d5,0x0000011d,0x00050039,0x00000006,0x000001d6,0x0000005b,0x000001d5, + 0x000500c7,0x00000006,0x000001d8,0x000001d6,0x000001d7,0x000500ab,0x0000000d,0x000001d9, + 0x000001d8,0x0000015d,0x000200fe,0x000001d9,0x000200f8,0x000001d1,0x000100ff,0x00010038, + 0x00050036,0x00000006,0x00000060,0x00000000,0x00000049,0x00030037,0x00000048,0x0000005f, + 0x000200f8,0x00000061,0x0004003b,0x0000001c,0x000001dc,0x00000007,0x0004003b,0x0000001c, + 0x000001e1,0x00000007,0x0004003b,0x00000048,0x000001e6,0x00000007,0x0004003b,0x0000001c, + 0x000001e9,0x00000007,0x0004003b,0x0000001c,0x000001ea,0x00000007,0x0004003b,0x0000001c, + 0x000001ee,0x00000007,0x0004003b,0x0000001c,0x000001ef,0x00000007,0x0004003b,0x0000001c, + 0x000001f3,0x00000007,0x0004003b,0x0000001c,0x000001f4,0x00000007,0x0004003b,0x0000001c, + 0x000001f8,0x00000007,0x0004003b,0x0000001c,0x000001f9,0x00000007,0x0004003b,0x00000007, + 0x000001fc,0x00000007,0x0004003b,0x00000048,0x00000200,0x00000007,0x0004003b,0x00000007, + 0x00000202,0x00000007,0x0004003b,0x00000048,0x00000206,0x00000007,0x0004003b,0x00000007, + 0x00000208,0x00000007,0x0004003b,0x00000048,0x0000020c,0x00000007,0x0004003b,0x00000007, + 0x0000020e,0x00000007,0x0004003b,0x00000048,0x00000212,0x00000007,0x0004003b,0x0000001c, + 0x00000214,0x00000007,0x0004003b,0x0000001c,0x00000216,0x00000007,0x0004003b,0x00000007, + 0x00000219,0x00000007,0x0004003b,0x00000007,0x0000021b,0x00000007,0x0004003b,0x00000007, + 0x0000021d,0x00000007,0x0004003b,0x00000007,0x0000021f,0x00000007,0x00040039,0x0000003e, + 0x000001dd,0x00000040,0x00050051,0x0000001b,0x000001de,0x000001dd,0x00000000,0x00040039, + 0x00000006,0x000001df,0x00000044,0x000500c3,0x0000001b,0x000001e0,0x000001de,0x000001df, + 0x0003003e,0x000001dc,0x000001e0,0x00040039,0x0000003e,0x000001e2,0x00000040,0x00050051, + 0x0000001b,0x000001e3,0x000001e2,0x00000001,0x00040039,0x00000006,0x000001e4,0x00000044, + 0x000500c3,0x0000001b,0x000001e5,0x000001e3,0x000001e4,0x0003003e,0x000001e1,0x000001e5, + 0x0004003d,0x0000001b,0x000001e7,0x000001dc,0x00050082,0x0000001b,0x000001e8,0x000001e7, + 0x000000fc,0x0003003e,0x000001e9,0x000001e8,0x00050041,0x0000001c,0x000001eb,0x0000005f, + 0x0000015d,0x0004003d,0x0000001b,0x000001ec,0x000001eb,0x0003003e,0x000001ea,0x000001ec, + 0x00060039,0x0000001b,0x000001ed,0x00000020,0x000001e9,0x000001ea,0x0003003e,0x000001ee, + 0x000000d6,0x0003003e,0x000001ef,0x000001ed,0x00060039,0x0000001b,0x000001f0,0x00000029, + 0x000001ee,0x000001ef,0x0004003d,0x0000001b,0x000001f1,0x000001e1,0x00050082,0x0000001b, + 0x000001f2,0x000001f1,0x0000011d,0x0003003e,0x000001f3,0x000001f2,0x00050041,0x0000001c, + 0x000001f5,0x0000005f,0x0000016c,0x0004003d,0x0000001b,0x000001f6,0x000001f5,0x0003003e, + 0x000001f4,0x000001f6,0x00060039,0x0000001b,0x000001f7,0x00000020,0x000001f3,0x000001f4, + 0x0003003e,0x000001f8,0x000000d6,0x0003003e,0x000001f9,0x000001f7,0x00060039,0x0000001b, + 0x000001fa,0x00000029,0x000001f8,0x000001f9,0x00050050,0x0000003e,0x000001fb,0x000001f0, + 0x000001fa,0x0003003e,0x000001e6,0x000001fb,0x0004003d,0x0000003e,0x000001fd,0x000001e6, + 0x00050080,0x0000003e,0x000001ff,0x000001fd,0x000001fe,0x0003003e,0x00000200,0x000001ff, + 0x00050039,0x00000006,0x00000201,0x0000004b,0x00000200,0x0003003e,0x000001fc,0x00000201, + 0x0004003d,0x0000003e,0x00000203,0x000001e6,0x00050080,0x0000003e,0x00000205,0x00000203, + 0x00000204,0x0003003e,0x00000206,0x00000205,0x00050039,0x00000006,0x00000207,0x0000004b, + 0x00000206,0x0003003e,0x00000202,0x00000207,0x0004003d,0x0000003e,0x00000209,0x000001e6, + 0x00050080,0x0000003e,0x0000020b,0x00000209,0x0000020a,0x0003003e,0x0000020c,0x0000020b, + 0x00050039,0x00000006,0x0000020d,0x0000004b,0x0000020c,0x0003003e,0x00000208,0x0000020d, + 0x0004003d,0x0000003e,0x0000020f,0x000001e6,0x00050080,0x0000003e,0x00000211,0x0000020f, + 0x00000210,0x0003003e,0x00000212,0x00000211,0x00050039,0x00000006,0x00000213,0x0000004b, + 0x00000212,0x0003003e,0x0000020e,0x00000213,0x0004003d,0x0000001b,0x00000215,0x000001dc, + 0x0003003e,0x00000214,0x00000215,0x00050041,0x0000001c,0x00000217,0x0000005f,0x0000015d, + 0x0004003d,0x0000001b,0x00000218,0x00000217,0x0003003e,0x00000216,0x00000218,0x0004003d, + 0x00000006,0x0000021a,0x000001fc,0x0003003e,0x00000219,0x0000021a,0x0004003d,0x00000006, + 0x0000021c,0x00000202,0x0003003e,0x0000021b,0x0000021c,0x0004003d,0x00000006,0x0000021e, + 0x00000208,0x0003003e,0x0000021d,0x0000021e,0x0004003d,0x00000006,0x00000220,0x0000020e, + 0x0003003e,0x0000021f,0x00000220,0x000a0039,0x00000006,0x00000221,0x00000032,0x00000214, + 0x00000216,0x00000219,0x0000021b,0x0000021d,0x0000021f,0x000200fe,0x00000221,0x00010038, + 0x00050036,0x00000006,0x00000063,0x00000000,0x00000049,0x00030037,0x00000048,0x00000062, + 0x000200f8,0x00000064,0x0004003b,0x0000001c,0x00000224,0x00000007,0x0004003b,0x0000001c, + 0x00000229,0x00000007,0x0004003b,0x00000048,0x0000022e,0x00000007,0x0004003b,0x0000001c, + 0x00000231,0x00000007,0x0004003b,0x0000001c,0x00000232,0x00000007,0x0004003b,0x0000001c, + 0x00000236,0x00000007,0x0004003b,0x0000001c,0x00000237,0x00000007,0x0004003b,0x0000001c, + 0x0000023b,0x00000007,0x0004003b,0x0000001c,0x0000023c,0x00000007,0x0004003b,0x0000001c, + 0x00000240,0x00000007,0x0004003b,0x0000001c,0x00000241,0x00000007,0x0004003b,0x00000007, + 0x00000244,0x00000007,0x0004003b,0x00000048,0x00000247,0x00000007,0x0004003b,0x00000007, + 0x00000249,0x00000007,0x0004003b,0x00000048,0x0000024c,0x00000007,0x0004003b,0x00000007, + 0x0000024e,0x00000007,0x0004003b,0x00000048,0x00000251,0x00000007,0x0004003b,0x00000007, + 0x00000253,0x00000007,0x0004003b,0x00000048,0x00000256,0x00000007,0x0004003b,0x0000001c, + 0x00000258,0x00000007,0x0004003b,0x0000001c,0x0000025a,0x00000007,0x0004003b,0x00000007, + 0x0000025d,0x00000007,0x0004003b,0x00000007,0x0000025f,0x00000007,0x0004003b,0x00000007, + 0x00000261,0x00000007,0x0004003b,0x00000007,0x00000263,0x00000007,0x00040039,0x0000003e, + 0x00000225,0x00000040,0x00050051,0x0000001b,0x00000226,0x00000225,0x00000000,0x00040039, + 0x00000006,0x00000227,0x00000044,0x000500c3,0x0000001b,0x00000228,0x00000226,0x00000227, + 0x0003003e,0x00000224,0x00000228,0x00040039,0x0000003e,0x0000022a,0x00000040,0x00050051, + 0x0000001b,0x0000022b,0x0000022a,0x00000001,0x00040039,0x00000006,0x0000022c,0x00000044, + 0x000500c3,0x0000001b,0x0000022d,0x0000022b,0x0000022c,0x0003003e,0x00000229,0x0000022d, + 0x0004003d,0x0000001b,0x0000022f,0x00000224,0x00050082,0x0000001b,0x00000230,0x0000022f, + 0x000000fc,0x0003003e,0x00000231,0x00000230,0x00050041,0x0000001c,0x00000233,0x00000062, + 0x0000015d,0x0004003d,0x0000001b,0x00000234,0x00000233,0x0003003e,0x00000232,0x00000234, + 0x00060039,0x0000001b,0x00000235,0x00000020,0x00000231,0x00000232,0x0003003e,0x00000236, + 0x000000d6,0x0003003e,0x00000237,0x00000235,0x00060039,0x0000001b,0x00000238,0x00000029, + 0x00000236,0x00000237,0x0004003d,0x0000001b,0x00000239,0x00000229,0x00050082,0x0000001b, + 0x0000023a,0x00000239,0x0000011d,0x0003003e,0x0000023b,0x0000023a,0x00050041,0x0000001c, + 0x0000023d,0x00000062,0x0000016c,0x0004003d,0x0000001b,0x0000023e,0x0000023d,0x0003003e, + 0x0000023c,0x0000023e,0x00060039,0x0000001b,0x0000023f,0x00000020,0x0000023b,0x0000023c, + 0x0003003e,0x00000240,0x000000d6,0x0003003e,0x00000241,0x0000023f,0x00060039,0x0000001b, + 0x00000242,0x00000029,0x00000240,0x00000241,0x00050050,0x0000003e,0x00000243,0x00000238, + 0x00000242,0x0003003e,0x0000022e,0x00000243,0x0004003d,0x0000003e,0x00000245,0x0000022e, + 0x00050080,0x0000003e,0x00000246,0x00000245,0x000001fe,0x0003003e,0x00000247,0x00000246, + 0x00050039,0x00000006,0x00000248,0x0000004e,0x00000247,0x0003003e,0x00000244,0x00000248, + 0x0004003d,0x0000003e,0x0000024a,0x0000022e,0x00050080,0x0000003e,0x0000024b,0x0000024a, + 0x00000204,0x0003003e,0x0000024c,0x0000024b,0x00050039,0x00000006,0x0000024d,0x0000004e, + 0x0000024c,0x0003003e,0x00000249,0x0000024d,0x0004003d,0x0000003e,0x0000024f,0x0000022e, + 0x00050080,0x0000003e,0x00000250,0x0000024f,0x0000020a,0x0003003e,0x00000251,0x00000250, + 0x00050039,0x00000006,0x00000252,0x0000004e,0x00000251,0x0003003e,0x0000024e,0x00000252, + 0x0004003d,0x0000003e,0x00000254,0x0000022e,0x00050080,0x0000003e,0x00000255,0x00000254, + 0x00000210,0x0003003e,0x00000256,0x00000255,0x00050039,0x00000006,0x00000257,0x0000004e, + 0x00000256,0x0003003e,0x00000253,0x00000257,0x0004003d,0x0000001b,0x00000259,0x00000224, + 0x0003003e,0x00000258,0x00000259,0x00050041,0x0000001c,0x0000025b,0x00000062,0x0000015d, + 0x0004003d,0x0000001b,0x0000025c,0x0000025b,0x0003003e,0x0000025a,0x0000025c,0x0004003d, + 0x00000006,0x0000025e,0x00000244,0x0003003e,0x0000025d,0x0000025e,0x0004003d,0x00000006, + 0x00000260,0x00000249,0x0003003e,0x0000025f,0x00000260,0x0004003d,0x00000006,0x00000262, + 0x0000024e,0x0003003e,0x00000261,0x00000262,0x0004003d,0x00000006,0x00000264,0x00000253, + 0x0003003e,0x00000263,0x00000264,0x000a0039,0x00000006,0x00000265,0x00000032,0x00000258, + 0x0000025a,0x0000025d,0x0000025f,0x00000261,0x00000263,0x000200fe,0x00000265,0x00010038, + 0x00050036,0x00000006,0x0000006a,0x00000000,0x00000065,0x00030037,0x00000007,0x00000066, + 0x00030037,0x0000001c,0x00000067,0x00030037,0x0000001c,0x00000068,0x00030037,0x0000001c, + 0x00000069,0x000200f8,0x0000006b,0x0004003b,0x00000007,0x0000026d,0x00000007,0x0004003b, + 0x0000001c,0x00000275,0x00000007,0x0004003d,0x0000001b,0x00000268,0x00000068,0x0004003d, + 0x0000001b,0x00000269,0x00000069,0x000500ab,0x0000000d,0x0000026a,0x00000268,0x00000269, + 0x000300f7,0x0000026c,0x00000000,0x000400fa,0x0000026a,0x0000026b,0x0000026c,0x000200f8, + 0x0000026b,0x0003003e,0x00000066,0x0000015d,0x000200f9,0x0000026c,0x000200f8,0x0000026c, + 0x0004003d,0x00000006,0x0000026e,0x00000066,0x0003003e,0x0000026d,0x0000026e,0x00050039, + 0x00000006,0x0000026f,0x00000016,0x0000026d,0x0003003e,0x00000066,0x0000026f,0x00040039, + 0x00000006,0x00000270,0x00000019,0x000500aa,0x0000000d,0x00000272,0x00000270,0x00000271, + 0x000300f7,0x00000274,0x00000000,0x000400fa,0x00000272,0x00000273,0x00000274,0x000200f8, + 0x00000273,0x0004003d,0x0000001b,0x00000276,0x00000067,0x000500c3,0x0000001b,0x00000277, + 0x00000276,0x000001ce,0x0003003e,0x00000275,0x00000277,0x00040039,0x0000000d,0x00000278, + 0x0000000f,0x000300f7,0x0000027a,0x00000000,0x000400fa,0x00000278,0x00000279,0x0000027a, + 0x000200f8,0x00000279,0x0004003d,0x0000001b,0x0000027e,0x00000275,0x0004003d,0x00000006, + 0x0000027f,0x00000066,0x00050041,0x00000280,0x00000281,0x0000027d,0x0000027e,0x0003003e, + 0x00000281,0x0000027f,0x000200f9,0x0000027a,0x000200f8,0x0000027a,0x000300e1,0x0000017b, + 0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283,0x0004003d,0x0000001b,0x00000284, + 0x00000275,0x000500c6,0x0000001b,0x00000285,0x00000284,0x0000011d,0x00050041,0x00000280, + 0x00000286,0x0000027d,0x00000285,0x0004003d,0x00000006,0x00000287,0x00000286,0x0004003d, + 0x00000006,0x00000288,0x00000066,0x00050080,0x00000006,0x00000289,0x00000288,0x00000287, + 0x0003003e,0x00000066,0x00000289,0x000200f9,0x00000274,0x000200f8,0x00000274,0x0004003d, + 0x00000006,0x0000028a,0x00000066,0x000200fe,0x0000028a,0x00010038,0x00050036,0x00000006, + 0x0000006f,0x00000000,0x0000006c,0x00030037,0x00000048,0x0000006d,0x00030037,0x0000001c, + 0x0000006e,0x000200f8,0x00000070,0x0004003b,0x00000007,0x0000028d,0x00000007,0x0004003b, + 0x00000007,0x0000029d,0x00000007,0x0004003b,0x00000007,0x000002a0,0x00000007,0x0004003b, + 0x00000007,0x000002a4,0x00000007,0x0004003b,0x00000007,0x000002ad,0x00000007,0x0004003b, + 0x00000007,0x000002b0,0x00000007,0x0004003b,0x00000007,0x000002b4,0x00000007,0x0004003b, + 0x00000007,0x000002b5,0x00000007,0x0004003b,0x00000007,0x000002b7,0x00000007,0x0004003b, + 0x00000007,0x000002ba,0x00000007,0x0004003b,0x0000001c,0x000002c1,0x00000007,0x0004003b, + 0x00000007,0x000002cd,0x00000007,0x0004003b,0x00000007,0x000002cf,0x00000007,0x00050041, + 0x0000001c,0x00000295,0x0000006d,0x0000016c,0x0004003d,0x0000001b,0x00000296,0x00000295, + 0x00050041,0x0000001c,0x00000297,0x0000006d,0x0000015d,0x0004003d,0x0000001b,0x00000298, + 0x00000297,0x00050041,0x0000001c,0x00000299,0x0000006d,0x0000016c,0x0004003d,0x0000001b, + 0x0000029a,0x00000299,0x00050041,0x0000001c,0x0000029b,0x0000006d,0x0000015d,0x0004003d, + 0x0000001b,0x0000029c,0x0000029b,0x00070041,0x00000280,0x0000029e,0x00000294,0x000000d6, + 0x00000296,0x00000298,0x0004003d,0x00000006,0x0000029f,0x0000029e,0x0003003e,0x0000029d, + 0x0000029f,0x00070041,0x00000280,0x000002a1,0x00000294,0x0000011d,0x0000029a,0x0000029c, + 0x0004003d,0x00000006,0x000002a2,0x000002a1,0x0003003e,0x000002a0,0x000002a2,0x00060039, + 0x00000006,0x000002a3,0x00000025,0x0000029d,0x000002a0,0x0003003e,0x0000028d,0x000002a3, + 0x00050041,0x0000001c,0x000002a5,0x0000006d,0x0000016c,0x0004003d,0x0000001b,0x000002a6, + 0x000002a5,0x00050041,0x0000001c,0x000002a7,0x0000006d,0x0000015d,0x0004003d,0x0000001b, + 0x000002a8,0x000002a7,0x00050041,0x0000001c,0x000002a9,0x0000006d,0x0000016c,0x0004003d, + 0x0000001b,0x000002aa,0x000002a9,0x00050041,0x0000001c,0x000002ab,0x0000006d,0x0000015d, + 0x0004003d,0x0000001b,0x000002ac,0x000002ab,0x00070041,0x00000280,0x000002ae,0x00000294, + 0x00000112,0x000002a6,0x000002a8,0x0004003d,0x00000006,0x000002af,0x000002ae,0x0003003e, + 0x000002ad,0x000002af,0x00070041,0x00000280,0x000002b1,0x00000294,0x00000107,0x000002aa, + 0x000002ac,0x0004003d,0x00000006,0x000002b2,0x000002b1,0x0003003e,0x000002b0,0x000002b2, + 0x00060039,0x00000006,0x000002b3,0x00000025,0x000002ad,0x000002b0,0x0003003e,0x000002a4, + 0x000002b3,0x0004003d,0x00000006,0x000002b6,0x0000028d,0x0003003e,0x000002b5,0x000002b6, + 0x0004003d,0x00000006,0x000002b8,0x000002a4,0x0003003e,0x000002b7,0x000002b8,0x00060039, + 0x00000006,0x000002b9,0x00000025,0x000002b5,0x000002b7,0x0003003e,0x000002b4,0x000002b9, + 0x0004003d,0x00000006,0x000002bb,0x000002b4,0x0003003e,0x000002ba,0x000002bb,0x00050039, + 0x00000006,0x000002bc,0x00000013,0x000002ba,0x0003003e,0x000002b4,0x000002bc,0x00040039, + 0x00000006,0x000002bd,0x00000019,0x000500aa,0x0000000d,0x000002be,0x000002bd,0x00000271, + 0x000300f7,0x000002c0,0x00000000,0x000400fa,0x000002be,0x000002bf,0x000002c0,0x000200f8, + 0x000002bf,0x0004003d,0x0000001b,0x000002c2,0x0000006e,0x000500c3,0x0000001b,0x000002c3, + 0x000002c2,0x000001ce,0x0003003e,0x000002c1,0x000002c3,0x00040039,0x0000000d,0x000002c4, + 0x0000000f,0x000300f7,0x000002c6,0x00000000,0x000400fa,0x000002c4,0x000002c5,0x000002c6, + 0x000200f8,0x000002c5,0x0004003d,0x0000001b,0x000002c8,0x000002c1,0x0004003d,0x00000006, + 0x000002c9,0x000002b4,0x00050041,0x00000280,0x000002ca,0x000002c7,0x000002c8,0x0003003e, + 0x000002ca,0x000002c9,0x000200f9,0x000002c6,0x000200f8,0x000002c6,0x000300e1,0x0000017b, + 0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283,0x0004003d,0x0000001b,0x000002cb, + 0x000002c1,0x000500c6,0x0000001b,0x000002cc,0x000002cb,0x0000011d,0x0004003d,0x00000006, + 0x000002ce,0x000002b4,0x0003003e,0x000002cd,0x000002ce,0x00050041,0x00000280,0x000002d0, + 0x000002c7,0x000002cc,0x0004003d,0x00000006,0x000002d1,0x000002d0,0x0003003e,0x000002cf, + 0x000002d1,0x00060039,0x00000006,0x000002d2,0x00000025,0x000002cd,0x000002cf,0x0003003e, + 0x000002b4,0x000002d2,0x000200f9,0x000002c0,0x000200f8,0x000002c0,0x0004003d,0x00000006, + 0x000002d3,0x000002b4,0x000200fe,0x000002d3,0x00010038,0x00050036,0x00000002,0x00000074, + 0x00000000,0x00000071,0x00030037,0x0000001c,0x00000072,0x00030037,0x00000048,0x00000073, + 0x000200f8,0x00000075,0x0004003b,0x0000001c,0x000002d6,0x00000007,0x0004003b,0x0000001c, + 0x000002da,0x00000007,0x0004003b,0x0000001c,0x000002de,0x00000007,0x0004003b,0x0000001c, + 0x000002e8,0x00000007,0x0004003b,0x0000001c,0x000002ec,0x00000007,0x0004003b,0x0000001c, + 0x000002ef,0x00000007,0x0004003b,0x0000001c,0x000002f4,0x00000007,0x0004003b,0x00000048, + 0x00000301,0x00000007,0x00050041,0x0000001c,0x000002d7,0x00000073,0x0000015d,0x0004003d, + 0x0000001b,0x000002d8,0x000002d7,0x00050082,0x0000001b,0x000002d9,0x000002d8,0x000000ca, + 0x0003003e,0x000002d6,0x000002d9,0x00050041,0x0000001c,0x000002db,0x00000073,0x0000016c, + 0x0004003d,0x0000001b,0x000002dc,0x000002db,0x00050082,0x0000001b,0x000002dd,0x000002dc, + 0x000000ca,0x0003003e,0x000002da,0x000002dd,0x0004003d,0x0000001b,0x000002df,0x00000072, + 0x0003003e,0x000002de,0x000002df,0x000200f9,0x000002e0,0x000200f8,0x000002e0,0x000400f6, + 0x000002e2,0x000002e3,0x00000000,0x000200f9,0x000002e4,0x000200f8,0x000002e4,0x0004003d, + 0x0000001b,0x000002e5,0x000002de,0x000500b1,0x0000000d,0x000002e7,0x000002e5,0x000002e6, + 0x000400fa,0x000002e7,0x000002e1,0x000002e2,0x000200f8,0x000002e1,0x0004003d,0x0000001b, + 0x000002e9,0x000002de,0x0005008b,0x0000001b,0x000002eb,0x000002e9,0x000002ea,0x0003003e, + 0x000002e8,0x000002eb,0x0004003d,0x0000001b,0x000002ed,0x000002de,0x00050087,0x0000001b, + 0x000002ee,0x000002ed,0x000002ea,0x0003003e,0x000002ec,0x000002ee,0x0004003d,0x0000001b, + 0x000002f0,0x000002d6,0x0004003d,0x0000001b,0x000002f1,0x000002e8,0x00050084,0x0000001b, + 0x000002f2,0x000002f1,0x000000fc,0x00050080,0x0000001b,0x000002f3,0x000002f0,0x000002f2, + 0x0003003e,0x000002ef,0x000002f3,0x0004003d,0x0000001b,0x000002f5,0x000002da,0x0004003d, + 0x0000001b,0x000002f6,0x000002ec,0x00050080,0x0000001b,0x000002f7,0x000002f5,0x000002f6, + 0x0003003e,0x000002f4,0x000002f7,0x0004003d,0x0000001b,0x000002fd,0x000002de,0x0004003d, + 0x0000001b,0x000002fe,0x000002ef,0x0004003d,0x0000001b,0x000002ff,0x000002f4,0x00050050, + 0x0000003e,0x00000300,0x000002fe,0x000002ff,0x0003003e,0x00000301,0x00000300,0x00050039, + 0x00000006,0x00000302,0x00000063,0x00000301,0x00060041,0x00000280,0x00000303,0x000002fc, + 0x000000d6,0x000002fd,0x0003003e,0x00000303,0x00000302,0x000200f9,0x000002e3,0x000200f8, + 0x000002e3,0x0004003d,0x0000001b,0x00000305,0x000002de,0x00050080,0x0000001b,0x00000306, + 0x00000305,0x00000304,0x0003003e,0x000002de,0x00000306,0x000200f9,0x000002e0,0x000200f8, + 0x000002e2,0x000300e1,0x0000017b,0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283, + 0x000100fd,0x00010038,0x00050036,0x00000008,0x00000078,0x00000000,0x00000076,0x00030037, + 0x00000048,0x00000077,0x000200f8,0x00000079,0x0004003b,0x00000086,0x00000307,0x00000007, + 0x0004003b,0x00000007,0x00000308,0x00000007,0x0004003b,0x0000001c,0x0000030a,0x00000007, + 0x0004003b,0x0000001c,0x00000312,0x00000007,0x0004003b,0x00000007,0x00000318,0x00000007, + 0x0004003b,0x00000007,0x0000031f,0x00000007,0x0004003b,0x00000007,0x00000327,0x00000007, + 0x0004003b,0x00000007,0x00000334,0x00000007,0x0004003b,0x00000007,0x00000336,0x00000007, + 0x0004003b,0x00000007,0x00000338,0x00000007,0x0004003b,0x00000007,0x0000033f,0x00000007, + 0x0004003b,0x00000007,0x00000341,0x00000007,0x0004003b,0x00000007,0x00000343,0x00000007, + 0x0003003e,0x00000308,0x0000015d,0x00050039,0x00000008,0x00000309,0x0000000b,0x00000308, + 0x0003003e,0x00000307,0x00000309,0x0003003e,0x0000030a,0x000000d6,0x000200f9,0x0000030b, + 0x000200f8,0x0000030b,0x000400f6,0x0000030d,0x0000030e,0x00000000,0x000200f9,0x0000030f, + 0x000200f8,0x0000030f,0x0004003d,0x0000001b,0x00000310,0x0000030a,0x000500b1,0x0000000d, + 0x00000311,0x00000310,0x000000ca,0x000400fa,0x00000311,0x0000030c,0x0000030d,0x000200f8, + 0x0000030c,0x00050041,0x0000001c,0x00000313,0x00000077,0x0000016c,0x0004003d,0x0000001b, + 0x00000314,0x00000313,0x0004003d,0x0000001b,0x00000315,0x0000030a,0x00050080,0x0000001b, + 0x00000316,0x00000314,0x00000315,0x00050084,0x0000001b,0x00000317,0x00000316,0x000002ea, + 0x0003003e,0x00000312,0x00000317,0x0004003d,0x0000001b,0x00000319,0x00000312,0x00050041, + 0x0000001c,0x0000031a,0x00000077,0x0000015d,0x0004003d,0x0000001b,0x0000031b,0x0000031a, + 0x00050080,0x0000001b,0x0000031c,0x00000319,0x0000031b,0x00060041,0x00000280,0x0000031d, + 0x000002fc,0x000000d6,0x0000031c,0x0004003d,0x00000006,0x0000031e,0x0000031d,0x0003003e, + 0x00000318,0x0000031e,0x0004003d,0x0000001b,0x00000320,0x00000312,0x00050041,0x0000001c, + 0x00000321,0x00000077,0x0000015d,0x0004003d,0x0000001b,0x00000322,0x00000321,0x00050080, + 0x0000001b,0x00000323,0x00000320,0x00000322,0x00050080,0x0000001b,0x00000324,0x00000323, + 0x0000011d,0x00060041,0x00000280,0x00000325,0x000002fc,0x000000d6,0x00000324,0x0004003d, + 0x00000006,0x00000326,0x00000325,0x0003003e,0x0000031f,0x00000326,0x0004003d,0x0000001b, + 0x00000328,0x00000312,0x00050041,0x0000001c,0x00000329,0x00000077,0x0000015d,0x0004003d, + 0x0000001b,0x0000032a,0x00000329,0x00050080,0x0000001b,0x0000032b,0x00000328,0x0000032a, + 0x00050080,0x0000001b,0x0000032c,0x0000032b,0x00000112,0x00060041,0x00000280,0x0000032d, + 0x000002fc,0x000000d6,0x0000032c,0x0004003d,0x00000006,0x0000032e,0x0000032d,0x0003003e, + 0x00000327,0x0000032e,0x0004003d,0x0000001b,0x00000333,0x0000030a,0x0004003d,0x00000006, + 0x00000335,0x00000318,0x0003003e,0x00000334,0x00000335,0x0004003d,0x00000006,0x00000337, + 0x0000031f,0x0003003e,0x00000336,0x00000337,0x00060041,0x00000280,0x00000339,0x00000332, + 0x00000333,0x000000d6,0x0004003d,0x00000006,0x0000033a,0x00000339,0x0003003e,0x00000338, + 0x0000033a,0x00070039,0x00000008,0x0000033b,0x0000003c,0x00000334,0x00000336,0x00000338, + 0x0004003d,0x00000008,0x0000033c,0x00000307,0x00050080,0x00000008,0x0000033d,0x0000033c, + 0x0000033b,0x0003003e,0x00000307,0x0000033d,0x0004003d,0x0000001b,0x0000033e,0x0000030a, + 0x0004003d,0x00000006,0x00000340,0x0000031f,0x0003003e,0x0000033f,0x00000340,0x0004003d, + 0x00000006,0x00000342,0x00000327,0x0003003e,0x00000341,0x00000342,0x00060041,0x00000280, + 0x00000344,0x00000332,0x0000033e,0x0000011d,0x0004003d,0x00000006,0x00000345,0x00000344, + 0x0003003e,0x00000343,0x00000345,0x00070039,0x00000008,0x00000346,0x0000003c,0x0000033f, + 0x00000341,0x00000343,0x0004003d,0x00000008,0x00000347,0x00000307,0x00050080,0x00000008, + 0x00000348,0x00000347,0x00000346,0x0003003e,0x00000307,0x00000348,0x000200f9,0x0000030e, + 0x000200f8,0x0000030e,0x0004003d,0x0000001b,0x00000349,0x0000030a,0x00050080,0x0000001b, + 0x0000034a,0x00000349,0x0000011d,0x0003003e,0x0000030a,0x0000034a,0x000200f9,0x0000030b, + 0x000200f8,0x0000030d,0x0004003d,0x00000008,0x0000034b,0x00000307,0x000200fe,0x0000034b, + 0x00010038,0x00050036,0x0000007a,0x0000007d,0x00000000,0x0000007b,0x00030037,0x00000048, + 0x0000007c,0x000200f8,0x0000007e,0x0004003b,0x00000048,0x0000034e,0x00000007,0x0004003b, + 0x00000048,0x00000350,0x00000007,0x0004003b,0x00000355,0x00000356,0x00000007,0x0004003d, + 0x0000003e,0x0000034f,0x0000007c,0x0003003e,0x0000034e,0x0000034f,0x0004003d,0x0000003e, + 0x00000351,0x0000034e,0x00050050,0x0000003e,0x00000353,0x00000352,0x00000352,0x000500c3, + 0x0000003e,0x00000354,0x00000351,0x00000353,0x0003003e,0x00000350,0x00000354,0x0004003d, + 0x0000003e,0x00000357,0x0000034e,0x0004003d,0x0000003e,0x00000358,0x00000350,0x00050080, + 0x0000003e,0x00000359,0x00000357,0x00000358,0x0004003d,0x0000003e,0x0000035a,0x00000350, + 0x000500c6,0x0000003e,0x0000035b,0x00000359,0x0000035a,0x0004007c,0x0000007a,0x0000035c, + 0x0000035b,0x0003003e,0x00000356,0x0000035c,0x0004003d,0x0000007a,0x0000035d,0x00000356, + 0x000200fe,0x0000035d,0x00010038,0x00050036,0x00000006,0x00000080,0x00000000,0x00000049, + 0x00030037,0x00000048,0x0000007f,0x000200f8,0x00000081,0x0004003b,0x00000355,0x00000360, + 0x00000007,0x0004003b,0x00000048,0x00000364,0x00000007,0x0004003d,0x0000003e,0x00000361, + 0x0000007f,0x00050050,0x0000003e,0x00000362,0x000000ca,0x000000ca,0x00050082,0x0000003e, + 0x00000363,0x00000361,0x00000362,0x0003003e,0x00000364,0x00000363,0x00050039,0x0000007a, + 0x00000365,0x0000007d,0x00000364,0x0003003e,0x00000360,0x00000365,0x00050041,0x00000007, + 0x00000366,0x00000360,0x0000016c,0x0004003d,0x00000006,0x00000367,0x00000366,0x000500c4, + 0x00000006,0x00000369,0x00000367,0x00000368,0x00050041,0x00000007,0x0000036a,0x00000360, + 0x0000015d,0x0004003d,0x00000006,0x0000036b,0x0000036a,0x000500c4,0x00000006,0x0000036c, + 0x0000036b,0x000000ca,0x000500c5,0x00000006,0x0000036d,0x00000369,0x0000036c,0x00050041, + 0x0000001c,0x0000036e,0x0000007f,0x0000016c,0x0004003d,0x0000001b,0x0000036f,0x0000036e, + 0x000500c4,0x0000001b,0x00000370,0x0000036f,0x000000fc,0x0004007c,0x00000006,0x00000371, + 0x00000370,0x000500c5,0x00000006,0x00000372,0x0000036d,0x00000371,0x00050041,0x0000001c, + 0x00000373,0x0000007f,0x0000015d,0x0004003d,0x0000001b,0x00000374,0x00000373,0x0004007c, + 0x00000006,0x00000375,0x00000374,0x000500c5,0x00000006,0x00000376,0x00000372,0x00000375, + 0x000200fe,0x00000376,0x00010038,0x00050036,0x0000003e,0x00000084,0x00000000,0x00000082, + 0x00030037,0x00000007,0x00000083,0x000200f8,0x00000085,0x0004003b,0x0000001c,0x00000379, + 0x00000007,0x0004003b,0x0000001c,0x0000037e,0x00000007,0x0004003d,0x00000006,0x0000037a, + 0x00000083,0x000500c7,0x00000006,0x0000037b,0x0000037a,0x000001d7,0x0004007c,0x0000001b, + 0x0000037c,0x0000037b,0x00050082,0x0000001b,0x0000037d,0x0000037c,0x000000ca,0x0003003e, + 0x00000379,0x0000037d,0x0004003d,0x00000006,0x0000037f,0x00000083,0x000500c2,0x00000006, + 0x00000380,0x0000037f,0x000000fc,0x000500c7,0x00000006,0x00000381,0x00000380,0x000001d7, + 0x0004007c,0x0000001b,0x00000382,0x00000381,0x00050082,0x0000001b,0x00000383,0x00000382, + 0x000000ca,0x0003003e,0x0000037e,0x00000383,0x0004003d,0x0000001b,0x00000384,0x00000379, + 0x0004003d,0x0000001b,0x00000385,0x0000037e,0x00050050,0x0000003e,0x00000386,0x00000384, + 0x00000385,0x000200fe,0x00000386,0x00010038,0x00050036,0x00000002,0x0000008a,0x00000000, + 0x00000087,0x00030037,0x00000048,0x00000088,0x00030037,0x00000086,0x00000089,0x000200f8, + 0x0000008b,0x0004003b,0x00000048,0x00000397,0x00000007,0x0004003b,0x00000048,0x000003a9, + 0x00000007,0x0004003b,0x00000048,0x000003bb,0x00000007,0x0004003b,0x00000048,0x000003cd, + 0x00000007,0x00050041,0x0000001c,0x00000389,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x0000038a,0x00000389,0x00050041,0x0000001c,0x0000038b,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x0000038c,0x0000038b,0x00050041,0x00000007,0x0000038d,0x00000089,0x0000015d, + 0x0004003d,0x00000006,0x0000038e,0x0000038d,0x000500c4,0x00000006,0x0000038f,0x0000038e, + 0x000000ce,0x00050041,0x0000001c,0x00000390,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x00000391,0x00000390,0x00050084,0x0000001b,0x00000392,0x00000391,0x000000fc,0x00050080, + 0x0000001b,0x00000393,0x00000392,0x000000d6,0x00050041,0x0000001c,0x00000394,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x00000395,0x00000394,0x00050050,0x0000003e,0x00000396, + 0x00000393,0x00000395,0x0003003e,0x00000397,0x00000396,0x00050039,0x00000006,0x00000398, + 0x00000080,0x00000397,0x000500c5,0x00000006,0x00000399,0x0000038f,0x00000398,0x00070041, + 0x00000280,0x0000039a,0x00000294,0x000000d6,0x0000038a,0x0000038c,0x0003003e,0x0000039a, + 0x00000399,0x00050041,0x0000001c,0x0000039b,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x0000039c,0x0000039b,0x00050041,0x0000001c,0x0000039d,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x0000039e,0x0000039d,0x00050041,0x00000007,0x0000039f,0x00000089,0x0000016c, + 0x0004003d,0x00000006,0x000003a0,0x0000039f,0x000500c4,0x00000006,0x000003a1,0x000003a0, + 0x000000ce,0x00050041,0x0000001c,0x000003a2,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x000003a3,0x000003a2,0x00050084,0x0000001b,0x000003a4,0x000003a3,0x000000fc,0x00050080, + 0x0000001b,0x000003a5,0x000003a4,0x0000011d,0x00050041,0x0000001c,0x000003a6,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x000003a7,0x000003a6,0x00050050,0x0000003e,0x000003a8, + 0x000003a5,0x000003a7,0x0003003e,0x000003a9,0x000003a8,0x00050039,0x00000006,0x000003aa, + 0x00000080,0x000003a9,0x000500c5,0x00000006,0x000003ab,0x000003a1,0x000003aa,0x00070041, + 0x00000280,0x000003ac,0x00000294,0x0000011d,0x0000039c,0x0000039e,0x0003003e,0x000003ac, + 0x000003ab,0x00050041,0x0000001c,0x000003ad,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x000003ae,0x000003ad,0x00050041,0x0000001c,0x000003af,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x000003b0,0x000003af,0x00050041,0x00000007,0x000003b1,0x00000089,0x0000017b, + 0x0004003d,0x00000006,0x000003b2,0x000003b1,0x000500c4,0x00000006,0x000003b3,0x000003b2, + 0x000000ce,0x00050041,0x0000001c,0x000003b4,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x000003b5,0x000003b4,0x00050084,0x0000001b,0x000003b6,0x000003b5,0x000000fc,0x00050080, + 0x0000001b,0x000003b7,0x000003b6,0x00000112,0x00050041,0x0000001c,0x000003b8,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x000003b9,0x000003b8,0x00050050,0x0000003e,0x000003ba, + 0x000003b7,0x000003b9,0x0003003e,0x000003bb,0x000003ba,0x00050039,0x00000006,0x000003bc, + 0x00000080,0x000003bb,0x000500c5,0x00000006,0x000003bd,0x000003b3,0x000003bc,0x00070041, + 0x00000280,0x000003be,0x00000294,0x00000112,0x000003ae,0x000003b0,0x0003003e,0x000003be, + 0x000003bd,0x00050041,0x0000001c,0x000003bf,0x00000088,0x0000016c,0x0004003d,0x0000001b, + 0x000003c0,0x000003bf,0x00050041,0x0000001c,0x000003c1,0x00000088,0x0000015d,0x0004003d, + 0x0000001b,0x000003c2,0x000003c1,0x00050041,0x00000007,0x000003c3,0x00000089,0x000000a5, + 0x0004003d,0x00000006,0x000003c4,0x000003c3,0x000500c4,0x00000006,0x000003c5,0x000003c4, + 0x000000ce,0x00050041,0x0000001c,0x000003c6,0x00000088,0x0000015d,0x0004003d,0x0000001b, + 0x000003c7,0x000003c6,0x00050084,0x0000001b,0x000003c8,0x000003c7,0x000000fc,0x00050080, + 0x0000001b,0x000003c9,0x000003c8,0x00000107,0x00050041,0x0000001c,0x000003ca,0x00000088, + 0x0000016c,0x0004003d,0x0000001b,0x000003cb,0x000003ca,0x00050050,0x0000003e,0x000003cc, + 0x000003c9,0x000003cb,0x0003003e,0x000003cd,0x000003cc,0x00050039,0x00000006,0x000003ce, + 0x00000080,0x000003cd,0x000500c5,0x00000006,0x000003cf,0x000003c5,0x000003ce,0x00070041, + 0x00000280,0x000003d0,0x00000294,0x00000107,0x000003c0,0x000003c2,0x0003003e,0x000003d0, + 0x000003cf,0x000300e1,0x0000017b,0x00000282,0x000400e0,0x0000017b,0x0000017b,0x00000283, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x00000090,0x00000000,0x0000008c,0x00030037, + 0x00000007,0x0000008d,0x00030037,0x00000007,0x0000008e,0x00030037,0x00000007,0x0000008f, + 0x000200f8,0x00000091,0x0004003b,0x00000007,0x000003d1,0x00000007,0x0004003d,0x00000006, + 0x000003d2,0x0000008f,0x000500c4,0x00000006,0x000003d3,0x0000016c,0x000003d2,0x00050082, + 0x00000006,0x000003d4,0x000003d3,0x0000016c,0x0003003e,0x000003d1,0x000003d4,0x0004003d, + 0x00000006,0x000003d5,0x0000008d,0x0004003d,0x00000006,0x000003d6,0x0000008e,0x000500c2, + 0x00000006,0x000003d7,0x000003d5,0x000003d6,0x0004003d,0x00000006,0x000003d8,0x000003d1, + 0x000500c7,0x00000006,0x000003d9,0x000003d7,0x000003d8,0x000200fe,0x000003d9,0x00010038, + 0x00050036,0x00000002,0x00000098,0x00000000,0x00000092,0x00030037,0x00000048,0x00000093, + 0x00030037,0x0000001c,0x00000094,0x00030037,0x00000048,0x00000095,0x00030037,0x00000048, + 0x00000096,0x00030037,0x0000001c,0x00000097,0x000200f8,0x00000099,0x0004003b,0x00000007, + 0x000003de,0x00000007,0x0004003b,0x00000007,0x000003df,0x00000007,0x0004003b,0x00000007, + 0x000003e0,0x00000007,0x0004003b,0x00000007,0x000003e5,0x00000007,0x0004003b,0x00000007, + 0x000003e6,0x00000007,0x0004003b,0x00000007,0x000003e7,0x00000007,0x0004003b,0x00000007, + 0x000003ed,0x00000007,0x0004003b,0x00000007,0x000003ee,0x00000007,0x0004003b,0x00000007, + 0x000003ef,0x00000007,0x0004003b,0x00000007,0x000003f3,0x00000007,0x0004003b,0x00000007, + 0x000003f4,0x00000007,0x0004003b,0x00000007,0x000003f5,0x00000007,0x0004003d,0x0000001b, + 0x000003dc,0x00000094,0x0004007c,0x00000006,0x000003dd,0x000003dc,0x0003003e,0x000003de, + 0x000003dd,0x0003003e,0x000003df,0x0000015d,0x0003003e,0x000003e0,0x0000017b,0x00070039, + 0x00000006,0x000003e1,0x00000090,0x000003de,0x000003df,0x000003e0,0x0004007c,0x0000001b, + 0x000003e2,0x000003e1,0x0004003d,0x0000001b,0x000003e3,0x00000094,0x0004007c,0x00000006, + 0x000003e4,0x000003e3,0x0003003e,0x000003e5,0x000003e4,0x0003003e,0x000003e6,0x0000017b, + 0x0003003e,0x000003e7,0x00000291,0x00070039,0x00000006,0x000003e8,0x00000090,0x000003e5, + 0x000003e6,0x000003e7,0x0004007c,0x0000001b,0x000003e9,0x000003e8,0x00050050,0x0000003e, + 0x000003ea,0x000003e2,0x000003e9,0x0003003e,0x00000095,0x000003ea,0x0004003d,0x0000001b, + 0x000003eb,0x00000094,0x0004007c,0x00000006,0x000003ec,0x000003eb,0x0003003e,0x000003ed, + 0x000003ec,0x0003003e,0x000003ee,0x0000016c,0x0003003e,0x000003ef,0x0000016c,0x00070039, + 0x00000006,0x000003f0,0x00000090,0x000003ed,0x000003ee,0x000003ef,0x0004003d,0x0000001b, + 0x000003f1,0x00000094,0x0004007c,0x00000006,0x000003f2,0x000003f1,0x0003003e,0x000003f3, + 0x000003f2,0x0003003e,0x000003f4,0x000001ce,0x0003003e,0x000003f5,0x0000016c,0x00070039, + 0x00000006,0x000003f6,0x00000090,0x000003f3,0x000003f4,0x000003f5,0x000500c4,0x00000006, + 0x000003f7,0x000003f6,0x0000016c,0x000500c5,0x00000006,0x000003f8,0x000003f0,0x000003f7, + 0x0004007c,0x0000001b,0x000003f9,0x000003f8,0x0003003e,0x00000097,0x000003f9,0x0004003d, + 0x0000003e,0x000003fa,0x00000093,0x00050050,0x0000007a,0x000003fb,0x00000291,0x00000291, + 0x000500c4,0x0000003e,0x000003fc,0x000003fa,0x000003fb,0x0004003d,0x0000003e,0x000003fd, + 0x00000095,0x00050084,0x0000003e,0x000003ff,0x000003fd,0x000003fe,0x00050080,0x0000003e, + 0x00000400,0x000003fc,0x000003ff,0x0003003e,0x00000096,0x00000400,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000009f,0x00000000,0x0000009a,0x00030037,0x00000048,0x0000009b, + 0x00030037,0x00000048,0x0000009c,0x00030037,0x00000048,0x0000009d,0x00030037,0x0000001c, + 0x0000009e,0x000200f8,0x000000a0,0x0004003b,0x00000048,0x00000401,0x00000007,0x0004003b, + 0x00000048,0x00000402,0x00000007,0x0004003b,0x0000001c,0x00000403,0x00000007,0x0004003b, + 0x00000048,0x00000404,0x00000007,0x0004003b,0x0000001c,0x00000406,0x00000007,0x0004003b, + 0x00000048,0x00000408,0x00000007,0x0004003b,0x00000048,0x00000409,0x00000007,0x0004003b, + 0x0000001c,0x0000040a,0x00000007,0x0004003b,0x00000048,0x0000040f,0x00000007,0x0004003b, + 0x00000048,0x00000424,0x00000007,0x0004003b,0x00000048,0x00000426,0x00000007,0x0004003b, + 0x00000429,0x0000042a,0x00000007,0x0004003b,0x00000007,0x0000042f,0x00000007,0x0004003b, + 0x00000048,0x00000430,0x00000007,0x0004003b,0x00000007,0x00000433,0x00000007,0x0004003b, + 0x00000048,0x00000434,0x00000007,0x0004003b,0x00000007,0x00000437,0x00000007,0x0004003b, + 0x00000007,0x00000438,0x00000007,0x0004003b,0x00000007,0x0000043a,0x00000007,0x0004003b, + 0x00000048,0x0000043d,0x00000007,0x0004003b,0x00000048,0x00000441,0x00000007,0x0004003b, + 0x00000048,0x00000445,0x00000007,0x0004003b,0x00000048,0x00000458,0x00000007,0x0004003b, + 0x00000048,0x0000045c,0x00000007,0x0004003b,0x0000001c,0x0000047b,0x00000007,0x0004003b, + 0x00000048,0x0000047d,0x00000007,0x0004003b,0x00000086,0x0000047f,0x00000007,0x0004003b, + 0x00000048,0x00000480,0x00000007,0x0004003b,0x00000048,0x00000483,0x00000007,0x0004003b, + 0x00000086,0x00000485,0x00000007,0x0004003b,0x00000007,0x00000488,0x00000007,0x0004003b, + 0x00000048,0x00000489,0x00000007,0x0004003b,0x0000001c,0x0000048b,0x00000007,0x0004003b, + 0x00000048,0x0000048e,0x00000007,0x0004003b,0x00000007,0x0000048f,0x00000007,0x0004003b, + 0x00000048,0x00000492,0x00000007,0x0004003b,0x00000007,0x00000496,0x00000007,0x0004003b, + 0x00000007,0x0000049d,0x00000007,0x0004003b,0x0000001c,0x0000049f,0x00000007,0x0004003b, + 0x0000001c,0x000004a1,0x00000007,0x0004003b,0x0000001c,0x000004a3,0x00000007,0x0004003b, + 0x00000048,0x000004b3,0x00000007,0x0004003b,0x00000048,0x000004b4,0x00000007,0x0004003d, + 0x0000003e,0x00000405,0x0000009d,0x0003003e,0x00000404,0x00000405,0x0004003d,0x0000001b, + 0x00000407,0x0000009e,0x0003003e,0x00000406,0x00000407,0x00090039,0x00000002,0x0000040b, + 0x00000098,0x00000404,0x00000406,0x00000408,0x00000409,0x0000040a,0x0004003d,0x0000003e, + 0x0000040c,0x00000408,0x0003003e,0x00000401,0x0000040c,0x0004003d,0x0000003e,0x0000040d, + 0x00000409,0x0003003e,0x00000402,0x0000040d,0x0004003d,0x0000001b,0x0000040e,0x0000040a, + 0x0003003e,0x00000403,0x0000040e,0x0004003d,0x0000003e,0x00000410,0x00000402,0x00050050, + 0x0000007a,0x00000411,0x000000a5,0x000000a5,0x000500c3,0x0000003e,0x00000412,0x00000410, + 0x00000411,0x0003003e,0x0000040f,0x00000412,0x00040039,0x0000000d,0x00000413,0x0000005d, + 0x000300f7,0x00000415,0x00000000,0x000400fa,0x00000413,0x00000414,0x00000415,0x000200f8, + 0x00000414,0x00050041,0x0000001c,0x00000416,0x00000401,0x0000016c,0x0004003d,0x0000001b, + 0x00000417,0x00000416,0x000500c7,0x0000001b,0x00000419,0x00000417,0x00000418,0x000500aa, + 0x0000000d,0x0000041a,0x00000419,0x000000d6,0x000300f7,0x0000041c,0x00000000,0x000400fa, + 0x0000041a,0x0000041b,0x0000041c,0x000200f8,0x0000041b,0x00050041,0x0000001c,0x0000041d, + 0x00000401,0x0000015d,0x0004003d,0x0000001b,0x0000041e,0x0000041d,0x000500c7,0x0000001b, + 0x0000041f,0x0000041e,0x0000011d,0x000500aa,0x0000000d,0x00000420,0x0000041f,0x000000d6, + 0x000200f9,0x0000041c,0x000200f8,0x0000041c,0x000700f5,0x0000000d,0x00000421,0x0000041a, + 0x00000414,0x00000420,0x0000041b,0x000300f7,0x00000423,0x00000000,0x000400fa,0x00000421, + 0x00000422,0x00000423,0x000200f8,0x00000422,0x0004003d,0x0000003e,0x00000425,0x0000040f, + 0x0003003e,0x00000424,0x00000425,0x0003003e,0x00000426,0x000001fe,0x00060039,0x00000002, + 0x00000427,0x00000057,0x00000424,0x00000426,0x000200f9,0x00000423,0x000200f8,0x00000423, + 0x000100fd,0x000200f8,0x00000415,0x00040039,0x00000006,0x0000042b,0x00000044,0x00040039, + 0x00000006,0x0000042c,0x00000046,0x00050082,0x00000006,0x0000042d,0x0000042c,0x0000016c, + 0x000500ab,0x0000000d,0x0000042e,0x0000042b,0x0000042d,0x0003003e,0x0000042a,0x0000042e, + 0x0004003d,0x0000003e,0x00000431,0x00000402,0x0003003e,0x00000430,0x00000431,0x00050039, + 0x00000006,0x00000432,0x00000060,0x00000430,0x0003003e,0x0000042f,0x00000432,0x0004003d, + 0x0000003e,0x00000435,0x00000402,0x0003003e,0x00000434,0x00000435,0x00050039,0x00000006, + 0x00000436,0x00000063,0x00000434,0x0003003e,0x00000433,0x00000436,0x0004003d,0x00000006, + 0x00000439,0x0000042f,0x0003003e,0x00000438,0x00000439,0x0004003d,0x00000006,0x0000043b, + 0x00000433,0x0003003e,0x0000043a,0x0000043b,0x00060039,0x00000006,0x0000043c,0x00000036, + 0x00000438,0x0000043a,0x0003003e,0x00000437,0x0000043c,0x0004003d,0x0000003e,0x0000043e, + 0x0000009d,0x00050050,0x0000007a,0x0000043f,0x0000016c,0x0000016c,0x000500c4,0x0000003e, + 0x00000440,0x0000043e,0x0000043f,0x0003003e,0x0000043d,0x00000440,0x0004003d,0x0000003e, + 0x00000442,0x0000009d,0x00050050,0x0000007a,0x00000443,0x00000291,0x00000291,0x000500c4, + 0x0000003e,0x00000444,0x00000442,0x00000443,0x0003003e,0x00000441,0x00000444,0x00050041, + 0x0000001c,0x00000446,0x00000445,0x0000016c,0x0003003e,0x00000446,0x000000d6,0x000200f9, + 0x00000447,0x000200f8,0x00000447,0x000400f6,0x00000449,0x0000044a,0x00000000,0x000200f9, + 0x0000044b,0x000200f8,0x0000044b,0x00050041,0x0000001c,0x0000044c,0x00000445,0x0000016c, + 0x0004003d,0x0000001b,0x0000044d,0x0000044c,0x000500b1,0x0000000d,0x0000044e,0x0000044d, + 0x00000112,0x000400fa,0x0000044e,0x00000448,0x00000449,0x000200f8,0x00000448,0x00050041, + 0x0000001c,0x0000044f,0x00000445,0x0000015d,0x0003003e,0x0000044f,0x000000d6,0x000200f9, + 0x00000450,0x000200f8,0x00000450,0x000400f6,0x00000452,0x00000453,0x00000000,0x000200f9, + 0x00000454,0x000200f8,0x00000454,0x00050041,0x0000001c,0x00000455,0x00000445,0x0000015d, + 0x0004003d,0x0000001b,0x00000456,0x00000455,0x000500b1,0x0000000d,0x00000457,0x00000456, + 0x00000112,0x000400fa,0x00000457,0x00000451,0x00000452,0x000200f8,0x00000451,0x0004003d, + 0x0000003e,0x00000459,0x0000043d,0x0004003d,0x0000003e,0x0000045a,0x00000445,0x00050080, + 0x0000003e,0x0000045b,0x00000459,0x0000045a,0x0003003e,0x0000045c,0x0000045b,0x00050039, + 0x0000003e,0x0000045d,0x00000052,0x0000045c,0x0003003e,0x00000458,0x0000045d,0x0004003d, + 0x0000000d,0x0000045e,0x0000042a,0x000400a8,0x0000000d,0x0000045f,0x0000045e,0x000300f7, + 0x00000461,0x00000000,0x000400fa,0x0000045f,0x00000460,0x00000461,0x000200f8,0x00000460, + 0x0003003e,0x00000458,0x000001fe,0x000200f9,0x00000461,0x000200f8,0x00000461,0x0004003d, + 0x0000001b,0x00000462,0x00000403,0x00050041,0x0000001c,0x00000463,0x00000445,0x0000016c, + 0x0004003d,0x0000001b,0x00000464,0x00000463,0x00050084,0x0000001b,0x00000465,0x00000464, + 0x00000112,0x00050041,0x0000001c,0x00000466,0x00000445,0x0000015d,0x0004003d,0x0000001b, + 0x00000467,0x00000466,0x00050080,0x0000001b,0x00000468,0x00000465,0x00000467,0x000500aa, + 0x0000000d,0x00000469,0x00000462,0x00000468,0x000300f7,0x0000046b,0x00000000,0x000400fa, + 0x00000469,0x0000046a,0x0000046b,0x000200f8,0x0000046a,0x00050041,0x0000001c,0x0000046c, + 0x00000401,0x0000016c,0x0004003d,0x0000001b,0x0000046d,0x0000046c,0x000500c7,0x0000001b, + 0x0000046e,0x0000046d,0x00000418,0x00050041,0x0000001c,0x0000046f,0x00000401,0x0000015d, + 0x0004003d,0x0000001b,0x00000470,0x0000046f,0x000500c7,0x0000001b,0x00000471,0x00000470, + 0x0000011d,0x0004003d,0x00000006,0x00000472,0x0000042f,0x00060041,0x00000280,0x00000473, + 0x00000332,0x0000046e,0x00000471,0x0003003e,0x00000473,0x00000472,0x000200f9,0x0000046b, + 0x000200f8,0x0000046b,0x0004003d,0x0000003e,0x00000474,0x00000441,0x0004003d,0x0000003e, + 0x00000475,0x00000445,0x00050050,0x0000003e,0x00000476,0x000000ca,0x000000ca,0x00050084, + 0x0000003e,0x00000477,0x00000475,0x00000476,0x00050080,0x0000003e,0x00000478,0x00000474, + 0x00000477,0x0004003d,0x0000003e,0x00000479,0x00000458,0x00050080,0x0000003e,0x0000047a, + 0x00000478,0x00000479,0x0004003d,0x0000001b,0x0000047c,0x0000009e,0x0003003e,0x0000047b, + 0x0000047c,0x0003003e,0x0000047d,0x0000047a,0x00060039,0x00000002,0x0000047e,0x00000074, + 0x0000047b,0x0000047d,0x0004003d,0x0000003e,0x00000481,0x00000401,0x0003003e,0x00000480, + 0x00000481,0x00050039,0x00000008,0x00000482,0x00000078,0x00000480,0x0003003e,0x0000047f, + 0x00000482,0x0004003d,0x0000003e,0x00000484,0x00000401,0x0003003e,0x00000483,0x00000484, + 0x0004003d,0x00000008,0x00000486,0x0000047f,0x0003003e,0x00000485,0x00000486,0x00060039, + 0x00000002,0x00000487,0x0000008a,0x00000483,0x00000485,0x0004003d,0x0000003e,0x0000048a, + 0x00000401,0x0003003e,0x00000489,0x0000048a,0x0004003d,0x0000001b,0x0000048c,0x0000009e, + 0x0003003e,0x0000048b,0x0000048c,0x00060039,0x00000006,0x0000048d,0x0000006f,0x00000489, + 0x0000048b,0x0003003e,0x00000488,0x0000048d,0x0004003d,0x00000006,0x00000490,0x00000488, + 0x0003003e,0x0000048f,0x00000490,0x00050039,0x0000003e,0x00000491,0x00000084,0x0000048f, + 0x0003003e,0x0000048e,0x00000491,0x0004003d,0x0000003e,0x00000493,0x00000458,0x0004003d, + 0x0000003e,0x00000494,0x0000048e,0x00050080,0x0000003e,0x00000495,0x00000493,0x00000494, + 0x0003003e,0x00000492,0x00000495,0x00050041,0x0000001c,0x00000497,0x00000445,0x0000015d, + 0x0004003d,0x0000001b,0x00000498,0x00000497,0x00050041,0x0000001c,0x00000499,0x00000445, + 0x0000016c,0x0004003d,0x0000001b,0x0000049a,0x00000499,0x00050084,0x0000001b,0x0000049b, + 0x0000049a,0x00000112,0x00050080,0x0000001b,0x0000049c,0x00000498,0x0000049b,0x0004003d, + 0x00000006,0x0000049e,0x00000437,0x0003003e,0x0000049d,0x0000049e,0x0004003d,0x0000001b, + 0x000004a0,0x0000009e,0x0003003e,0x0000049f,0x000004a0,0x0004003d,0x0000001b,0x000004a2, + 0x00000403,0x0003003e,0x000004a1,0x000004a2,0x0003003e,0x000004a3,0x0000049c,0x00080039, + 0x00000006,0x000004a4,0x0000006a,0x0000049d,0x0000049f,0x000004a1,0x000004a3,0x0003003e, + 0x00000496,0x000004a4,0x00040039,0x00000006,0x000004a5,0x00000044,0x000500aa,0x0000000d, + 0x000004a6,0x000004a5,0x0000015d,0x000300f7,0x000004a8,0x00000000,0x000400fa,0x000004a6, + 0x000004a7,0x000004a8,0x000200f8,0x000004a7,0x0004003d,0x00000006,0x000004a9,0x00000496, + 0x0004003d,0x00000006,0x000004aa,0x00000488,0x000500c2,0x00000006,0x000004ab,0x000004aa, + 0x0000028f,0x000500b2,0x0000000d,0x000004ac,0x000004a9,0x000004ab,0x000200f9,0x000004a8, + 0x000200f8,0x000004a8,0x000700f5,0x0000000d,0x000004ad,0x000004a6,0x0000046b,0x000004ac, + 0x000004a7,0x000300f7,0x000004af,0x00000000,0x000400fa,0x000004ad,0x000004ae,0x000004af, + 0x000200f8,0x000004ae,0x0003003e,0x00000492,0x000001fe,0x000200f9,0x000004af,0x000200f8, + 0x000004af,0x0004003d,0x0000003e,0x000004b0,0x0000043d,0x0004003d,0x0000003e,0x000004b1, + 0x00000445,0x00050080,0x0000003e,0x000004b2,0x000004b0,0x000004b1,0x0003003e,0x000004b3, + 0x000004b2,0x0004003d,0x0000003e,0x000004b5,0x00000492,0x0003003e,0x000004b4,0x000004b5, + 0x00060039,0x00000002,0x000004b6,0x00000057,0x000004b3,0x000004b4,0x000200f9,0x00000453, + 0x000200f8,0x00000453,0x00050041,0x0000001c,0x000004b7,0x00000445,0x0000015d,0x0004003d, + 0x0000001b,0x000004b8,0x000004b7,0x00050080,0x0000001b,0x000004b9,0x000004b8,0x0000011d, + 0x0003003e,0x000004b7,0x000004b9,0x000200f9,0x00000450,0x000200f8,0x00000452,0x000200f9, + 0x0000044a,0x000200f8,0x0000044a,0x00050041,0x0000001c,0x000004ba,0x00000445,0x0000016c, + 0x0004003d,0x0000001b,0x000004bb,0x000004ba,0x00050080,0x0000001b,0x000004bc,0x000004bb, + 0x0000011d,0x0003003e,0x000004ba,0x000004bc,0x000200f9,0x00000447,0x000200f8,0x00000449, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h b/gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h new file mode 100644 index 000000000..c1c08bdbc --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h @@ -0,0 +1,625 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_COMPUTE_SCD_DIVERGENCE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000319,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0009000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000002fb,0x000002fe,0x00000304, + 0x00000307,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b, + 0x41786666,0x6e495573,0x28323374,0x003b3166,0x00030005,0x0000000a,0x00000078,0x00060005, + 0x00000012,0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000010,0x00000078, + 0x00030005,0x00000011,0x00000079,0x00060005,0x00000018,0x4d786666,0x75286e69,0x31753b31, + 0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017,0x00000079,0x00060005, + 0x0000001c,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x0000001a,0x00000078, + 0x00030005,0x0000001b,0x00000079,0x000a0005,0x00000021,0x736f7243,0x53646573,0x656e6563, + 0x6e616843,0x68546567,0x68736572,0x28646c6f,0x003b3166,0x00070005,0x00000020,0x6e656373, + 0x61684365,0x5665676e,0x65756c61,0x00000000,0x00080005,0x00000025,0x64616f4c,0x43537752, + 0x73694844,0x72676f74,0x69286d61,0x00003b31,0x00040005,0x00000024,0x646e4969,0x00007865, + 0x00090005,0x0000002a,0x726f7453,0x44435365,0x74736948,0x6172676f,0x3169286d,0x3b31753b, + 0x00000000,0x00040005,0x00000028,0x646e4969,0x00007865,0x00040005,0x00000029,0x756c6176, + 0x00000065,0x000a0005,0x0000002e,0x64616f4c,0x43537752,0x65725044,0x756f6976,0x73694873, + 0x72676f74,0x69286d61,0x00003b31,0x00040005,0x0000002d,0x646e4969,0x00007865,0x000b0005, + 0x00000033,0x726f7453,0x44435365,0x76657250,0x73756f69,0x74736948,0x6172676f,0x3169286d, + 0x3b31663b,0x00000000,0x00040005,0x00000031,0x646e4969,0x00007865,0x00040005,0x00000032, + 0x756c6176,0x00000065,0x00070005,0x00000036,0x64616f4c,0x43537752,0x6d655444,0x31692870, + 0x0000003b,0x00040005,0x00000035,0x646e4969,0x00007865,0x000a0005,0x0000003a,0x6d6f7441, + 0x6e496369,0x6d657263,0x53746e65,0x65544443,0x6928706d,0x31753b31,0x0000003b,0x00040005, + 0x00000038,0x646e4969,0x00007865,0x00050005,0x00000039,0x756c6176,0x416f5465,0x00006464, + 0x00060005,0x0000003c,0x65736552,0x44435374,0x706d6554,0x00000028,0x00070005,0x0000003f, + 0x64616f4c,0x43537752,0x74754f44,0x28747570,0x003b3169,0x00040005,0x0000003e,0x646e4969, + 0x00007865,0x00080005,0x00000043,0x726f7453,0x44435365,0x7074754f,0x69287475,0x31753b31, + 0x0000003b,0x00040005,0x00000041,0x646e4969,0x00007865,0x00040005,0x00000042,0x756c6176, + 0x00000065,0x000a0005,0x00000048,0x6d6f7441,0x6e496369,0x6d657263,0x53746e65,0x754f4443, + 0x74757074,0x3b316928,0x003b3175,0x00040005,0x00000046,0x646e4969,0x00007865,0x00050005, + 0x00000047,0x756c6176,0x416f5465,0x00006464,0x000f0005,0x00000054,0x706d6f43,0x53657475, + 0x69484443,0x676f7473,0x736d6172,0x65766944,0x6e656772,0x76286563,0x763b3369,0x693b3269, + 0x69763b31,0x69763b32,0x00003b32,0x00050005,0x0000004f,0x6f6c4769,0x496c6162,0x00000064, + 0x00050005,0x00000050,0x636f4c69,0x64496c61,0x00000000,0x00050005,0x00000051,0x636f4c69, + 0x6e496c61,0x00786564,0x00050005,0x00000052,0x6f724769,0x64497075,0x00000000,0x00050005, + 0x00000053,0x6f724769,0x69537075,0x0000657a,0x000a0005,0x00000070,0x6f5f7772,0x63697470, + 0x665f6c61,0x5f776f6c,0x5f646373,0x74736968,0x6172676f,0x0000006d,0x000c0005,0x00000082, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x5f646373,0x76657270,0x73756f69,0x7369685f, + 0x72676f74,0x00006d61,0x00090005,0x00000091,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x5f646373,0x706d6574,0x00000000,0x00090005,0x000000a9,0x6f5f7772,0x63697470,0x665f6c61, + 0x5f776f6c,0x5f646373,0x7074756f,0x00007475,0x00060005,0x000000c0,0x72756f73,0x69486563, + 0x676f7473,0x006d6172,0x00040005,0x000000c2,0x61726170,0x0000006d,0x00050005,0x000000cc, + 0x65646e69,0x526f5478,0x00646165,0x00030005,0x000000d0,0x006c6176,0x00040005,0x000000d5, + 0x61726170,0x0000006d,0x00040005,0x000000d6,0x61726170,0x0000006d,0x00040005,0x000000d8, + 0x61726170,0x0000006d,0x00040005,0x000000d9,0x61726170,0x0000006d,0x00040005,0x000000e3, + 0x61726170,0x0000006d,0x00040005,0x000000e4,0x61726170,0x0000006d,0x00040005,0x000000e6, + 0x61726170,0x0000006d,0x00040005,0x000000e7,0x61726170,0x0000006d,0x00040005,0x000000f1, + 0x61726170,0x0000006d,0x00040005,0x000000f2,0x61726170,0x0000006d,0x00040005,0x000000f4, + 0x61726170,0x0000006d,0x00040005,0x000000f5,0x61726170,0x0000006d,0x00040005,0x00000100, + 0x61726170,0x0000006d,0x00040005,0x00000101,0x61726170,0x0000006d,0x00040005,0x00000103, + 0x61726170,0x0000006d,0x00040005,0x00000104,0x61726170,0x0000006d,0x00040005,0x0000010f, + 0x61726170,0x0000006d,0x00040005,0x00000110,0x61726170,0x0000006d,0x00040005,0x00000112, + 0x61726170,0x0000006d,0x00040005,0x00000113,0x61726170,0x0000006d,0x00040005,0x0000011e, + 0x61726170,0x0000006d,0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005,0x00000121, + 0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005,0x0000012c, + 0x61726170,0x0000006d,0x00040005,0x0000012d,0x61726170,0x0000006d,0x00040005,0x0000012f, + 0x61726170,0x0000006d,0x00040005,0x00000130,0x61726170,0x0000006d,0x00040005,0x0000013a, + 0x61726170,0x0000006d,0x00040005,0x0000013b,0x61726170,0x0000006d,0x00040005,0x0000013d, + 0x61726170,0x0000006d,0x00040005,0x0000013e,0x61726170,0x0000006d,0x00040005,0x00000148, + 0x61726170,0x0000006d,0x00040005,0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014b, + 0x61726170,0x0000006d,0x00040005,0x0000014c,0x61726170,0x0000006d,0x00040005,0x00000156, + 0x61726170,0x0000006d,0x00040005,0x00000157,0x61726170,0x0000006d,0x00040005,0x00000159, + 0x61726170,0x0000006d,0x00040005,0x0000015a,0x61726170,0x0000006d,0x00040005,0x00000164, + 0x61726170,0x0000006d,0x00040005,0x00000165,0x61726170,0x0000006d,0x00040005,0x00000167, + 0x61726170,0x0000006d,0x00040005,0x00000168,0x61726170,0x0000006d,0x00070005,0x0000017b, + 0x746c6966,0x64657265,0x74736948,0x6172676f,0x0000006d,0x00050005,0x0000019b,0x706d6574, + 0x66667542,0x00007265,0x000a0005,0x00000214,0x72727563,0x46746e65,0x65746c69,0x48646572, + 0x6f747369,0x6d617267,0x6c615673,0x00006575,0x00080005,0x00000218,0x76657270,0x73756f69, + 0x74736948,0x6172676f,0x6156736d,0x0065756c,0x00040005,0x00000219,0x61726170,0x0000006d, + 0x00050005,0x00000220,0x706d6574,0x66667542,0x00327265,0x00030005,0x00000291,0x006d7573, + 0x00050005,0x00000297,0x46736572,0x74616f6c,0x00000000,0x00040005,0x000002a2,0x55736572, + 0x00746e49,0x00040005,0x000002a9,0x61726170,0x0000006d,0x00040005,0x000002ac,0x61726170, + 0x0000006d,0x00080005,0x000002af,0x46646c6f,0x73696e69,0x47646568,0x70756f72,0x6e756f43, + 0x00000074,0x00040005,0x000002b0,0x61726170,0x0000006d,0x00040005,0x000002b1,0x61726170, + 0x0000006d,0x00040005,0x000002b8,0x30736572,0x00000000,0x00040005,0x000002b9,0x61726170, + 0x0000006d,0x00040005,0x000002bb,0x31736572,0x00000000,0x00040005,0x000002bc,0x61726170, + 0x0000006d,0x00040005,0x000002be,0x32736572,0x00000000,0x00040005,0x000002bf,0x61726170, + 0x0000006d,0x00070005,0x000002c1,0x6e656373,0x61684365,0x5665676e,0x65756c61,0x00000000, + 0x00040005,0x000002c2,0x61726170,0x0000006d,0x00040005,0x000002c4,0x61726170,0x0000006d, + 0x00040005,0x000002c7,0x61726170,0x0000006d,0x00040005,0x000002c9,0x61726170,0x0000006d, + 0x00040005,0x000002cd,0x74736968,0x0079726f,0x00040005,0x000002ce,0x61726170,0x0000006d, + 0x00040005,0x000002d1,0x61726170,0x0000006d,0x00040005,0x000002d8,0x61726170,0x0000006d, + 0x00040005,0x000002db,0x61726170,0x0000006d,0x00040005,0x000002dc,0x61726170,0x0000006d, + 0x00040005,0x000002de,0x61726170,0x0000006d,0x00040005,0x000002df,0x61726170,0x0000006d, + 0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005,0x000002e3,0x61726170,0x0000006d, + 0x00040005,0x000002eb,0x61726170,0x0000006d,0x00040005,0x000002ee,0x61726170,0x0000006d, + 0x00040005,0x000002f1,0x61726170,0x0000006d,0x00040005,0x000002f4,0x61726170,0x0000006d, + 0x00050005,0x000002f6,0x6f724769,0x69537075,0x0000657a,0x00080005,0x000002fb,0x475f6c67, + 0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00080005,0x000002fe,0x4c5f6c67, + 0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00080005,0x00000304,0x4c5f6c67, + 0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00060005,0x00000307,0x575f6c67, + 0x476b726f,0x70756f72,0x00004449,0x00040005,0x0000030b,0x61726170,0x0000006d,0x00040005, + 0x0000030c,0x61726170,0x0000006d,0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005, + 0x0000030e,0x61726170,0x0000006d,0x00040005,0x0000030f,0x61726170,0x0000006d,0x00040005, + 0x00000315,0x464f6263,0x0000745f,0x00090006,0x00000315,0x00000000,0x706e4969,0x754c7475, + 0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x00000315,0x00000001,0x74704f75, + 0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x00000315, + 0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43, + 0x00000074,0x00060006,0x00000315,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006, + 0x00000315,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e, + 0x00006e6f,0x00070006,0x00000315,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e, + 0x00040005,0x00000317,0x464f6263,0x00000000,0x00040047,0x00000070,0x00000021,0x00000000, + 0x00040047,0x00000070,0x00000022,0x00000000,0x00040047,0x00000082,0x00000021,0x00000001, + 0x00040047,0x00000082,0x00000022,0x00000000,0x00040047,0x00000091,0x00000021,0x00000002, + 0x00040047,0x00000091,0x00000022,0x00000000,0x00040047,0x000000a9,0x00000021,0x00000003, + 0x00040047,0x000000a9,0x00000022,0x00000000,0x00040047,0x000002fb,0x0000000b,0x0000001c, + 0x00040047,0x000002fe,0x0000000b,0x0000001b,0x00040047,0x00000304,0x0000000b,0x0000001d, + 0x00040047,0x00000307,0x0000000b,0x0000001a,0x00030047,0x00000315,0x00000002,0x00050048, + 0x00000315,0x00000000,0x00000023,0x00000000,0x00050048,0x00000315,0x00000001,0x00000023, + 0x00000008,0x00050048,0x00000315,0x00000002,0x00000023,0x0000000c,0x00050048,0x00000315, + 0x00000003,0x00000023,0x00000010,0x00050048,0x00000315,0x00000004,0x00000023,0x00000014, + 0x00050048,0x00000315,0x00000005,0x00000023,0x00000018,0x00040047,0x00000317,0x00000021, + 0x00000004,0x00040047,0x00000317,0x00000022,0x00000000,0x00040047,0x00000318,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, + 0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00040015,0x00000008,0x00000020, + 0x00000000,0x00040021,0x00000009,0x00000008,0x00000007,0x00040015,0x0000000d,0x00000020, + 0x00000001,0x00040020,0x0000000e,0x00000007,0x0000000d,0x00050021,0x0000000f,0x0000000d, + 0x0000000e,0x0000000e,0x00040020,0x00000014,0x00000007,0x00000008,0x00050021,0x00000015, + 0x00000008,0x00000014,0x00000014,0x00020014,0x0000001e,0x00040021,0x0000001f,0x0000001e, + 0x00000007,0x00040021,0x00000023,0x00000008,0x0000000e,0x00050021,0x00000027,0x00000002, + 0x0000000e,0x00000014,0x00040021,0x0000002c,0x00000006,0x0000000e,0x00050021,0x00000030, + 0x00000002,0x0000000e,0x00000007,0x00050021,0x00000045,0x00000008,0x0000000e,0x00000014, + 0x00040017,0x0000004a,0x0000000d,0x00000003,0x00040020,0x0000004b,0x00000007,0x0000004a, + 0x00040017,0x0000004c,0x0000000d,0x00000002,0x00040020,0x0000004d,0x00000007,0x0000004c, + 0x00080021,0x0000004e,0x00000002,0x0000004b,0x0000004d,0x0000000e,0x0000004d,0x0000004d, + 0x0004002b,0x00000006,0x0000006a,0x3ee66666,0x00090019,0x0000006e,0x00000008,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x0000006f,0x00000000, + 0x0000006e,0x0004003b,0x0000006f,0x00000070,0x00000000,0x0004002b,0x0000000d,0x00000073, + 0x00000000,0x00040017,0x00000075,0x00000008,0x00000004,0x0004002b,0x00000008,0x00000077, + 0x00000000,0x00090019,0x00000080,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000003,0x00040020,0x00000081,0x00000000,0x00000080,0x0004003b,0x00000081, + 0x00000082,0x00000000,0x00040017,0x00000086,0x00000006,0x00000004,0x0004002b,0x00000006, + 0x0000008f,0x00000000,0x0004003b,0x0000006f,0x00000091,0x00000000,0x00040020,0x0000009c, + 0x0000000b,0x00000008,0x0004002b,0x00000008,0x0000009e,0x00000001,0x0005002c,0x0000004c, + 0x000000a1,0x00000073,0x00000073,0x0007002c,0x00000075,0x000000a2,0x00000077,0x00000077, + 0x00000077,0x00000077,0x0004002b,0x0000000d,0x000000a4,0x00000001,0x0005002c,0x0000004c, + 0x000000a5,0x000000a4,0x00000073,0x0004002b,0x0000000d,0x000000a7,0x00000002,0x0005002c, + 0x0000004c,0x000000a8,0x000000a7,0x00000073,0x0004003b,0x0000006f,0x000000a9,0x00000000, + 0x0004002b,0x00000008,0x000000bd,0x00000100,0x0004001c,0x000000be,0x00000006,0x000000bd, + 0x00040020,0x000000bf,0x00000004,0x000000be,0x0004003b,0x000000bf,0x000000c0,0x00000004, + 0x00040020,0x000000c7,0x00000004,0x00000006,0x0004002b,0x00000008,0x000000c9,0x00000002, + 0x0004002b,0x00000008,0x000000ca,0x00000d48,0x0004002b,0x00000008,0x000000cb,0x00000108, + 0x0004002b,0x0000000d,0x000000ce,0xfffffffb,0x0004002b,0x00000006,0x000000d1,0x3c10612b, + 0x0004002b,0x0000000d,0x000000d2,0x000000ff,0x0004002b,0x00000006,0x000000e0,0x3cde5c35, + 0x0004002b,0x00000006,0x000000ee,0x3d855a85,0x0004002b,0x00000006,0x000000fc,0x3df92326, + 0x0004002b,0x0000000d,0x000000fe,0x00000003,0x0004002b,0x00000006,0x0000010b,0x3e353f0e, + 0x0004002b,0x0000000d,0x0000010d,0x00000004,0x0004002b,0x00000006,0x0000011a,0x3e4d6105, + 0x0004002b,0x0000000d,0x0000011c,0x00000005,0x0004002b,0x0000000d,0x0000012a,0x00000006, + 0x0004002b,0x0000000d,0x00000138,0x00000007,0x0004002b,0x0000000d,0x00000146,0x00000008, + 0x0004002b,0x0000000d,0x00000154,0x00000009,0x0004002b,0x0000000d,0x00000162,0x0000000a, + 0x0004002b,0x00000006,0x0000016f,0x3f800000,0x0004003b,0x000000bf,0x0000017b,0x00000004, + 0x0004003b,0x000000bf,0x0000019b,0x00000004,0x0004002b,0x0000000d,0x000001a2,0x00000080, + 0x0004002b,0x0000000d,0x000001b0,0x00000040,0x0004002b,0x0000000d,0x000001be,0x00000020, + 0x0004002b,0x0000000d,0x000001cc,0x00000010,0x00040017,0x0000021d,0x00000006,0x00000002, + 0x0004001c,0x0000021e,0x0000021d,0x000000bd,0x00040020,0x0000021f,0x00000004,0x0000021e, + 0x0004003b,0x0000021f,0x00000220,0x00000004,0x00040020,0x0000022f,0x00000004,0x0000021d, + 0x00040020,0x00000290,0x00000007,0x0000021d,0x0004002b,0x00000006,0x000002a4,0x41100000, + 0x0004002b,0x00000006,0x000002a6,0x49742400,0x0004002b,0x00000008,0x000002b4,0x0000001a, + 0x0004002b,0x0000000d,0x000002f7,0x00000100,0x0005002c,0x0000004c,0x000002f8,0x000002f7, + 0x000000a4,0x00040017,0x000002f9,0x00000008,0x00000003,0x00040020,0x000002fa,0x00000001, + 0x000002f9,0x0004003b,0x000002fa,0x000002fb,0x00000001,0x0004003b,0x000002fa,0x000002fe, + 0x00000001,0x00040017,0x000002ff,0x00000008,0x00000002,0x00040020,0x00000303,0x00000001, + 0x00000008,0x0004003b,0x00000303,0x00000304,0x00000001,0x0004003b,0x000002fa,0x00000307, + 0x00000001,0x0004002b,0x00000006,0x00000312,0x387fda40,0x0004002b,0x00000006,0x00000313, + 0x477fe000,0x0004002b,0x00000006,0x00000314,0x37801002,0x0008001e,0x00000315,0x0000004c, + 0x00000008,0x00000008,0x00000008,0x00000008,0x0000021d,0x00040020,0x00000316,0x00000002, + 0x00000315,0x0004003b,0x00000316,0x00000317,0x00000002,0x0006002c,0x000002f9,0x00000318, + 0x000000bd,0x0000009e,0x0000009e,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000004d,0x000002f6,0x00000007,0x0004003b,0x0000004b, + 0x0000030b,0x00000007,0x0004003b,0x0000004d,0x0000030c,0x00000007,0x0004003b,0x0000000e, + 0x0000030d,0x00000007,0x0004003b,0x0000004d,0x0000030e,0x00000007,0x0004003b,0x0000004d, + 0x0000030f,0x00000007,0x0003003e,0x000002f6,0x000002f8,0x0004003d,0x000002f9,0x000002fc, + 0x000002fb,0x0004007c,0x0000004a,0x000002fd,0x000002fc,0x0004003d,0x000002f9,0x00000300, + 0x000002fe,0x0007004f,0x000002ff,0x00000301,0x00000300,0x00000300,0x00000000,0x00000001, + 0x0004007c,0x0000004c,0x00000302,0x00000301,0x0004003d,0x00000008,0x00000305,0x00000304, + 0x0004007c,0x0000000d,0x00000306,0x00000305,0x0004003d,0x000002f9,0x00000308,0x00000307, + 0x0007004f,0x000002ff,0x00000309,0x00000308,0x00000308,0x00000000,0x00000001,0x0004007c, + 0x0000004c,0x0000030a,0x00000309,0x0003003e,0x0000030b,0x000002fd,0x0003003e,0x0000030c, + 0x00000302,0x0003003e,0x0000030d,0x00000306,0x0003003e,0x0000030e,0x0000030a,0x0004003d, + 0x0000004c,0x00000310,0x000002f6,0x0003003e,0x0000030f,0x00000310,0x00090039,0x00000002, + 0x00000311,0x00000054,0x0000030b,0x0000030c,0x0000030d,0x0000030e,0x0000030f,0x000100fd, + 0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007, + 0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000056,0x0000000a,0x0004007c, + 0x00000008,0x00000057,0x00000056,0x000200fe,0x00000057,0x00010038,0x00050036,0x0000000d, + 0x00000012,0x00000000,0x0000000f,0x00030037,0x0000000e,0x00000010,0x00030037,0x0000000e, + 0x00000011,0x000200f8,0x00000013,0x0004003d,0x0000000d,0x0000005a,0x00000010,0x0004003d, + 0x0000000d,0x0000005b,0x00000011,0x0007000c,0x0000000d,0x0000005c,0x00000001,0x00000027, + 0x0000005a,0x0000005b,0x000200fe,0x0000005c,0x00010038,0x00050036,0x00000008,0x00000018, + 0x00000000,0x00000015,0x00030037,0x00000014,0x00000016,0x00030037,0x00000014,0x00000017, + 0x000200f8,0x00000019,0x0004003d,0x00000008,0x0000005f,0x00000016,0x0004003d,0x00000008, + 0x00000060,0x00000017,0x0007000c,0x00000008,0x00000061,0x00000001,0x00000026,0x0000005f, + 0x00000060,0x000200fe,0x00000061,0x00010038,0x00050036,0x0000000d,0x0000001c,0x00000000, + 0x0000000f,0x00030037,0x0000000e,0x0000001a,0x00030037,0x0000000e,0x0000001b,0x000200f8, + 0x0000001d,0x0004003d,0x0000000d,0x00000064,0x0000001a,0x0004003d,0x0000000d,0x00000065, + 0x0000001b,0x0007000c,0x0000000d,0x00000066,0x00000001,0x0000002a,0x00000064,0x00000065, + 0x000200fe,0x00000066,0x00010038,0x00050036,0x0000001e,0x00000021,0x00000000,0x0000001f, + 0x00030037,0x00000007,0x00000020,0x000200f8,0x00000022,0x0004003d,0x00000006,0x00000069, + 0x00000020,0x000500ba,0x0000001e,0x0000006b,0x00000069,0x0000006a,0x000200fe,0x0000006b, + 0x00010038,0x00050036,0x00000008,0x00000025,0x00000000,0x00000023,0x00030037,0x0000000e, + 0x00000024,0x000200f8,0x00000026,0x0004003d,0x0000006e,0x00000071,0x00000070,0x0004003d, + 0x0000000d,0x00000072,0x00000024,0x00050050,0x0000004c,0x00000074,0x00000072,0x00000073, + 0x00050062,0x00000075,0x00000076,0x00000071,0x00000074,0x00050051,0x00000008,0x00000078, + 0x00000076,0x00000000,0x000200fe,0x00000078,0x00010038,0x00050036,0x00000002,0x0000002a, + 0x00000000,0x00000027,0x00030037,0x0000000e,0x00000028,0x00030037,0x00000014,0x00000029, + 0x000200f8,0x0000002b,0x0004003d,0x0000006e,0x0000007b,0x00000070,0x0004003d,0x0000000d, + 0x0000007c,0x00000028,0x00050050,0x0000004c,0x0000007d,0x0000007c,0x00000073,0x0004003d, + 0x00000008,0x0000007e,0x00000029,0x00070050,0x00000075,0x0000007f,0x0000007e,0x00000077, + 0x00000077,0x00000077,0x00040063,0x0000007b,0x0000007d,0x0000007f,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000002e,0x00000000,0x0000002c,0x00030037,0x0000000e,0x0000002d, + 0x000200f8,0x0000002f,0x0004003d,0x00000080,0x00000083,0x00000082,0x0004003d,0x0000000d, + 0x00000084,0x0000002d,0x00050050,0x0000004c,0x00000085,0x00000084,0x00000073,0x00050062, + 0x00000086,0x00000087,0x00000083,0x00000085,0x00050051,0x00000006,0x00000088,0x00000087, + 0x00000000,0x000200fe,0x00000088,0x00010038,0x00050036,0x00000002,0x00000033,0x00000000, + 0x00000030,0x00030037,0x0000000e,0x00000031,0x00030037,0x00000007,0x00000032,0x000200f8, + 0x00000034,0x0004003d,0x00000080,0x0000008b,0x00000082,0x0004003d,0x0000000d,0x0000008c, + 0x00000031,0x00050050,0x0000004c,0x0000008d,0x0000008c,0x00000073,0x0004003d,0x00000006, + 0x0000008e,0x00000032,0x00070050,0x00000086,0x00000090,0x0000008e,0x0000008f,0x0000008f, + 0x0000008f,0x00040063,0x0000008b,0x0000008d,0x00000090,0x000100fd,0x00010038,0x00050036, + 0x00000008,0x00000036,0x00000000,0x00000023,0x00030037,0x0000000e,0x00000035,0x000200f8, + 0x00000037,0x0004003d,0x0000006e,0x00000092,0x00000091,0x0004003d,0x0000000d,0x00000093, + 0x00000035,0x00050050,0x0000004c,0x00000094,0x00000093,0x00000073,0x00050062,0x00000075, + 0x00000095,0x00000092,0x00000094,0x00050051,0x00000008,0x00000096,0x00000095,0x00000000, + 0x000200fe,0x00000096,0x00010038,0x00050036,0x00000002,0x0000003a,0x00000000,0x00000027, + 0x00030037,0x0000000e,0x00000038,0x00030037,0x00000014,0x00000039,0x000200f8,0x0000003b, + 0x0004003d,0x0000000d,0x00000099,0x00000038,0x00050050,0x0000004c,0x0000009a,0x00000099, + 0x00000073,0x0004003d,0x00000008,0x0000009b,0x00000039,0x0006003c,0x0000009c,0x0000009d, + 0x00000091,0x0000009a,0x00000077,0x000700ea,0x00000008,0x0000009f,0x0000009d,0x0000009e, + 0x00000077,0x0000009b,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000003c,0x00000000, + 0x00000003,0x000200f8,0x0000003d,0x0004003d,0x0000006e,0x000000a0,0x00000091,0x00040063, + 0x000000a0,0x000000a1,0x000000a2,0x0004003d,0x0000006e,0x000000a3,0x00000091,0x00040063, + 0x000000a3,0x000000a5,0x000000a2,0x0004003d,0x0000006e,0x000000a6,0x00000091,0x00040063, + 0x000000a6,0x000000a8,0x000000a2,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000003f, + 0x00000000,0x00000023,0x00030037,0x0000000e,0x0000003e,0x000200f8,0x00000040,0x0004003d, + 0x0000006e,0x000000aa,0x000000a9,0x0004003d,0x0000000d,0x000000ab,0x0000003e,0x00050050, + 0x0000004c,0x000000ac,0x000000ab,0x00000073,0x00050062,0x00000075,0x000000ad,0x000000aa, + 0x000000ac,0x00050051,0x00000008,0x000000ae,0x000000ad,0x00000000,0x000200fe,0x000000ae, + 0x00010038,0x00050036,0x00000002,0x00000043,0x00000000,0x00000027,0x00030037,0x0000000e, + 0x00000041,0x00030037,0x00000014,0x00000042,0x000200f8,0x00000044,0x0004003d,0x0000006e, + 0x000000b1,0x000000a9,0x0004003d,0x0000000d,0x000000b2,0x00000041,0x00050050,0x0000004c, + 0x000000b3,0x000000b2,0x00000073,0x0004003d,0x00000008,0x000000b4,0x00000042,0x00070050, + 0x00000075,0x000000b5,0x000000b4,0x00000077,0x00000077,0x00000077,0x00040063,0x000000b1, + 0x000000b3,0x000000b5,0x000100fd,0x00010038,0x00050036,0x00000008,0x00000048,0x00000000, + 0x00000045,0x00030037,0x0000000e,0x00000046,0x00030037,0x00000014,0x00000047,0x000200f8, + 0x00000049,0x0004003d,0x0000000d,0x000000b6,0x00000046,0x00050050,0x0000004c,0x000000b7, + 0x000000b6,0x00000073,0x0004003d,0x00000008,0x000000b8,0x00000047,0x0006003c,0x0000009c, + 0x000000b9,0x000000a9,0x000000b7,0x00000077,0x000700ea,0x00000008,0x000000ba,0x000000b9, + 0x0000009e,0x00000077,0x000000b8,0x000200fe,0x000000ba,0x00010038,0x00050036,0x00000002, + 0x00000054,0x00000000,0x0000004e,0x00030037,0x0000004b,0x0000004f,0x00030037,0x0000004d, + 0x00000050,0x00030037,0x0000000e,0x00000051,0x00030037,0x0000004d,0x00000052,0x00030037, + 0x0000004d,0x00000053,0x000200f8,0x00000055,0x0004003b,0x0000000e,0x000000c2,0x00000007, + 0x0004003b,0x0000000e,0x000000cc,0x00000007,0x0004003b,0x00000007,0x000000d0,0x00000007, + 0x0004003b,0x0000000e,0x000000d5,0x00000007,0x0004003b,0x0000000e,0x000000d6,0x00000007, + 0x0004003b,0x0000000e,0x000000d8,0x00000007,0x0004003b,0x0000000e,0x000000d9,0x00000007, + 0x0004003b,0x0000000e,0x000000e3,0x00000007,0x0004003b,0x0000000e,0x000000e4,0x00000007, + 0x0004003b,0x0000000e,0x000000e6,0x00000007,0x0004003b,0x0000000e,0x000000e7,0x00000007, + 0x0004003b,0x0000000e,0x000000f1,0x00000007,0x0004003b,0x0000000e,0x000000f2,0x00000007, + 0x0004003b,0x0000000e,0x000000f4,0x00000007,0x0004003b,0x0000000e,0x000000f5,0x00000007, + 0x0004003b,0x0000000e,0x00000100,0x00000007,0x0004003b,0x0000000e,0x00000101,0x00000007, + 0x0004003b,0x0000000e,0x00000103,0x00000007,0x0004003b,0x0000000e,0x00000104,0x00000007, + 0x0004003b,0x0000000e,0x0000010f,0x00000007,0x0004003b,0x0000000e,0x00000110,0x00000007, + 0x0004003b,0x0000000e,0x00000112,0x00000007,0x0004003b,0x0000000e,0x00000113,0x00000007, + 0x0004003b,0x0000000e,0x0000011e,0x00000007,0x0004003b,0x0000000e,0x0000011f,0x00000007, + 0x0004003b,0x0000000e,0x00000121,0x00000007,0x0004003b,0x0000000e,0x00000122,0x00000007, + 0x0004003b,0x0000000e,0x0000012c,0x00000007,0x0004003b,0x0000000e,0x0000012d,0x00000007, + 0x0004003b,0x0000000e,0x0000012f,0x00000007,0x0004003b,0x0000000e,0x00000130,0x00000007, + 0x0004003b,0x0000000e,0x0000013a,0x00000007,0x0004003b,0x0000000e,0x0000013b,0x00000007, + 0x0004003b,0x0000000e,0x0000013d,0x00000007,0x0004003b,0x0000000e,0x0000013e,0x00000007, + 0x0004003b,0x0000000e,0x00000148,0x00000007,0x0004003b,0x0000000e,0x00000149,0x00000007, + 0x0004003b,0x0000000e,0x0000014b,0x00000007,0x0004003b,0x0000000e,0x0000014c,0x00000007, + 0x0004003b,0x0000000e,0x00000156,0x00000007,0x0004003b,0x0000000e,0x00000157,0x00000007, + 0x0004003b,0x0000000e,0x00000159,0x00000007,0x0004003b,0x0000000e,0x0000015a,0x00000007, + 0x0004003b,0x0000000e,0x00000164,0x00000007,0x0004003b,0x0000000e,0x00000165,0x00000007, + 0x0004003b,0x0000000e,0x00000167,0x00000007,0x0004003b,0x0000000e,0x00000168,0x00000007, + 0x0004003b,0x00000007,0x00000214,0x00000007,0x0004003b,0x00000007,0x00000218,0x00000007, + 0x0004003b,0x0000000e,0x00000219,0x00000007,0x0004003b,0x00000290,0x00000291,0x00000007, + 0x0004003b,0x00000007,0x00000297,0x00000007,0x0004003b,0x00000014,0x000002a2,0x00000007, + 0x0004003b,0x0000000e,0x000002a9,0x00000007,0x0004003b,0x00000014,0x000002ac,0x00000007, + 0x0004003b,0x00000014,0x000002af,0x00000007,0x0004003b,0x0000000e,0x000002b0,0x00000007, + 0x0004003b,0x00000014,0x000002b1,0x00000007,0x0004003b,0x00000014,0x000002b8,0x00000007, + 0x0004003b,0x0000000e,0x000002b9,0x00000007,0x0004003b,0x00000014,0x000002bb,0x00000007, + 0x0004003b,0x0000000e,0x000002bc,0x00000007,0x0004003b,0x00000014,0x000002be,0x00000007, + 0x0004003b,0x0000000e,0x000002bf,0x00000007,0x0004003b,0x00000007,0x000002c1,0x00000007, + 0x0004003b,0x00000014,0x000002c2,0x00000007,0x0004003b,0x00000014,0x000002c4,0x00000007, + 0x0004003b,0x00000014,0x000002c7,0x00000007,0x0004003b,0x00000014,0x000002c9,0x00000007, + 0x0004003b,0x00000014,0x000002cd,0x00000007,0x0004003b,0x0000000e,0x000002ce,0x00000007, + 0x0004003b,0x00000007,0x000002d1,0x00000007,0x0004003b,0x00000007,0x000002d8,0x00000007, + 0x0004003b,0x0000000e,0x000002db,0x00000007,0x0004003b,0x00000014,0x000002dc,0x00000007, + 0x0004003b,0x0000000e,0x000002de,0x00000007,0x0004003b,0x00000014,0x000002df,0x00000007, + 0x0004003b,0x0000000e,0x000002e2,0x00000007,0x0004003b,0x00000014,0x000002e3,0x00000007, + 0x0004003b,0x0000000e,0x000002eb,0x00000007,0x0004003b,0x00000007,0x000002ee,0x00000007, + 0x0004003b,0x0000000e,0x000002f1,0x00000007,0x0004003b,0x00000014,0x000002f4,0x00000007, + 0x0004003d,0x0000000d,0x000000c1,0x00000051,0x00050041,0x0000000e,0x000000c3,0x0000004f, + 0x00000077,0x0004003d,0x0000000d,0x000000c4,0x000000c3,0x0003003e,0x000000c2,0x000000c4, + 0x00050039,0x00000008,0x000000c5,0x00000025,0x000000c2,0x00040070,0x00000006,0x000000c6, + 0x000000c5,0x00050041,0x000000c7,0x000000c8,0x000000c0,0x000000c1,0x0003003e,0x000000c8, + 0x000000c6,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb, + 0x0004003d,0x0000000d,0x000000cd,0x00000051,0x00050080,0x0000000d,0x000000cf,0x000000cd, + 0x000000ce,0x0003003e,0x000000cc,0x000000cf,0x0003003e,0x000000d0,0x0000008f,0x0004003d, + 0x0000000d,0x000000d3,0x000000cc,0x00050080,0x0000000d,0x000000d4,0x000000d3,0x00000073, + 0x0003003e,0x000000d5,0x000000d2,0x0003003e,0x000000d6,0x000000d4,0x00060039,0x0000000d, + 0x000000d7,0x00000012,0x000000d5,0x000000d6,0x0003003e,0x000000d8,0x00000073,0x0003003e, + 0x000000d9,0x000000d7,0x00060039,0x0000000d,0x000000da,0x0000001c,0x000000d8,0x000000d9, + 0x00050041,0x000000c7,0x000000db,0x000000c0,0x000000da,0x0004003d,0x00000006,0x000000dc, + 0x000000db,0x00050085,0x00000006,0x000000dd,0x000000d1,0x000000dc,0x0004003d,0x00000006, + 0x000000de,0x000000d0,0x00050081,0x00000006,0x000000df,0x000000de,0x000000dd,0x0003003e, + 0x000000d0,0x000000df,0x0004003d,0x0000000d,0x000000e1,0x000000cc,0x00050080,0x0000000d, + 0x000000e2,0x000000e1,0x000000a4,0x0003003e,0x000000e3,0x000000d2,0x0003003e,0x000000e4, + 0x000000e2,0x00060039,0x0000000d,0x000000e5,0x00000012,0x000000e3,0x000000e4,0x0003003e, + 0x000000e6,0x00000073,0x0003003e,0x000000e7,0x000000e5,0x00060039,0x0000000d,0x000000e8, + 0x0000001c,0x000000e6,0x000000e7,0x00050041,0x000000c7,0x000000e9,0x000000c0,0x000000e8, + 0x0004003d,0x00000006,0x000000ea,0x000000e9,0x00050085,0x00000006,0x000000eb,0x000000e0, + 0x000000ea,0x0004003d,0x00000006,0x000000ec,0x000000d0,0x00050081,0x00000006,0x000000ed, + 0x000000ec,0x000000eb,0x0003003e,0x000000d0,0x000000ed,0x0004003d,0x0000000d,0x000000ef, + 0x000000cc,0x00050080,0x0000000d,0x000000f0,0x000000ef,0x000000a7,0x0003003e,0x000000f1, + 0x000000d2,0x0003003e,0x000000f2,0x000000f0,0x00060039,0x0000000d,0x000000f3,0x00000012, + 0x000000f1,0x000000f2,0x0003003e,0x000000f4,0x00000073,0x0003003e,0x000000f5,0x000000f3, + 0x00060039,0x0000000d,0x000000f6,0x0000001c,0x000000f4,0x000000f5,0x00050041,0x000000c7, + 0x000000f7,0x000000c0,0x000000f6,0x0004003d,0x00000006,0x000000f8,0x000000f7,0x00050085, + 0x00000006,0x000000f9,0x000000ee,0x000000f8,0x0004003d,0x00000006,0x000000fa,0x000000d0, + 0x00050081,0x00000006,0x000000fb,0x000000fa,0x000000f9,0x0003003e,0x000000d0,0x000000fb, + 0x0004003d,0x0000000d,0x000000fd,0x000000cc,0x00050080,0x0000000d,0x000000ff,0x000000fd, + 0x000000fe,0x0003003e,0x00000100,0x000000d2,0x0003003e,0x00000101,0x000000ff,0x00060039, + 0x0000000d,0x00000102,0x00000012,0x00000100,0x00000101,0x0003003e,0x00000103,0x00000073, + 0x0003003e,0x00000104,0x00000102,0x00060039,0x0000000d,0x00000105,0x0000001c,0x00000103, + 0x00000104,0x00050041,0x000000c7,0x00000106,0x000000c0,0x00000105,0x0004003d,0x00000006, + 0x00000107,0x00000106,0x00050085,0x00000006,0x00000108,0x000000fc,0x00000107,0x0004003d, + 0x00000006,0x00000109,0x000000d0,0x00050081,0x00000006,0x0000010a,0x00000109,0x00000108, + 0x0003003e,0x000000d0,0x0000010a,0x0004003d,0x0000000d,0x0000010c,0x000000cc,0x00050080, + 0x0000000d,0x0000010e,0x0000010c,0x0000010d,0x0003003e,0x0000010f,0x000000d2,0x0003003e, + 0x00000110,0x0000010e,0x00060039,0x0000000d,0x00000111,0x00000012,0x0000010f,0x00000110, + 0x0003003e,0x00000112,0x00000073,0x0003003e,0x00000113,0x00000111,0x00060039,0x0000000d, + 0x00000114,0x0000001c,0x00000112,0x00000113,0x00050041,0x000000c7,0x00000115,0x000000c0, + 0x00000114,0x0004003d,0x00000006,0x00000116,0x00000115,0x00050085,0x00000006,0x00000117, + 0x0000010b,0x00000116,0x0004003d,0x00000006,0x00000118,0x000000d0,0x00050081,0x00000006, + 0x00000119,0x00000118,0x00000117,0x0003003e,0x000000d0,0x00000119,0x0004003d,0x0000000d, + 0x0000011b,0x000000cc,0x00050080,0x0000000d,0x0000011d,0x0000011b,0x0000011c,0x0003003e, + 0x0000011e,0x000000d2,0x0003003e,0x0000011f,0x0000011d,0x00060039,0x0000000d,0x00000120, + 0x00000012,0x0000011e,0x0000011f,0x0003003e,0x00000121,0x00000073,0x0003003e,0x00000122, + 0x00000120,0x00060039,0x0000000d,0x00000123,0x0000001c,0x00000121,0x00000122,0x00050041, + 0x000000c7,0x00000124,0x000000c0,0x00000123,0x0004003d,0x00000006,0x00000125,0x00000124, + 0x00050085,0x00000006,0x00000126,0x0000011a,0x00000125,0x0004003d,0x00000006,0x00000127, + 0x000000d0,0x00050081,0x00000006,0x00000128,0x00000127,0x00000126,0x0003003e,0x000000d0, + 0x00000128,0x0004003d,0x0000000d,0x00000129,0x000000cc,0x00050080,0x0000000d,0x0000012b, + 0x00000129,0x0000012a,0x0003003e,0x0000012c,0x000000d2,0x0003003e,0x0000012d,0x0000012b, + 0x00060039,0x0000000d,0x0000012e,0x00000012,0x0000012c,0x0000012d,0x0003003e,0x0000012f, + 0x00000073,0x0003003e,0x00000130,0x0000012e,0x00060039,0x0000000d,0x00000131,0x0000001c, + 0x0000012f,0x00000130,0x00050041,0x000000c7,0x00000132,0x000000c0,0x00000131,0x0004003d, + 0x00000006,0x00000133,0x00000132,0x00050085,0x00000006,0x00000134,0x0000010b,0x00000133, + 0x0004003d,0x00000006,0x00000135,0x000000d0,0x00050081,0x00000006,0x00000136,0x00000135, + 0x00000134,0x0003003e,0x000000d0,0x00000136,0x0004003d,0x0000000d,0x00000137,0x000000cc, + 0x00050080,0x0000000d,0x00000139,0x00000137,0x00000138,0x0003003e,0x0000013a,0x000000d2, + 0x0003003e,0x0000013b,0x00000139,0x00060039,0x0000000d,0x0000013c,0x00000012,0x0000013a, + 0x0000013b,0x0003003e,0x0000013d,0x00000073,0x0003003e,0x0000013e,0x0000013c,0x00060039, + 0x0000000d,0x0000013f,0x0000001c,0x0000013d,0x0000013e,0x00050041,0x000000c7,0x00000140, + 0x000000c0,0x0000013f,0x0004003d,0x00000006,0x00000141,0x00000140,0x00050085,0x00000006, + 0x00000142,0x000000fc,0x00000141,0x0004003d,0x00000006,0x00000143,0x000000d0,0x00050081, + 0x00000006,0x00000144,0x00000143,0x00000142,0x0003003e,0x000000d0,0x00000144,0x0004003d, + 0x0000000d,0x00000145,0x000000cc,0x00050080,0x0000000d,0x00000147,0x00000145,0x00000146, + 0x0003003e,0x00000148,0x000000d2,0x0003003e,0x00000149,0x00000147,0x00060039,0x0000000d, + 0x0000014a,0x00000012,0x00000148,0x00000149,0x0003003e,0x0000014b,0x00000073,0x0003003e, + 0x0000014c,0x0000014a,0x00060039,0x0000000d,0x0000014d,0x0000001c,0x0000014b,0x0000014c, + 0x00050041,0x000000c7,0x0000014e,0x000000c0,0x0000014d,0x0004003d,0x00000006,0x0000014f, + 0x0000014e,0x00050085,0x00000006,0x00000150,0x000000ee,0x0000014f,0x0004003d,0x00000006, + 0x00000151,0x000000d0,0x00050081,0x00000006,0x00000152,0x00000151,0x00000150,0x0003003e, + 0x000000d0,0x00000152,0x0004003d,0x0000000d,0x00000153,0x000000cc,0x00050080,0x0000000d, + 0x00000155,0x00000153,0x00000154,0x0003003e,0x00000156,0x000000d2,0x0003003e,0x00000157, + 0x00000155,0x00060039,0x0000000d,0x00000158,0x00000012,0x00000156,0x00000157,0x0003003e, + 0x00000159,0x00000073,0x0003003e,0x0000015a,0x00000158,0x00060039,0x0000000d,0x0000015b, + 0x0000001c,0x00000159,0x0000015a,0x00050041,0x000000c7,0x0000015c,0x000000c0,0x0000015b, + 0x0004003d,0x00000006,0x0000015d,0x0000015c,0x00050085,0x00000006,0x0000015e,0x000000e0, + 0x0000015d,0x0004003d,0x00000006,0x0000015f,0x000000d0,0x00050081,0x00000006,0x00000160, + 0x0000015f,0x0000015e,0x0003003e,0x000000d0,0x00000160,0x0004003d,0x0000000d,0x00000161, + 0x000000cc,0x00050080,0x0000000d,0x00000163,0x00000161,0x00000162,0x0003003e,0x00000164, + 0x000000d2,0x0003003e,0x00000165,0x00000163,0x00060039,0x0000000d,0x00000166,0x00000012, + 0x00000164,0x00000165,0x0003003e,0x00000167,0x00000073,0x0003003e,0x00000168,0x00000166, + 0x00060039,0x0000000d,0x00000169,0x0000001c,0x00000167,0x00000168,0x00050041,0x000000c7, + 0x0000016a,0x000000c0,0x00000169,0x0004003d,0x00000006,0x0000016b,0x0000016a,0x00050085, + 0x00000006,0x0000016c,0x000000d1,0x0000016b,0x0004003d,0x00000006,0x0000016d,0x000000d0, + 0x00050081,0x00000006,0x0000016e,0x0000016d,0x0000016c,0x0003003e,0x000000d0,0x0000016e, + 0x0004003d,0x00000006,0x00000170,0x000000d0,0x00050081,0x00000006,0x00000171,0x00000170, + 0x0000016f,0x0003003e,0x000000d0,0x00000171,0x00050041,0x0000000e,0x00000172,0x0000004f, + 0x0000009e,0x0004003d,0x0000000d,0x00000173,0x00000172,0x000500aa,0x0000001e,0x00000174, + 0x00000173,0x00000073,0x000300f7,0x00000176,0x00000000,0x000400fa,0x00000174,0x00000175, + 0x00000182,0x000200f8,0x00000175,0x0004003d,0x0000000d,0x00000177,0x00000051,0x000500aa, + 0x0000001e,0x00000178,0x00000177,0x00000073,0x000300f7,0x0000017a,0x00000000,0x000400fa, + 0x00000178,0x00000179,0x0000017d,0x000200f8,0x00000179,0x00050041,0x000000c7,0x0000017c, + 0x0000017b,0x000000d2,0x0003003e,0x0000017c,0x0000016f,0x000200f9,0x0000017a,0x000200f8, + 0x0000017d,0x0004003d,0x0000000d,0x0000017e,0x00000051,0x00050082,0x0000000d,0x0000017f, + 0x0000017e,0x000000a4,0x0004003d,0x00000006,0x00000180,0x000000d0,0x00050041,0x000000c7, + 0x00000181,0x0000017b,0x0000017f,0x0003003e,0x00000181,0x00000180,0x000200f9,0x0000017a, + 0x000200f8,0x0000017a,0x000200f9,0x00000176,0x000200f8,0x00000182,0x00050041,0x0000000e, + 0x00000183,0x0000004f,0x0000009e,0x0004003d,0x0000000d,0x00000184,0x00000183,0x000500aa, + 0x0000001e,0x00000185,0x00000184,0x000000a4,0x000300f7,0x00000187,0x00000000,0x000400fa, + 0x00000185,0x00000186,0x0000018b,0x000200f8,0x00000186,0x0004003d,0x0000000d,0x00000188, + 0x00000051,0x0004003d,0x00000006,0x00000189,0x000000d0,0x00050041,0x000000c7,0x0000018a, + 0x0000017b,0x00000188,0x0003003e,0x0000018a,0x00000189,0x000200f9,0x00000187,0x000200f8, + 0x0000018b,0x00050041,0x0000000e,0x0000018c,0x0000004f,0x0000009e,0x0004003d,0x0000000d, + 0x0000018d,0x0000018c,0x000500aa,0x0000001e,0x0000018e,0x0000018d,0x000000a7,0x000300f7, + 0x00000190,0x00000000,0x000400fa,0x0000018e,0x0000018f,0x00000190,0x000200f8,0x0000018f, + 0x0004003d,0x0000000d,0x00000191,0x00000051,0x000500aa,0x0000001e,0x00000192,0x00000191, + 0x000000d2,0x000300f7,0x00000194,0x00000000,0x000400fa,0x00000192,0x00000193,0x00000196, + 0x000200f8,0x00000193,0x00050041,0x000000c7,0x00000195,0x0000017b,0x00000073,0x0003003e, + 0x00000195,0x0000016f,0x000200f9,0x00000194,0x000200f8,0x00000196,0x0004003d,0x0000000d, + 0x00000197,0x00000051,0x00050080,0x0000000d,0x00000198,0x00000197,0x000000a4,0x0004003d, + 0x00000006,0x00000199,0x000000d0,0x00050041,0x000000c7,0x0000019a,0x0000017b,0x00000198, + 0x0003003e,0x0000019a,0x00000199,0x000200f9,0x00000194,0x000200f8,0x00000194,0x000200f9, + 0x00000190,0x000200f8,0x00000190,0x000200f9,0x00000187,0x000200f8,0x00000187,0x000200f9, + 0x00000176,0x000200f8,0x00000176,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9, + 0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x0000019c,0x00000051,0x0004003d,0x0000000d, + 0x0000019d,0x00000051,0x00050041,0x000000c7,0x0000019e,0x0000017b,0x0000019d,0x0004003d, + 0x00000006,0x0000019f,0x0000019e,0x00050041,0x000000c7,0x000001a0,0x0000019b,0x0000019c, + 0x0003003e,0x000001a0,0x0000019f,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9, + 0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x000001a1,0x00000051,0x000500b1,0x0000001e, + 0x000001a3,0x000001a1,0x000001a2,0x000300f7,0x000001a5,0x00000000,0x000400fa,0x000001a3, + 0x000001a4,0x000001a5,0x000200f8,0x000001a4,0x0004003d,0x0000000d,0x000001a6,0x00000051, + 0x0004003d,0x0000000d,0x000001a7,0x00000051,0x00050080,0x0000000d,0x000001a8,0x000001a7, + 0x000001a2,0x00050041,0x000000c7,0x000001a9,0x0000019b,0x000001a8,0x0004003d,0x00000006, + 0x000001aa,0x000001a9,0x00050041,0x000000c7,0x000001ab,0x0000019b,0x000001a6,0x0004003d, + 0x00000006,0x000001ac,0x000001ab,0x00050081,0x00000006,0x000001ad,0x000001ac,0x000001aa, + 0x00050041,0x000000c7,0x000001ae,0x0000019b,0x000001a6,0x0003003e,0x000001ae,0x000001ad, + 0x000200f9,0x000001a5,0x000200f8,0x000001a5,0x000300e1,0x000000c9,0x000000ca,0x000400e0, + 0x000000c9,0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x000001af,0x00000051,0x000500b1, + 0x0000001e,0x000001b1,0x000001af,0x000001b0,0x000300f7,0x000001b3,0x00000000,0x000400fa, + 0x000001b1,0x000001b2,0x000001b3,0x000200f8,0x000001b2,0x0004003d,0x0000000d,0x000001b4, + 0x00000051,0x0004003d,0x0000000d,0x000001b5,0x00000051,0x00050080,0x0000000d,0x000001b6, + 0x000001b5,0x000001b0,0x00050041,0x000000c7,0x000001b7,0x0000019b,0x000001b6,0x0004003d, + 0x00000006,0x000001b8,0x000001b7,0x00050041,0x000000c7,0x000001b9,0x0000019b,0x000001b4, + 0x0004003d,0x00000006,0x000001ba,0x000001b9,0x00050081,0x00000006,0x000001bb,0x000001ba, + 0x000001b8,0x00050041,0x000000c7,0x000001bc,0x0000019b,0x000001b4,0x0003003e,0x000001bc, + 0x000001bb,0x000200f9,0x000001b3,0x000200f8,0x000001b3,0x000300e1,0x000000c9,0x000000ca, + 0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d,0x0000000d,0x000001bd,0x00000051, + 0x000500b1,0x0000001e,0x000001bf,0x000001bd,0x000001be,0x000300f7,0x000001c1,0x00000000, + 0x000400fa,0x000001bf,0x000001c0,0x000001c1,0x000200f8,0x000001c0,0x0004003d,0x0000000d, + 0x000001c2,0x00000051,0x0004003d,0x0000000d,0x000001c3,0x00000051,0x00050080,0x0000000d, + 0x000001c4,0x000001c3,0x000001be,0x00050041,0x000000c7,0x000001c5,0x0000019b,0x000001c4, + 0x0004003d,0x00000006,0x000001c6,0x000001c5,0x00050041,0x000000c7,0x000001c7,0x0000019b, + 0x000001c2,0x0004003d,0x00000006,0x000001c8,0x000001c7,0x00050081,0x00000006,0x000001c9, + 0x000001c8,0x000001c6,0x00050041,0x000000c7,0x000001ca,0x0000019b,0x000001c2,0x0003003e, + 0x000001ca,0x000001c9,0x000200f9,0x000001c1,0x000200f8,0x000001c1,0x0004003d,0x0000000d, + 0x000001cb,0x00000051,0x000500b1,0x0000001e,0x000001cd,0x000001cb,0x000001cc,0x000300f7, + 0x000001cf,0x00000000,0x000400fa,0x000001cd,0x000001ce,0x000001cf,0x000200f8,0x000001ce, + 0x0004003d,0x0000000d,0x000001d0,0x00000051,0x0004003d,0x0000000d,0x000001d1,0x00000051, + 0x00050080,0x0000000d,0x000001d2,0x000001d1,0x000001cc,0x00050041,0x000000c7,0x000001d3, + 0x0000019b,0x000001d2,0x0004003d,0x00000006,0x000001d4,0x000001d3,0x00050041,0x000000c7, + 0x000001d5,0x0000019b,0x000001d0,0x0004003d,0x00000006,0x000001d6,0x000001d5,0x00050081, + 0x00000006,0x000001d7,0x000001d6,0x000001d4,0x00050041,0x000000c7,0x000001d8,0x0000019b, + 0x000001d0,0x0003003e,0x000001d8,0x000001d7,0x000200f9,0x000001cf,0x000200f8,0x000001cf, + 0x0004003d,0x0000000d,0x000001d9,0x00000051,0x000500b1,0x0000001e,0x000001da,0x000001d9, + 0x00000146,0x000300f7,0x000001dc,0x00000000,0x000400fa,0x000001da,0x000001db,0x000001dc, + 0x000200f8,0x000001db,0x0004003d,0x0000000d,0x000001dd,0x00000051,0x0004003d,0x0000000d, + 0x000001de,0x00000051,0x00050080,0x0000000d,0x000001df,0x000001de,0x00000146,0x00050041, + 0x000000c7,0x000001e0,0x0000019b,0x000001df,0x0004003d,0x00000006,0x000001e1,0x000001e0, + 0x00050041,0x000000c7,0x000001e2,0x0000019b,0x000001dd,0x0004003d,0x00000006,0x000001e3, + 0x000001e2,0x00050081,0x00000006,0x000001e4,0x000001e3,0x000001e1,0x00050041,0x000000c7, + 0x000001e5,0x0000019b,0x000001dd,0x0003003e,0x000001e5,0x000001e4,0x000200f9,0x000001dc, + 0x000200f8,0x000001dc,0x0004003d,0x0000000d,0x000001e6,0x00000051,0x000500b1,0x0000001e, + 0x000001e7,0x000001e6,0x0000010d,0x000300f7,0x000001e9,0x00000000,0x000400fa,0x000001e7, + 0x000001e8,0x000001e9,0x000200f8,0x000001e8,0x0004003d,0x0000000d,0x000001ea,0x00000051, + 0x0004003d,0x0000000d,0x000001eb,0x00000051,0x00050080,0x0000000d,0x000001ec,0x000001eb, + 0x0000010d,0x00050041,0x000000c7,0x000001ed,0x0000019b,0x000001ec,0x0004003d,0x00000006, + 0x000001ee,0x000001ed,0x00050041,0x000000c7,0x000001ef,0x0000019b,0x000001ea,0x0004003d, + 0x00000006,0x000001f0,0x000001ef,0x00050081,0x00000006,0x000001f1,0x000001f0,0x000001ee, + 0x00050041,0x000000c7,0x000001f2,0x0000019b,0x000001ea,0x0003003e,0x000001f2,0x000001f1, + 0x000200f9,0x000001e9,0x000200f8,0x000001e9,0x0004003d,0x0000000d,0x000001f3,0x00000051, + 0x000500b1,0x0000001e,0x000001f4,0x000001f3,0x000000a7,0x000300f7,0x000001f6,0x00000000, + 0x000400fa,0x000001f4,0x000001f5,0x000001f6,0x000200f8,0x000001f5,0x0004003d,0x0000000d, + 0x000001f7,0x00000051,0x0004003d,0x0000000d,0x000001f8,0x00000051,0x00050080,0x0000000d, + 0x000001f9,0x000001f8,0x000000a7,0x00050041,0x000000c7,0x000001fa,0x0000019b,0x000001f9, + 0x0004003d,0x00000006,0x000001fb,0x000001fa,0x00050041,0x000000c7,0x000001fc,0x0000019b, + 0x000001f7,0x0004003d,0x00000006,0x000001fd,0x000001fc,0x00050081,0x00000006,0x000001fe, + 0x000001fd,0x000001fb,0x00050041,0x000000c7,0x000001ff,0x0000019b,0x000001f7,0x0003003e, + 0x000001ff,0x000001fe,0x000200f9,0x000001f6,0x000200f8,0x000001f6,0x0004003d,0x0000000d, + 0x00000200,0x00000051,0x000500b1,0x0000001e,0x00000201,0x00000200,0x000000a4,0x000300f7, + 0x00000203,0x00000000,0x000400fa,0x00000201,0x00000202,0x00000203,0x000200f8,0x00000202, + 0x0004003d,0x0000000d,0x00000204,0x00000051,0x0004003d,0x0000000d,0x00000205,0x00000051, + 0x00050080,0x0000000d,0x00000206,0x00000205,0x000000a4,0x00050041,0x000000c7,0x00000207, + 0x0000019b,0x00000206,0x0004003d,0x00000006,0x00000208,0x00000207,0x00050041,0x000000c7, + 0x00000209,0x0000019b,0x00000204,0x0004003d,0x00000006,0x0000020a,0x00000209,0x00050081, + 0x00000006,0x0000020b,0x0000020a,0x00000208,0x00050041,0x000000c7,0x0000020c,0x0000019b, + 0x00000204,0x0003003e,0x0000020c,0x0000020b,0x000200f9,0x00000203,0x000200f8,0x00000203, + 0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d, + 0x0000000d,0x0000020d,0x00000051,0x00050041,0x000000c7,0x0000020e,0x0000019b,0x00000073, + 0x0004003d,0x00000006,0x0000020f,0x0000020e,0x00050041,0x000000c7,0x00000210,0x0000017b, + 0x0000020d,0x0004003d,0x00000006,0x00000211,0x00000210,0x00050088,0x00000006,0x00000212, + 0x00000211,0x0000020f,0x00050041,0x000000c7,0x00000213,0x0000017b,0x0000020d,0x0003003e, + 0x00000213,0x00000212,0x0004003d,0x0000000d,0x00000215,0x00000051,0x00050041,0x000000c7, + 0x00000216,0x0000017b,0x00000215,0x0004003d,0x00000006,0x00000217,0x00000216,0x0003003e, + 0x00000214,0x00000217,0x00050041,0x0000000e,0x0000021a,0x0000004f,0x00000077,0x0004003d, + 0x0000000d,0x0000021b,0x0000021a,0x0003003e,0x00000219,0x0000021b,0x00050039,0x00000006, + 0x0000021c,0x0000002e,0x00000219,0x0003003e,0x00000218,0x0000021c,0x0004003d,0x0000000d, + 0x00000221,0x00000051,0x0004003d,0x00000006,0x00000222,0x00000214,0x0004003d,0x00000006, + 0x00000223,0x00000214,0x0004003d,0x00000006,0x00000224,0x00000218,0x00050088,0x00000006, + 0x00000225,0x00000223,0x00000224,0x0006000c,0x00000006,0x00000226,0x00000001,0x0000001c, + 0x00000225,0x00050085,0x00000006,0x00000227,0x00000222,0x00000226,0x0004003d,0x00000006, + 0x00000228,0x00000218,0x0004003d,0x00000006,0x00000229,0x00000218,0x0004003d,0x00000006, + 0x0000022a,0x00000214,0x00050088,0x00000006,0x0000022b,0x00000229,0x0000022a,0x0006000c, + 0x00000006,0x0000022c,0x00000001,0x0000001c,0x0000022b,0x00050085,0x00000006,0x0000022d, + 0x00000228,0x0000022c,0x00050050,0x0000021d,0x0000022e,0x00000227,0x0000022d,0x00050041, + 0x0000022f,0x00000230,0x00000220,0x00000221,0x0003003e,0x00000230,0x0000022e,0x000300e1, + 0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d,0x0000000d, + 0x00000231,0x00000051,0x000500b1,0x0000001e,0x00000232,0x00000231,0x000001a2,0x000300f7, + 0x00000234,0x00000000,0x000400fa,0x00000232,0x00000233,0x00000234,0x000200f8,0x00000233, + 0x0004003d,0x0000000d,0x00000235,0x00000051,0x0004003d,0x0000000d,0x00000236,0x00000051, + 0x00050080,0x0000000d,0x00000237,0x00000236,0x000001a2,0x00050041,0x0000022f,0x00000238, + 0x00000220,0x00000237,0x0004003d,0x0000021d,0x00000239,0x00000238,0x00050041,0x0000022f, + 0x0000023a,0x00000220,0x00000235,0x0004003d,0x0000021d,0x0000023b,0x0000023a,0x00050081, + 0x0000021d,0x0000023c,0x0000023b,0x00000239,0x00050041,0x0000022f,0x0000023d,0x00000220, + 0x00000235,0x0003003e,0x0000023d,0x0000023c,0x000200f9,0x00000234,0x000200f8,0x00000234, + 0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb,0x0004003d, + 0x0000000d,0x0000023e,0x00000051,0x000500b1,0x0000001e,0x0000023f,0x0000023e,0x000001b0, + 0x000300f7,0x00000241,0x00000000,0x000400fa,0x0000023f,0x00000240,0x00000241,0x000200f8, + 0x00000240,0x0004003d,0x0000000d,0x00000242,0x00000051,0x0004003d,0x0000000d,0x00000243, + 0x00000051,0x00050080,0x0000000d,0x00000244,0x00000243,0x000001b0,0x00050041,0x0000022f, + 0x00000245,0x00000220,0x00000244,0x0004003d,0x0000021d,0x00000246,0x00000245,0x00050041, + 0x0000022f,0x00000247,0x00000220,0x00000242,0x0004003d,0x0000021d,0x00000248,0x00000247, + 0x00050081,0x0000021d,0x00000249,0x00000248,0x00000246,0x00050041,0x0000022f,0x0000024a, + 0x00000220,0x00000242,0x0003003e,0x0000024a,0x00000249,0x000200f9,0x00000241,0x000200f8, + 0x00000241,0x000300e1,0x000000c9,0x000000ca,0x000400e0,0x000000c9,0x000000c9,0x000000cb, + 0x0004003d,0x0000000d,0x0000024b,0x00000051,0x000500b1,0x0000001e,0x0000024c,0x0000024b, + 0x000001be,0x000300f7,0x0000024e,0x00000000,0x000400fa,0x0000024c,0x0000024d,0x0000024e, + 0x000200f8,0x0000024d,0x0004003d,0x0000000d,0x0000024f,0x00000051,0x0004003d,0x0000000d, + 0x00000250,0x00000051,0x00050080,0x0000000d,0x00000251,0x00000250,0x000001be,0x00050041, + 0x0000022f,0x00000252,0x00000220,0x00000251,0x0004003d,0x0000021d,0x00000253,0x00000252, + 0x00050041,0x0000022f,0x00000254,0x00000220,0x0000024f,0x0004003d,0x0000021d,0x00000255, + 0x00000254,0x00050081,0x0000021d,0x00000256,0x00000255,0x00000253,0x00050041,0x0000022f, + 0x00000257,0x00000220,0x0000024f,0x0003003e,0x00000257,0x00000256,0x000200f9,0x0000024e, + 0x000200f8,0x0000024e,0x0004003d,0x0000000d,0x00000258,0x00000051,0x000500b1,0x0000001e, + 0x00000259,0x00000258,0x000001cc,0x000300f7,0x0000025b,0x00000000,0x000400fa,0x00000259, + 0x0000025a,0x0000025b,0x000200f8,0x0000025a,0x0004003d,0x0000000d,0x0000025c,0x00000051, + 0x0004003d,0x0000000d,0x0000025d,0x00000051,0x00050080,0x0000000d,0x0000025e,0x0000025d, + 0x000001cc,0x00050041,0x0000022f,0x0000025f,0x00000220,0x0000025e,0x0004003d,0x0000021d, + 0x00000260,0x0000025f,0x00050041,0x0000022f,0x00000261,0x00000220,0x0000025c,0x0004003d, + 0x0000021d,0x00000262,0x00000261,0x00050081,0x0000021d,0x00000263,0x00000262,0x00000260, + 0x00050041,0x0000022f,0x00000264,0x00000220,0x0000025c,0x0003003e,0x00000264,0x00000263, + 0x000200f9,0x0000025b,0x000200f8,0x0000025b,0x0004003d,0x0000000d,0x00000265,0x00000051, + 0x000500b1,0x0000001e,0x00000266,0x00000265,0x00000146,0x000300f7,0x00000268,0x00000000, + 0x000400fa,0x00000266,0x00000267,0x00000268,0x000200f8,0x00000267,0x0004003d,0x0000000d, + 0x00000269,0x00000051,0x0004003d,0x0000000d,0x0000026a,0x00000051,0x00050080,0x0000000d, + 0x0000026b,0x0000026a,0x00000146,0x00050041,0x0000022f,0x0000026c,0x00000220,0x0000026b, + 0x0004003d,0x0000021d,0x0000026d,0x0000026c,0x00050041,0x0000022f,0x0000026e,0x00000220, + 0x00000269,0x0004003d,0x0000021d,0x0000026f,0x0000026e,0x00050081,0x0000021d,0x00000270, + 0x0000026f,0x0000026d,0x00050041,0x0000022f,0x00000271,0x00000220,0x00000269,0x0003003e, + 0x00000271,0x00000270,0x000200f9,0x00000268,0x000200f8,0x00000268,0x0004003d,0x0000000d, + 0x00000272,0x00000051,0x000500b1,0x0000001e,0x00000273,0x00000272,0x0000010d,0x000300f7, + 0x00000275,0x00000000,0x000400fa,0x00000273,0x00000274,0x00000275,0x000200f8,0x00000274, + 0x0004003d,0x0000000d,0x00000276,0x00000051,0x0004003d,0x0000000d,0x00000277,0x00000051, + 0x00050080,0x0000000d,0x00000278,0x00000277,0x0000010d,0x00050041,0x0000022f,0x00000279, + 0x00000220,0x00000278,0x0004003d,0x0000021d,0x0000027a,0x00000279,0x00050041,0x0000022f, + 0x0000027b,0x00000220,0x00000276,0x0004003d,0x0000021d,0x0000027c,0x0000027b,0x00050081, + 0x0000021d,0x0000027d,0x0000027c,0x0000027a,0x00050041,0x0000022f,0x0000027e,0x00000220, + 0x00000276,0x0003003e,0x0000027e,0x0000027d,0x000200f9,0x00000275,0x000200f8,0x00000275, + 0x0004003d,0x0000000d,0x0000027f,0x00000051,0x000500b1,0x0000001e,0x00000280,0x0000027f, + 0x000000a7,0x000300f7,0x00000282,0x00000000,0x000400fa,0x00000280,0x00000281,0x00000282, + 0x000200f8,0x00000281,0x0004003d,0x0000000d,0x00000283,0x00000051,0x0004003d,0x0000000d, + 0x00000284,0x00000051,0x00050080,0x0000000d,0x00000285,0x00000284,0x000000a7,0x00050041, + 0x0000022f,0x00000286,0x00000220,0x00000285,0x0004003d,0x0000021d,0x00000287,0x00000286, + 0x00050041,0x0000022f,0x00000288,0x00000220,0x00000283,0x0004003d,0x0000021d,0x00000289, + 0x00000288,0x00050081,0x0000021d,0x0000028a,0x00000289,0x00000287,0x00050041,0x0000022f, + 0x0000028b,0x00000220,0x00000283,0x0003003e,0x0000028b,0x0000028a,0x000200f9,0x00000282, + 0x000200f8,0x00000282,0x0004003d,0x0000000d,0x0000028c,0x00000051,0x000500aa,0x0000001e, + 0x0000028d,0x0000028c,0x00000073,0x000300f7,0x0000028f,0x00000000,0x000400fa,0x0000028d, + 0x0000028e,0x0000028f,0x000200f8,0x0000028e,0x00050041,0x0000022f,0x00000292,0x00000220, + 0x00000073,0x0004003d,0x0000021d,0x00000293,0x00000292,0x00050041,0x0000022f,0x00000294, + 0x00000220,0x000000a4,0x0004003d,0x0000021d,0x00000295,0x00000294,0x00050081,0x0000021d, + 0x00000296,0x00000293,0x00000295,0x0003003e,0x00000291,0x00000296,0x00050041,0x00000007, + 0x00000298,0x00000291,0x00000077,0x0004003d,0x00000006,0x00000299,0x00000298,0x0006000c, + 0x00000006,0x0000029a,0x00000001,0x00000004,0x00000299,0x00050041,0x00000007,0x0000029b, + 0x00000291,0x0000009e,0x0004003d,0x00000006,0x0000029c,0x0000029b,0x0006000c,0x00000006, + 0x0000029d,0x00000001,0x00000004,0x0000029c,0x00050081,0x00000006,0x0000029e,0x0000029a, + 0x0000029d,0x0004007f,0x00000006,0x0000029f,0x0000029e,0x0006000c,0x00000006,0x000002a0, + 0x00000001,0x0000001b,0x0000029f,0x00050083,0x00000006,0x000002a1,0x0000016f,0x000002a0, + 0x0003003e,0x00000297,0x000002a1,0x0004003d,0x00000006,0x000002a3,0x00000297,0x00050088, + 0x00000006,0x000002a5,0x000002a3,0x000002a4,0x00050085,0x00000006,0x000002a7,0x000002a5, + 0x000002a6,0x0004006d,0x00000008,0x000002a8,0x000002a7,0x0003003e,0x000002a2,0x000002a8, + 0x00050041,0x0000000e,0x000002aa,0x0000004f,0x0000009e,0x0004003d,0x0000000d,0x000002ab, + 0x000002aa,0x0003003e,0x000002a9,0x000002ab,0x0004003d,0x00000008,0x000002ad,0x000002a2, + 0x0003003e,0x000002ac,0x000002ad,0x00060039,0x00000002,0x000002ae,0x0000003a,0x000002a9, + 0x000002ac,0x0003003e,0x000002b0,0x000000a7,0x0003003e,0x000002b1,0x0000009e,0x00060039, + 0x00000008,0x000002b2,0x00000048,0x000002b0,0x000002b1,0x0003003e,0x000002af,0x000002b2, + 0x0004003d,0x00000008,0x000002b3,0x000002af,0x000500aa,0x0000001e,0x000002b5,0x000002b3, + 0x000002b4,0x000300f7,0x000002b7,0x00000000,0x000400fa,0x000002b5,0x000002b6,0x000002b7, + 0x000200f8,0x000002b6,0x0003003e,0x000002b9,0x00000073,0x00050039,0x00000008,0x000002ba, + 0x00000036,0x000002b9,0x0003003e,0x000002b8,0x000002ba,0x0003003e,0x000002bc,0x000000a4, + 0x00050039,0x00000008,0x000002bd,0x00000036,0x000002bc,0x0003003e,0x000002bb,0x000002bd, + 0x0003003e,0x000002bf,0x000000a7,0x00050039,0x00000008,0x000002c0,0x00000036,0x000002bf, + 0x0003003e,0x000002be,0x000002c0,0x0004003d,0x00000008,0x000002c3,0x000002bb,0x0003003e, + 0x000002c2,0x000002c3,0x0004003d,0x00000008,0x000002c5,0x000002be,0x0003003e,0x000002c4, + 0x000002c5,0x00060039,0x00000008,0x000002c6,0x00000018,0x000002c2,0x000002c4,0x0004003d, + 0x00000008,0x000002c8,0x000002b8,0x0003003e,0x000002c7,0x000002c8,0x0003003e,0x000002c9, + 0x000002c6,0x00060039,0x00000008,0x000002ca,0x00000018,0x000002c7,0x000002c9,0x00040070, + 0x00000006,0x000002cb,0x000002ca,0x00050088,0x00000006,0x000002cc,0x000002cb,0x000002a6, + 0x0003003e,0x000002c1,0x000002cc,0x0003003e,0x000002ce,0x000000a4,0x00050039,0x00000008, + 0x000002cf,0x0000003f,0x000002ce,0x000500c4,0x00000008,0x000002d0,0x000002cf,0x000000a4, + 0x0003003e,0x000002cd,0x000002d0,0x0004003d,0x00000006,0x000002d2,0x000002c1,0x0003003e, + 0x000002d1,0x000002d2,0x00050039,0x0000001e,0x000002d3,0x00000021,0x000002d1,0x000300f7, + 0x000002d5,0x00000000,0x000400fa,0x000002d3,0x000002d4,0x000002d5,0x000200f8,0x000002d4, + 0x0004003d,0x00000008,0x000002d6,0x000002cd,0x000500c5,0x00000008,0x000002d7,0x000002d6, + 0x0000009e,0x0003003e,0x000002cd,0x000002d7,0x000200f9,0x000002d5,0x000200f8,0x000002d5, + 0x0004003d,0x00000006,0x000002d9,0x000002c1,0x0003003e,0x000002d8,0x000002d9,0x00050039, + 0x00000008,0x000002da,0x0000000b,0x000002d8,0x0003003e,0x000002db,0x00000073,0x0003003e, + 0x000002dc,0x000002da,0x00060039,0x00000002,0x000002dd,0x00000043,0x000002db,0x000002dc, + 0x0003003e,0x000002de,0x000000a4,0x0004003d,0x00000008,0x000002e0,0x000002cd,0x0003003e, + 0x000002df,0x000002e0,0x00060039,0x00000002,0x000002e1,0x00000043,0x000002de,0x000002df, + 0x0003003e,0x000002e2,0x000000a7,0x0003003e,0x000002e3,0x00000077,0x00060039,0x00000002, + 0x000002e4,0x00000043,0x000002e2,0x000002e3,0x00040039,0x00000002,0x000002e5,0x0000003c, + 0x000200f9,0x000002b7,0x000200f8,0x000002b7,0x000200f9,0x0000028f,0x000200f8,0x0000028f, + 0x00050041,0x0000000e,0x000002e6,0x0000004f,0x0000009e,0x0004003d,0x0000000d,0x000002e7, + 0x000002e6,0x000500aa,0x0000001e,0x000002e8,0x000002e7,0x000000a4,0x000300f7,0x000002ea, + 0x00000000,0x000400fa,0x000002e8,0x000002e9,0x000002ea,0x000200f8,0x000002e9,0x00050041, + 0x0000000e,0x000002ec,0x0000004f,0x00000077,0x0004003d,0x0000000d,0x000002ed,0x000002ec, + 0x0003003e,0x000002eb,0x000002ed,0x0004003d,0x00000006,0x000002ef,0x00000214,0x0003003e, + 0x000002ee,0x000002ef,0x00060039,0x00000002,0x000002f0,0x00000033,0x000002eb,0x000002ee, + 0x00050041,0x0000000e,0x000002f2,0x0000004f,0x00000077,0x0004003d,0x0000000d,0x000002f3, + 0x000002f2,0x0003003e,0x000002f1,0x000002f3,0x0003003e,0x000002f4,0x00000077,0x00060039, + 0x00000002,0x000002f5,0x0000002a,0x000002f1,0x000002f4,0x000200f9,0x000002ea,0x000200f8, + 0x000002ea,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h b/gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h new file mode 100644 index 000000000..5710a94f5 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h @@ -0,0 +1,167 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_FILTER_OPTICAL_FLOW_V5_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000000bf,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0009000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000009e, + 0x000000a3,0x000000a7,0x000000ac,0x00060010,0x00000004,0x00000011,0x00000010,0x00000004, + 0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61, + 0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004, + 0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d, + 0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79, + 0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45, + 0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000, + 0x000a0005,0x0000000b,0x64616f4c,0x76657250,0x73756f69,0x6974704f,0x466c6163,0x28776f6c, + 0x3b326976,0x00000000,0x00040005,0x0000000a,0x50785069,0x0000736f,0x00090005,0x00000010, + 0x726f7453,0x74704f65,0x6c616369,0x776f6c46,0x32697628,0x3269763b,0x0000003b,0x00040005, + 0x0000000e,0x50785069,0x0000736f,0x00060005,0x0000000f,0x69746f6d,0x65566e6f,0x726f7463, + 0x00000000,0x000b0005,0x00000018,0x746c6946,0x704f7265,0x61636974,0x6f6c466c,0x69762877, + 0x69763b32,0x69763b32,0x31693b32,0x0000003b,0x00050005,0x00000014,0x6f6c4769,0x496c6162, + 0x00000064,0x00050005,0x00000015,0x636f4c69,0x64496c61,0x00000000,0x00050005,0x00000016, + 0x6f724769,0x64497075,0x00000000,0x00050005,0x00000017,0x636f4c69,0x6e496c61,0x00786564, + 0x00080005,0x0000001c,0x706f5f72,0x61636974,0x6c665f6c,0x705f776f,0x69766572,0x0073756f, + 0x00060005,0x00000027,0x6f5f7772,0x63697470,0x665f6c61,0x00776f6c,0x00030005,0x0000002e, + 0x00786469,0x00030005,0x0000002f,0x00007878,0x00030005,0x0000003a,0x00007979,0x00040005, + 0x00000046,0x4d706d74,0x00000056,0x00040005,0x0000004d,0x61726170,0x0000006d,0x00030005, + 0x00000058,0x00746572,0x00030005,0x0000005a,0x00000069,0x00030005,0x00000063,0x00706d74, + 0x00030005,0x00000065,0x0000006a,0x00040005,0x0000006d,0x746c6564,0x00000061,0x00040005, + 0x00000091,0x496e696d,0x00007864,0x00040005,0x00000096,0x61726170,0x0000006d,0x00040005, + 0x00000098,0x61726170,0x0000006d,0x00080005,0x0000009e,0x475f6c67,0x61626f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x00000044,0x00080005,0x000000a3,0x4c5f6c67,0x6c61636f,0x6f766e49, + 0x69746163,0x44496e6f,0x00000000,0x00060005,0x000000a7,0x575f6c67,0x476b726f,0x70756f72, + 0x00004449,0x00080005,0x000000ac,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f, + 0x00786564,0x00040005,0x000000af,0x61726170,0x0000006d,0x00040005,0x000000b0,0x61726170, + 0x0000006d,0x00040005,0x000000b1,0x61726170,0x0000006d,0x00040005,0x000000b2,0x61726170, + 0x0000006d,0x00040005,0x000000b9,0x464f6263,0x0000745f,0x00090006,0x000000b9,0x00000000, + 0x706e4969,0x754c7475,0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x000000b9, + 0x00000001,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000, + 0x000b0006,0x000000b9,0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d, + 0x6c657665,0x6e756f43,0x00000074,0x00060006,0x000000b9,0x00000003,0x61724669,0x6e49656d, + 0x00786564,0x000a0006,0x000000b9,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000000b9,0x00000005,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00040005,0x000000bb,0x464f6263,0x00000000,0x00040047,0x0000001c, + 0x00000021,0x00000000,0x00040047,0x0000001c,0x00000022,0x00000000,0x00040047,0x00000027, + 0x00000021,0x00000001,0x00040047,0x00000027,0x00000022,0x00000000,0x00040047,0x0000009e, + 0x0000000b,0x0000001c,0x00040047,0x000000a3,0x0000000b,0x0000001b,0x00040047,0x000000a7, + 0x0000000b,0x0000001a,0x00040047,0x000000ac,0x0000000b,0x0000001d,0x00030047,0x000000b9, + 0x00000002,0x00050048,0x000000b9,0x00000000,0x00000023,0x00000000,0x00050048,0x000000b9, + 0x00000001,0x00000023,0x00000008,0x00050048,0x000000b9,0x00000002,0x00000023,0x0000000c, + 0x00050048,0x000000b9,0x00000003,0x00000023,0x00000010,0x00050048,0x000000b9,0x00000004, + 0x00000023,0x00000014,0x00050048,0x000000b9,0x00000005,0x00000023,0x00000018,0x00040047, + 0x000000bb,0x00000021,0x00000002,0x00040047,0x000000bb,0x00000022,0x00000000,0x00040047, + 0x000000be,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000001,0x00040017,0x00000007,0x00000006,0x00000002, + 0x00040020,0x00000008,0x00000007,0x00000007,0x00040021,0x00000009,0x00000007,0x00000008, + 0x00050021,0x0000000d,0x00000002,0x00000008,0x00000008,0x00040020,0x00000012,0x00000007, + 0x00000006,0x00070021,0x00000013,0x00000002,0x00000008,0x00000008,0x00000008,0x00000012, + 0x00090019,0x0000001a,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, + 0x00000000,0x00040020,0x0000001b,0x00000000,0x0000001a,0x0004003b,0x0000001b,0x0000001c, + 0x00000000,0x0004002b,0x00000006,0x0000001f,0x00000000,0x00040017,0x00000020,0x00000006, + 0x00000004,0x00090019,0x00000025,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x0000001a,0x00040020,0x00000026,0x00000000,0x00000025,0x0004003b,0x00000026, + 0x00000027,0x00000000,0x0004002b,0x00000006,0x00000030,0xffffffff,0x0004002b,0x00000006, + 0x00000037,0x00000002,0x00020014,0x00000038,0x00040015,0x00000042,0x00000020,0x00000000, + 0x0004002b,0x00000042,0x00000043,0x00000009,0x0004001c,0x00000044,0x00000007,0x00000043, + 0x00040020,0x00000045,0x00000007,0x00000044,0x0004002b,0x00000006,0x00000051,0x00000001, + 0x00040020,0x00000057,0x00000007,0x00000042,0x0004002b,0x00000042,0x00000059,0xffffffff, + 0x0004002b,0x00000006,0x00000061,0x00000009,0x0004002b,0x00000042,0x00000064,0x00000000, + 0x0004002b,0x00000042,0x0000007b,0x00000001,0x0004002b,0x00000006,0x00000088,0x00000004, + 0x0004002b,0x00000042,0x00000093,0x0000000f,0x00040017,0x0000009c,0x00000042,0x00000003, + 0x00040020,0x0000009d,0x00000001,0x0000009c,0x0004003b,0x0000009d,0x0000009e,0x00000001, + 0x00040017,0x0000009f,0x00000042,0x00000002,0x0004003b,0x0000009d,0x000000a3,0x00000001, + 0x0004003b,0x0000009d,0x000000a7,0x00000001,0x00040020,0x000000ab,0x00000001,0x00000042, + 0x0004003b,0x000000ab,0x000000ac,0x00000001,0x00030016,0x000000b4,0x00000020,0x0004002b, + 0x000000b4,0x000000b5,0x387fda40,0x0004002b,0x000000b4,0x000000b6,0x477fe000,0x0004002b, + 0x000000b4,0x000000b7,0x37801002,0x00040017,0x000000b8,0x000000b4,0x00000002,0x0008001e, + 0x000000b9,0x00000007,0x00000042,0x00000042,0x00000042,0x00000042,0x000000b8,0x00040020, + 0x000000ba,0x00000002,0x000000b9,0x0004003b,0x000000ba,0x000000bb,0x00000002,0x0004002b, + 0x00000042,0x000000bc,0x00000010,0x0004002b,0x00000042,0x000000bd,0x00000004,0x0006002c, + 0x0000009c,0x000000be,0x000000bc,0x000000bd,0x0000007b,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008,0x000000af,0x00000007, + 0x0004003b,0x00000008,0x000000b0,0x00000007,0x0004003b,0x00000008,0x000000b1,0x00000007, + 0x0004003b,0x00000012,0x000000b2,0x00000007,0x0004003d,0x0000009c,0x000000a0,0x0000009e, + 0x0007004f,0x0000009f,0x000000a1,0x000000a0,0x000000a0,0x00000000,0x00000001,0x0004007c, + 0x00000007,0x000000a2,0x000000a1,0x0004003d,0x0000009c,0x000000a4,0x000000a3,0x0007004f, + 0x0000009f,0x000000a5,0x000000a4,0x000000a4,0x00000000,0x00000001,0x0004007c,0x00000007, + 0x000000a6,0x000000a5,0x0004003d,0x0000009c,0x000000a8,0x000000a7,0x0007004f,0x0000009f, + 0x000000a9,0x000000a8,0x000000a8,0x00000000,0x00000001,0x0004007c,0x00000007,0x000000aa, + 0x000000a9,0x0004003d,0x00000042,0x000000ad,0x000000ac,0x0004007c,0x00000006,0x000000ae, + 0x000000ad,0x0003003e,0x000000af,0x000000a2,0x0003003e,0x000000b0,0x000000a6,0x0003003e, + 0x000000b1,0x000000aa,0x0003003e,0x000000b2,0x000000ae,0x00080039,0x00000002,0x000000b3, + 0x00000018,0x000000af,0x000000b0,0x000000b1,0x000000b2,0x000100fd,0x00010038,0x00050036, + 0x00000007,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000008,0x0000000a,0x000200f8, + 0x0000000c,0x0004003d,0x0000001a,0x0000001d,0x0000001c,0x0004003d,0x00000007,0x0000001e, + 0x0000000a,0x0007005f,0x00000020,0x00000021,0x0000001d,0x0000001e,0x00000002,0x0000001f, + 0x0007004f,0x00000007,0x00000022,0x00000021,0x00000021,0x00000000,0x00000001,0x000200fe, + 0x00000022,0x00010038,0x00050036,0x00000002,0x00000010,0x00000000,0x0000000d,0x00030037, + 0x00000008,0x0000000e,0x00030037,0x00000008,0x0000000f,0x000200f8,0x00000011,0x0004003d, + 0x00000025,0x00000028,0x00000027,0x0004003d,0x00000007,0x00000029,0x0000000e,0x0004003d, + 0x00000007,0x0000002a,0x0000000f,0x00050051,0x00000006,0x0000002b,0x0000002a,0x00000000, + 0x00050051,0x00000006,0x0000002c,0x0000002a,0x00000001,0x00070050,0x00000020,0x0000002d, + 0x0000002b,0x0000002c,0x0000001f,0x0000001f,0x00040063,0x00000028,0x00000029,0x0000002d, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000018,0x00000000,0x00000013,0x00030037, + 0x00000008,0x00000014,0x00030037,0x00000008,0x00000015,0x00030037,0x00000008,0x00000016, + 0x00030037,0x00000012,0x00000017,0x000200f8,0x00000019,0x0004003b,0x00000012,0x0000002e, + 0x00000007,0x0004003b,0x00000012,0x0000002f,0x00000007,0x0004003b,0x00000012,0x0000003a, + 0x00000007,0x0004003b,0x00000045,0x00000046,0x00000007,0x0004003b,0x00000008,0x0000004d, + 0x00000007,0x0004003b,0x00000057,0x00000058,0x00000007,0x0004003b,0x00000012,0x0000005a, + 0x00000007,0x0004003b,0x00000057,0x00000063,0x00000007,0x0004003b,0x00000012,0x00000065, + 0x00000007,0x0004003b,0x00000008,0x0000006d,0x00000007,0x0004003b,0x00000057,0x00000091, + 0x00000007,0x0004003b,0x00000008,0x00000096,0x00000007,0x0004003b,0x00000008,0x00000098, + 0x00000007,0x0003003e,0x0000002e,0x0000001f,0x0003003e,0x0000002f,0x00000030,0x000200f9, + 0x00000031,0x000200f8,0x00000031,0x000400f6,0x00000033,0x00000034,0x00000000,0x000200f9, + 0x00000035,0x000200f8,0x00000035,0x0004003d,0x00000006,0x00000036,0x0000002f,0x000500b1, + 0x00000038,0x00000039,0x00000036,0x00000037,0x000400fa,0x00000039,0x00000032,0x00000033, + 0x000200f8,0x00000032,0x0003003e,0x0000003a,0x00000030,0x000200f9,0x0000003b,0x000200f8, + 0x0000003b,0x000400f6,0x0000003d,0x0000003e,0x00000000,0x000200f9,0x0000003f,0x000200f8, + 0x0000003f,0x0004003d,0x00000006,0x00000040,0x0000003a,0x000500b1,0x00000038,0x00000041, + 0x00000040,0x00000037,0x000400fa,0x00000041,0x0000003c,0x0000003d,0x000200f8,0x0000003c, + 0x0004003d,0x00000006,0x00000047,0x0000002e,0x0004003d,0x00000007,0x00000048,0x00000014, + 0x0004003d,0x00000006,0x00000049,0x0000002f,0x0004003d,0x00000006,0x0000004a,0x0000003a, + 0x00050050,0x00000007,0x0000004b,0x00000049,0x0000004a,0x00050080,0x00000007,0x0000004c, + 0x00000048,0x0000004b,0x0003003e,0x0000004d,0x0000004c,0x00050039,0x00000007,0x0000004e, + 0x0000000b,0x0000004d,0x00050041,0x00000008,0x0000004f,0x00000046,0x00000047,0x0003003e, + 0x0000004f,0x0000004e,0x0004003d,0x00000006,0x00000050,0x0000002e,0x00050080,0x00000006, + 0x00000052,0x00000050,0x00000051,0x0003003e,0x0000002e,0x00000052,0x000200f9,0x0000003e, + 0x000200f8,0x0000003e,0x0004003d,0x00000006,0x00000053,0x0000003a,0x00050080,0x00000006, + 0x00000054,0x00000053,0x00000051,0x0003003e,0x0000003a,0x00000054,0x000200f9,0x0000003b, + 0x000200f8,0x0000003d,0x000200f9,0x00000034,0x000200f8,0x00000034,0x0004003d,0x00000006, + 0x00000055,0x0000002f,0x00050080,0x00000006,0x00000056,0x00000055,0x00000051,0x0003003e, + 0x0000002f,0x00000056,0x000200f9,0x00000031,0x000200f8,0x00000033,0x0003003e,0x00000058, + 0x00000059,0x0003003e,0x0000005a,0x0000001f,0x000200f9,0x0000005b,0x000200f8,0x0000005b, + 0x000400f6,0x0000005d,0x0000005e,0x00000000,0x000200f9,0x0000005f,0x000200f8,0x0000005f, + 0x0004003d,0x00000006,0x00000060,0x0000005a,0x000500b1,0x00000038,0x00000062,0x00000060, + 0x00000061,0x000400fa,0x00000062,0x0000005c,0x0000005d,0x000200f8,0x0000005c,0x0003003e, + 0x00000063,0x00000064,0x0003003e,0x00000065,0x0000001f,0x000200f9,0x00000066,0x000200f8, + 0x00000066,0x000400f6,0x00000068,0x00000069,0x00000000,0x000200f9,0x0000006a,0x000200f8, + 0x0000006a,0x0004003d,0x00000006,0x0000006b,0x00000065,0x000500b1,0x00000038,0x0000006c, + 0x0000006b,0x00000061,0x000400fa,0x0000006c,0x00000067,0x00000068,0x000200f8,0x00000067, + 0x0004003d,0x00000006,0x0000006e,0x0000005a,0x00050041,0x00000008,0x0000006f,0x00000046, + 0x0000006e,0x0004003d,0x00000007,0x00000070,0x0000006f,0x0004003d,0x00000006,0x00000071, + 0x00000065,0x00050041,0x00000008,0x00000072,0x00000046,0x00000071,0x0004003d,0x00000007, + 0x00000073,0x00000072,0x00050082,0x00000007,0x00000074,0x00000070,0x00000073,0x0003003e, + 0x0000006d,0x00000074,0x00050041,0x00000012,0x00000075,0x0000006d,0x00000064,0x0004003d, + 0x00000006,0x00000076,0x00000075,0x00050041,0x00000012,0x00000077,0x0000006d,0x00000064, + 0x0004003d,0x00000006,0x00000078,0x00000077,0x00050084,0x00000006,0x00000079,0x00000076, + 0x00000078,0x0004007c,0x00000042,0x0000007a,0x00000079,0x00050041,0x00000012,0x0000007c, + 0x0000006d,0x0000007b,0x0004003d,0x00000006,0x0000007d,0x0000007c,0x00050041,0x00000012, + 0x0000007e,0x0000006d,0x0000007b,0x0004003d,0x00000006,0x0000007f,0x0000007e,0x00050084, + 0x00000006,0x00000080,0x0000007d,0x0000007f,0x0004007c,0x00000042,0x00000081,0x00000080, + 0x0004003d,0x00000042,0x00000082,0x00000063,0x00050080,0x00000042,0x00000083,0x00000081, + 0x00000082,0x00050080,0x00000042,0x00000084,0x0000007a,0x00000083,0x0003003e,0x00000063, + 0x00000084,0x000200f9,0x00000069,0x000200f8,0x00000069,0x0004003d,0x00000006,0x00000085, + 0x00000065,0x00050080,0x00000006,0x00000086,0x00000085,0x00000051,0x0003003e,0x00000065, + 0x00000086,0x000200f9,0x00000066,0x000200f8,0x00000068,0x0004003d,0x00000042,0x00000087, + 0x00000063,0x000500c4,0x00000042,0x00000089,0x00000087,0x00000088,0x0004003d,0x00000006, + 0x0000008a,0x0000005a,0x0004007c,0x00000042,0x0000008b,0x0000008a,0x000500c5,0x00000042, + 0x0000008c,0x00000089,0x0000008b,0x0004003d,0x00000042,0x0000008d,0x00000058,0x0007000c, + 0x00000042,0x0000008e,0x00000001,0x00000026,0x0000008c,0x0000008d,0x0003003e,0x00000058, + 0x0000008e,0x000200f9,0x0000005e,0x000200f8,0x0000005e,0x0004003d,0x00000006,0x0000008f, + 0x0000005a,0x00050080,0x00000006,0x00000090,0x0000008f,0x00000051,0x0003003e,0x0000005a, + 0x00000090,0x000200f9,0x0000005b,0x000200f8,0x0000005d,0x0004003d,0x00000042,0x00000092, + 0x00000058,0x000500c7,0x00000042,0x00000094,0x00000092,0x00000093,0x0003003e,0x00000091, + 0x00000094,0x0004003d,0x00000042,0x00000095,0x00000091,0x0004003d,0x00000007,0x00000097, + 0x00000014,0x0003003e,0x00000096,0x00000097,0x00050041,0x00000008,0x00000099,0x00000046, + 0x00000095,0x0004003d,0x00000007,0x0000009a,0x00000099,0x0003003e,0x00000098,0x0000009a, + 0x00060039,0x00000002,0x0000009b,0x00000010,0x00000096,0x00000098,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h b/gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h new file mode 100644 index 000000000..5eca05873 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_generate_scd_histogram_comp_spv.h @@ -0,0 +1,243 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_GENERATE_SCD_HISTOGRAM_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000012d,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, + 0x0009000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000110,0x00000113,0x00000119, + 0x0000011c,0x00060010,0x00000004,0x00000011,0x00000020,0x00000008,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x00000009, + 0x70736944,0x5379616c,0x28657a69,0x00000000,0x00090005,0x0000000f,0x64616f4c,0x6974704f, + 0x466c6163,0x49776f6c,0x7475706e,0x32697628,0x0000003b,0x00040005,0x0000000e,0x50785069, + 0x0000736f,0x000b0005,0x00000016,0x6d6f7441,0x6e496369,0x6d657263,0x53746e65,0x69484443, + 0x676f7473,0x286d6172,0x753b3169,0x00003b31,0x00040005,0x00000014,0x646e4969,0x00007865, + 0x00050005,0x00000015,0x756c6176,0x416f5465,0x00006464,0x00110005,0x00000020,0x656e6547, + 0x65746172,0x6e656353,0x61684365,0x4465676e,0x63657465,0x6e6f6974,0x74736948,0x6172676f, + 0x6976286d,0x69763b33,0x31693b32,0x3269763b,0x3269763b,0x0000003b,0x00050005,0x0000001b, + 0x6f6c4769,0x496c6162,0x00000064,0x00050005,0x0000001c,0x636f4c69,0x64496c61,0x00000000, + 0x00050005,0x0000001d,0x636f4c69,0x6e496c61,0x00786564,0x00050005,0x0000001e,0x6f724769, + 0x64497075,0x00000000,0x00050005,0x0000001f,0x6f724769,0x69537075,0x0000657a,0x00040005, + 0x00000024,0x464f6263,0x0000745f,0x00090006,0x00000024,0x00000000,0x706e4969,0x754c7475, + 0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x00000024,0x00000001,0x74704f75, + 0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x00000024, + 0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43, + 0x00000074,0x00060006,0x00000024,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006, + 0x00000024,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e, + 0x00006e6f,0x00070006,0x00000024,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e, + 0x00040005,0x00000026,0x464f6263,0x00000000,0x00080005,0x0000002f,0x706f5f72,0x61636974, + 0x6c665f6c,0x695f776f,0x7475706e,0x00000000,0x000a0005,0x0000003a,0x6f5f7772,0x63697470, + 0x665f6c61,0x5f776f6c,0x5f646373,0x74736968,0x6172676f,0x0000006d,0x00040005,0x00000042, + 0x58766964,0x00000000,0x00040005,0x00000048,0x59766964,0x00000000,0x00030005,0x0000004d, + 0x0000786e,0x00030005,0x00000053,0x0000796e,0x00040005,0x00000058,0x72617473,0x00005874, + 0x00040005,0x0000005c,0x72617473,0x00005974,0x00040005,0x00000060,0x706f7473,0x00000058, + 0x00040005,0x00000064,0x706f7473,0x00000059,0x00060005,0x00000068,0x66667562,0x664f7265, + 0x74657366,0x00000000,0x00030005,0x0000006d,0x00000069,0x00050005,0x00000079,0x42646373, + 0x65666675,0x00000072,0x00040005,0x00000085,0x726f6f63,0x00000064,0x00040005,0x000000a7, + 0x6f6c6f63,0x00000072,0x00040005,0x000000ab,0x61726170,0x0000006d,0x00040005,0x000000b0, + 0x61726170,0x0000006d,0x00040005,0x000000b6,0x61726170,0x0000006d,0x00040005,0x000000bc, + 0x61726170,0x0000006d,0x00070005,0x000000c3,0x61726373,0x696c626d,0x664f676e,0x74657366, + 0x00000000,0x00040005,0x000000e4,0x756c6176,0x00000065,0x00030005,0x000000e5,0x00000069, + 0x00060005,0x000000f7,0x74736968,0x6172676f,0x6174536d,0x00007472,0x00040005,0x00000106, + 0x61726170,0x0000006d,0x00040005,0x00000107,0x61726170,0x0000006d,0x00050005,0x0000010a, + 0x6f724769,0x69537075,0x0000657a,0x00080005,0x00000110,0x475f6c67,0x61626f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x00000044,0x00080005,0x00000113,0x4c5f6c67,0x6c61636f,0x6f766e49, + 0x69746163,0x44496e6f,0x00000000,0x00080005,0x00000119,0x4c5f6c67,0x6c61636f,0x6f766e49, + 0x69746163,0x6e496e6f,0x00786564,0x00060005,0x0000011c,0x575f6c67,0x476b726f,0x70756f72, + 0x00004449,0x00040005,0x00000120,0x61726170,0x0000006d,0x00040005,0x00000121,0x61726170, + 0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d,0x00040005,0x00000123,0x61726170, + 0x0000006d,0x00040005,0x00000124,0x61726170,0x0000006d,0x00030047,0x00000024,0x00000002, + 0x00050048,0x00000024,0x00000000,0x00000023,0x00000000,0x00050048,0x00000024,0x00000001, + 0x00000023,0x00000008,0x00050048,0x00000024,0x00000002,0x00000023,0x0000000c,0x00050048, + 0x00000024,0x00000003,0x00000023,0x00000010,0x00050048,0x00000024,0x00000004,0x00000023, + 0x00000014,0x00050048,0x00000024,0x00000005,0x00000023,0x00000018,0x00040047,0x00000026, + 0x00000021,0x00000002,0x00040047,0x00000026,0x00000022,0x00000000,0x00040047,0x0000002f, + 0x00000021,0x00000000,0x00040047,0x0000002f,0x00000022,0x00000000,0x00040047,0x0000003a, + 0x00000021,0x00000001,0x00040047,0x0000003a,0x00000022,0x00000000,0x00040047,0x00000110, + 0x0000000b,0x0000001c,0x00040047,0x00000113,0x0000000b,0x0000001b,0x00040047,0x00000119, + 0x0000000b,0x0000001d,0x00040047,0x0000011c,0x0000000b,0x0000001a,0x00040047,0x0000012c, + 0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015, + 0x00000006,0x00000020,0x00000001,0x00040017,0x00000007,0x00000006,0x00000002,0x00030021, + 0x00000008,0x00000007,0x00040020,0x0000000b,0x00000007,0x00000007,0x00040015,0x0000000c, + 0x00000020,0x00000000,0x00040021,0x0000000d,0x0000000c,0x0000000b,0x00040020,0x00000011, + 0x00000007,0x00000006,0x00040020,0x00000012,0x00000007,0x0000000c,0x00050021,0x00000013, + 0x00000002,0x00000011,0x00000012,0x00040017,0x00000018,0x00000006,0x00000003,0x00040020, + 0x00000019,0x00000007,0x00000018,0x00080021,0x0000001a,0x00000002,0x00000019,0x0000000b, + 0x00000011,0x0000000b,0x0000000b,0x00030016,0x00000022,0x00000020,0x00040017,0x00000023, + 0x00000022,0x00000002,0x0008001e,0x00000024,0x00000007,0x0000000c,0x0000000c,0x0000000c, + 0x0000000c,0x00000023,0x00040020,0x00000025,0x00000002,0x00000024,0x0004003b,0x00000025, + 0x00000026,0x00000002,0x0004002b,0x00000006,0x00000027,0x00000000,0x00040020,0x00000028, + 0x00000002,0x00000007,0x00090019,0x0000002d,0x0000000c,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x0000002e,0x00000000,0x0000002d,0x0004003b, + 0x0000002e,0x0000002f,0x00000000,0x00040017,0x00000032,0x0000000c,0x00000004,0x0004002b, + 0x0000000c,0x00000034,0x00000000,0x00090019,0x00000038,0x0000000c,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000039,0x00000000,0x00000038, + 0x0004003b,0x00000039,0x0000003a,0x00000000,0x00040020,0x0000003e,0x0000000b,0x0000000c, + 0x0004002b,0x0000000c,0x00000040,0x00000001,0x0004002b,0x0000000c,0x00000046,0x00000003, + 0x0004002b,0x0000000c,0x0000004e,0x00000002,0x0004002b,0x00000006,0x0000006a,0x0000000a, + 0x00020014,0x00000074,0x0004002b,0x0000000c,0x00000076,0x00000a00,0x0004001c,0x00000077, + 0x0000000c,0x00000076,0x00040020,0x00000078,0x00000004,0x00000077,0x0004003b,0x00000078, + 0x00000079,0x00000004,0x00040020,0x0000007e,0x00000004,0x0000000c,0x0004002b,0x00000006, + 0x00000081,0x00000001,0x0004002b,0x0000000c,0x00000083,0x00000d48,0x0004002b,0x0000000c, + 0x00000084,0x00000108,0x0004002b,0x00000006,0x00000087,0x00000004,0x00040020,0x000000a6, + 0x00000007,0x00000032,0x0005002c,0x00000007,0x000000a9,0x00000027,0x00000027,0x0005002c, + 0x00000007,0x000000ae,0x00000081,0x00000027,0x0004002b,0x00000006,0x000000b3,0x00000002, + 0x0005002c,0x00000007,0x000000b4,0x000000b3,0x00000027,0x0004002b,0x00000006,0x000000b9, + 0x00000003,0x0005002c,0x00000007,0x000000ba,0x000000b9,0x00000027,0x0004002b,0x0000000c, + 0x000000bf,0x0000000a,0x0004002b,0x00000006,0x000000df,0x00000080,0x0004002b,0x00000006, + 0x0000010b,0x00000020,0x0004002b,0x00000006,0x0000010c,0x00000008,0x0005002c,0x00000007, + 0x0000010d,0x0000010b,0x0000010c,0x00040017,0x0000010e,0x0000000c,0x00000003,0x00040020, + 0x0000010f,0x00000001,0x0000010e,0x0004003b,0x0000010f,0x00000110,0x00000001,0x0004003b, + 0x0000010f,0x00000113,0x00000001,0x00040017,0x00000114,0x0000000c,0x00000002,0x00040020, + 0x00000118,0x00000001,0x0000000c,0x0004003b,0x00000118,0x00000119,0x00000001,0x0004003b, + 0x0000010f,0x0000011c,0x00000001,0x0004002b,0x00000022,0x00000127,0x387fda40,0x0004002b, + 0x00000022,0x00000128,0x477fe000,0x0004002b,0x00000022,0x00000129,0x37801002,0x0004002b, + 0x0000000c,0x0000012a,0x00000020,0x0004002b,0x0000000c,0x0000012b,0x00000008,0x0006002c, + 0x0000010e,0x0000012c,0x0000012a,0x0000012b,0x00000040,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000000b,0x0000010a,0x00000007, + 0x0004003b,0x00000019,0x00000120,0x00000007,0x0004003b,0x0000000b,0x00000121,0x00000007, + 0x0004003b,0x00000011,0x00000122,0x00000007,0x0004003b,0x0000000b,0x00000123,0x00000007, + 0x0004003b,0x0000000b,0x00000124,0x00000007,0x0003003e,0x0000010a,0x0000010d,0x0004003d, + 0x0000010e,0x00000111,0x00000110,0x0004007c,0x00000018,0x00000112,0x00000111,0x0004003d, + 0x0000010e,0x00000115,0x00000113,0x0007004f,0x00000114,0x00000116,0x00000115,0x00000115, + 0x00000000,0x00000001,0x0004007c,0x00000007,0x00000117,0x00000116,0x0004003d,0x0000000c, + 0x0000011a,0x00000119,0x0004007c,0x00000006,0x0000011b,0x0000011a,0x0004003d,0x0000010e, + 0x0000011d,0x0000011c,0x0007004f,0x00000114,0x0000011e,0x0000011d,0x0000011d,0x00000000, + 0x00000001,0x0004007c,0x00000007,0x0000011f,0x0000011e,0x0003003e,0x00000120,0x00000112, + 0x0003003e,0x00000121,0x00000117,0x0003003e,0x00000122,0x0000011b,0x0003003e,0x00000123, + 0x0000011f,0x0004003d,0x00000007,0x00000125,0x0000010a,0x0003003e,0x00000124,0x00000125, + 0x00090039,0x00000002,0x00000126,0x00000020,0x00000120,0x00000121,0x00000122,0x00000123, + 0x00000124,0x000100fd,0x00010038,0x00050036,0x00000007,0x00000009,0x00000000,0x00000008, + 0x000200f8,0x0000000a,0x00050041,0x00000028,0x00000029,0x00000026,0x00000027,0x0004003d, + 0x00000007,0x0000002a,0x00000029,0x000200fe,0x0000002a,0x00010038,0x00050036,0x0000000c, + 0x0000000f,0x00000000,0x0000000d,0x00030037,0x0000000b,0x0000000e,0x000200f8,0x00000010, + 0x0004003d,0x0000002d,0x00000030,0x0000002f,0x0004003d,0x00000007,0x00000031,0x0000000e, + 0x0007005f,0x00000032,0x00000033,0x00000030,0x00000031,0x00000002,0x00000027,0x00050051, + 0x0000000c,0x00000035,0x00000033,0x00000000,0x000200fe,0x00000035,0x00010038,0x00050036, + 0x00000002,0x00000016,0x00000000,0x00000013,0x00030037,0x00000011,0x00000014,0x00030037, + 0x00000012,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000006,0x0000003b,0x00000014, + 0x00050050,0x00000007,0x0000003c,0x0000003b,0x00000027,0x0004003d,0x0000000c,0x0000003d, + 0x00000015,0x0006003c,0x0000003e,0x0000003f,0x0000003a,0x0000003c,0x00000034,0x000700ea, + 0x0000000c,0x00000041,0x0000003f,0x00000040,0x00000034,0x0000003d,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000020,0x00000000,0x0000001a,0x00030037,0x00000019,0x0000001b, + 0x00030037,0x0000000b,0x0000001c,0x00030037,0x00000011,0x0000001d,0x00030037,0x0000000b, + 0x0000001e,0x00030037,0x0000000b,0x0000001f,0x000200f8,0x00000021,0x0004003b,0x00000012, + 0x00000042,0x00000007,0x0004003b,0x00000012,0x00000048,0x00000007,0x0004003b,0x00000012, + 0x0000004d,0x00000007,0x0004003b,0x00000012,0x00000053,0x00000007,0x0004003b,0x00000012, + 0x00000058,0x00000007,0x0004003b,0x00000012,0x0000005c,0x00000007,0x0004003b,0x00000012, + 0x00000060,0x00000007,0x0004003b,0x00000012,0x00000064,0x00000007,0x0004003b,0x00000012, + 0x00000068,0x00000007,0x0004003b,0x00000011,0x0000006d,0x00000007,0x0004003b,0x0000000b, + 0x00000085,0x00000007,0x0004003b,0x000000a6,0x000000a7,0x00000007,0x0004003b,0x0000000b, + 0x000000ab,0x00000007,0x0004003b,0x0000000b,0x000000b0,0x00000007,0x0004003b,0x0000000b, + 0x000000b6,0x00000007,0x0004003b,0x0000000b,0x000000bc,0x00000007,0x0004003b,0x00000012, + 0x000000c3,0x00000007,0x0004003b,0x00000012,0x000000e4,0x00000007,0x0004003b,0x00000011, + 0x000000e5,0x00000007,0x0004003b,0x00000012,0x000000f7,0x00000007,0x0004003b,0x00000011, + 0x00000106,0x00000007,0x0004003b,0x00000012,0x00000107,0x00000007,0x00040039,0x00000007, + 0x00000043,0x00000009,0x00050051,0x00000006,0x00000044,0x00000043,0x00000000,0x0004007c, + 0x0000000c,0x00000045,0x00000044,0x00050086,0x0000000c,0x00000047,0x00000045,0x00000046, + 0x0003003e,0x00000042,0x00000047,0x00040039,0x00000007,0x00000049,0x00000009,0x00050051, + 0x00000006,0x0000004a,0x00000049,0x00000001,0x0004007c,0x0000000c,0x0000004b,0x0000004a, + 0x00050086,0x0000000c,0x0000004c,0x0000004b,0x00000046,0x0003003e,0x00000048,0x0000004c, + 0x00050041,0x00000011,0x0000004f,0x0000001b,0x0000004e,0x0004003d,0x00000006,0x00000050, + 0x0000004f,0x0004007c,0x0000000c,0x00000051,0x00000050,0x00050089,0x0000000c,0x00000052, + 0x00000051,0x00000046,0x0003003e,0x0000004d,0x00000052,0x00050041,0x00000011,0x00000054, + 0x0000001b,0x0000004e,0x0004003d,0x00000006,0x00000055,0x00000054,0x0004007c,0x0000000c, + 0x00000056,0x00000055,0x00050086,0x0000000c,0x00000057,0x00000056,0x00000046,0x0003003e, + 0x00000053,0x00000057,0x0004003d,0x0000000c,0x00000059,0x00000042,0x0004003d,0x0000000c, + 0x0000005a,0x0000004d,0x00050084,0x0000000c,0x0000005b,0x00000059,0x0000005a,0x0003003e, + 0x00000058,0x0000005b,0x0004003d,0x0000000c,0x0000005d,0x00000048,0x0004003d,0x0000000c, + 0x0000005e,0x00000053,0x00050084,0x0000000c,0x0000005f,0x0000005d,0x0000005e,0x0003003e, + 0x0000005c,0x0000005f,0x0004003d,0x0000000c,0x00000061,0x00000058,0x0004003d,0x0000000c, + 0x00000062,0x00000042,0x00050080,0x0000000c,0x00000063,0x00000061,0x00000062,0x0003003e, + 0x00000060,0x00000063,0x0004003d,0x0000000c,0x00000065,0x0000005c,0x0004003d,0x0000000c, + 0x00000066,0x00000048,0x00050080,0x0000000c,0x00000067,0x00000065,0x00000066,0x0003003e, + 0x00000064,0x00000067,0x0004003d,0x00000006,0x00000069,0x0000001d,0x00050084,0x00000006, + 0x0000006b,0x00000069,0x0000006a,0x0004007c,0x0000000c,0x0000006c,0x0000006b,0x0003003e, + 0x00000068,0x0000006c,0x0003003e,0x0000006d,0x00000027,0x000200f9,0x0000006e,0x000200f8, + 0x0000006e,0x000400f6,0x00000070,0x00000071,0x00000000,0x000200f9,0x00000072,0x000200f8, + 0x00000072,0x0004003d,0x00000006,0x00000073,0x0000006d,0x000500b1,0x00000074,0x00000075, + 0x00000073,0x0000006a,0x000400fa,0x00000075,0x0000006f,0x00000070,0x000200f8,0x0000006f, + 0x0004003d,0x0000000c,0x0000007a,0x00000068,0x0004003d,0x00000006,0x0000007b,0x0000006d, + 0x0004007c,0x0000000c,0x0000007c,0x0000007b,0x00050080,0x0000000c,0x0000007d,0x0000007a, + 0x0000007c,0x00050041,0x0000007e,0x0000007f,0x00000079,0x0000007d,0x0003003e,0x0000007f, + 0x00000034,0x000200f9,0x00000071,0x000200f8,0x00000071,0x0004003d,0x00000006,0x00000080, + 0x0000006d,0x00050080,0x00000006,0x00000082,0x00000080,0x00000081,0x0003003e,0x0000006d, + 0x00000082,0x000200f9,0x0000006e,0x000200f8,0x00000070,0x000300e1,0x0000004e,0x00000083, + 0x000400e0,0x0000004e,0x0000004e,0x00000084,0x0004003d,0x0000000c,0x00000086,0x00000058, + 0x00050041,0x00000011,0x00000088,0x0000001b,0x00000034,0x0004003d,0x00000006,0x00000089, + 0x00000088,0x00050084,0x00000006,0x0000008a,0x00000087,0x00000089,0x0004007c,0x0000000c, + 0x0000008b,0x0000008a,0x00050080,0x0000000c,0x0000008c,0x00000086,0x0000008b,0x0004007c, + 0x00000006,0x0000008d,0x0000008c,0x0004003d,0x0000000c,0x0000008e,0x0000005c,0x00050041, + 0x00000011,0x0000008f,0x0000001b,0x00000040,0x0004003d,0x00000006,0x00000090,0x0000008f, + 0x0004007c,0x0000000c,0x00000091,0x00000090,0x00050080,0x0000000c,0x00000092,0x0000008e, + 0x00000091,0x0004007c,0x00000006,0x00000093,0x00000092,0x00050050,0x00000007,0x00000094, + 0x0000008d,0x00000093,0x0003003e,0x00000085,0x00000094,0x00050041,0x00000011,0x00000095, + 0x00000085,0x00000034,0x0004003d,0x00000006,0x00000096,0x00000095,0x0004007c,0x0000000c, + 0x00000097,0x00000096,0x0004003d,0x0000000c,0x00000098,0x00000060,0x000500b0,0x00000074, + 0x00000099,0x00000097,0x00000098,0x000300f7,0x0000009b,0x00000000,0x000400fa,0x00000099, + 0x0000009a,0x0000009b,0x000200f8,0x0000009a,0x000200f9,0x0000009c,0x000200f8,0x0000009c, + 0x000400f6,0x0000009e,0x0000009f,0x00000000,0x000200f9,0x000000a0,0x000200f8,0x000000a0, + 0x00050041,0x00000011,0x000000a1,0x00000085,0x00000040,0x0004003d,0x00000006,0x000000a2, + 0x000000a1,0x0004007c,0x0000000c,0x000000a3,0x000000a2,0x0004003d,0x0000000c,0x000000a4, + 0x00000064,0x000500b0,0x00000074,0x000000a5,0x000000a3,0x000000a4,0x000400fa,0x000000a5, + 0x0000009d,0x0000009e,0x000200f8,0x0000009d,0x0004003d,0x00000007,0x000000a8,0x00000085, + 0x00050080,0x00000007,0x000000aa,0x000000a8,0x000000a9,0x0003003e,0x000000ab,0x000000aa, + 0x00050039,0x0000000c,0x000000ac,0x0000000f,0x000000ab,0x0004003d,0x00000007,0x000000ad, + 0x00000085,0x00050080,0x00000007,0x000000af,0x000000ad,0x000000ae,0x0003003e,0x000000b0, + 0x000000af,0x00050039,0x0000000c,0x000000b1,0x0000000f,0x000000b0,0x0004003d,0x00000007, + 0x000000b2,0x00000085,0x00050080,0x00000007,0x000000b5,0x000000b2,0x000000b4,0x0003003e, + 0x000000b6,0x000000b5,0x00050039,0x0000000c,0x000000b7,0x0000000f,0x000000b6,0x0004003d, + 0x00000007,0x000000b8,0x00000085,0x00050080,0x00000007,0x000000bb,0x000000b8,0x000000ba, + 0x0003003e,0x000000bc,0x000000bb,0x00050039,0x0000000c,0x000000bd,0x0000000f,0x000000bc, + 0x00070050,0x00000032,0x000000be,0x000000ac,0x000000b1,0x000000b7,0x000000bd,0x0003003e, + 0x000000a7,0x000000be,0x0004003d,0x00000032,0x000000c0,0x000000a7,0x00070050,0x00000032, + 0x000000c1,0x000000bf,0x000000bf,0x000000bf,0x000000bf,0x00050084,0x00000032,0x000000c2, + 0x000000c0,0x000000c1,0x0003003e,0x000000a7,0x000000c2,0x0004003d,0x00000006,0x000000c4, + 0x0000001d,0x0005008b,0x00000006,0x000000c5,0x000000c4,0x0000006a,0x0004007c,0x0000000c, + 0x000000c6,0x000000c5,0x0003003e,0x000000c3,0x000000c6,0x00050041,0x00000012,0x000000c7, + 0x000000a7,0x00000034,0x0004003d,0x0000000c,0x000000c8,0x000000c7,0x0004003d,0x0000000c, + 0x000000c9,0x000000c3,0x00050080,0x0000000c,0x000000ca,0x000000c8,0x000000c9,0x00050041, + 0x0000007e,0x000000cb,0x00000079,0x000000ca,0x000700ea,0x0000000c,0x000000cc,0x000000cb, + 0x00000040,0x00000034,0x00000040,0x00050041,0x00000012,0x000000cd,0x000000a7,0x00000040, + 0x0004003d,0x0000000c,0x000000ce,0x000000cd,0x0004003d,0x0000000c,0x000000cf,0x000000c3, + 0x00050080,0x0000000c,0x000000d0,0x000000ce,0x000000cf,0x00050041,0x0000007e,0x000000d1, + 0x00000079,0x000000d0,0x000700ea,0x0000000c,0x000000d2,0x000000d1,0x00000040,0x00000034, + 0x00000040,0x00050041,0x00000012,0x000000d3,0x000000a7,0x0000004e,0x0004003d,0x0000000c, + 0x000000d4,0x000000d3,0x0004003d,0x0000000c,0x000000d5,0x000000c3,0x00050080,0x0000000c, + 0x000000d6,0x000000d4,0x000000d5,0x00050041,0x0000007e,0x000000d7,0x00000079,0x000000d6, + 0x000700ea,0x0000000c,0x000000d8,0x000000d7,0x00000040,0x00000034,0x00000040,0x00050041, + 0x00000012,0x000000d9,0x000000a7,0x00000046,0x0004003d,0x0000000c,0x000000da,0x000000d9, + 0x0004003d,0x0000000c,0x000000db,0x000000c3,0x00050080,0x0000000c,0x000000dc,0x000000da, + 0x000000db,0x00050041,0x0000007e,0x000000dd,0x00000079,0x000000dc,0x000700ea,0x0000000c, + 0x000000de,0x000000dd,0x00000040,0x00000034,0x00000040,0x000200f9,0x0000009f,0x000200f8, + 0x0000009f,0x00050041,0x00000011,0x000000e0,0x00000085,0x00000040,0x0004003d,0x00000006, + 0x000000e1,0x000000e0,0x00050080,0x00000006,0x000000e2,0x000000e1,0x000000df,0x00050041, + 0x00000011,0x000000e3,0x00000085,0x00000040,0x0003003e,0x000000e3,0x000000e2,0x000200f9, + 0x0000009c,0x000200f8,0x0000009e,0x000200f9,0x0000009b,0x000200f8,0x0000009b,0x000300e1, + 0x0000004e,0x00000083,0x000400e0,0x0000004e,0x0000004e,0x00000084,0x0003003e,0x000000e4, + 0x00000034,0x0003003e,0x000000e5,0x00000027,0x000200f9,0x000000e6,0x000200f8,0x000000e6, + 0x000400f6,0x000000e8,0x000000e9,0x00000000,0x000200f9,0x000000ea,0x000200f8,0x000000ea, + 0x0004003d,0x00000006,0x000000eb,0x000000e5,0x000500b1,0x00000074,0x000000ec,0x000000eb, + 0x0000006a,0x000400fa,0x000000ec,0x000000e7,0x000000e8,0x000200f8,0x000000e7,0x0004003d, + 0x0000000c,0x000000ed,0x00000068,0x0004003d,0x00000006,0x000000ee,0x000000e5,0x0004007c, + 0x0000000c,0x000000ef,0x000000ee,0x00050080,0x0000000c,0x000000f0,0x000000ed,0x000000ef, + 0x00050041,0x0000007e,0x000000f1,0x00000079,0x000000f0,0x0004003d,0x0000000c,0x000000f2, + 0x000000f1,0x0004003d,0x0000000c,0x000000f3,0x000000e4,0x00050080,0x0000000c,0x000000f4, + 0x000000f3,0x000000f2,0x0003003e,0x000000e4,0x000000f4,0x000200f9,0x000000e9,0x000200f8, + 0x000000e9,0x0004003d,0x00000006,0x000000f5,0x000000e5,0x00050080,0x00000006,0x000000f6, + 0x000000f5,0x00000081,0x0003003e,0x000000e5,0x000000f6,0x000200f9,0x000000e6,0x000200f8, + 0x000000e8,0x00050041,0x00000011,0x000000f8,0x0000001f,0x00000034,0x0004003d,0x00000006, + 0x000000f9,0x000000f8,0x00050041,0x00000011,0x000000fa,0x0000001f,0x00000040,0x0004003d, + 0x00000006,0x000000fb,0x000000fa,0x00050084,0x00000006,0x000000fc,0x000000f9,0x000000fb, + 0x00050041,0x00000011,0x000000fd,0x0000001b,0x0000004e,0x0004003d,0x00000006,0x000000fe, + 0x000000fd,0x00050084,0x00000006,0x000000ff,0x000000fc,0x000000fe,0x0004007c,0x0000000c, + 0x00000100,0x000000ff,0x0003003e,0x000000f7,0x00000100,0x0004003d,0x0000000c,0x00000101, + 0x000000f7,0x0004003d,0x00000006,0x00000102,0x0000001d,0x0004007c,0x0000000c,0x00000103, + 0x00000102,0x00050080,0x0000000c,0x00000104,0x00000101,0x00000103,0x0004007c,0x00000006, + 0x00000105,0x00000104,0x0003003e,0x00000106,0x00000105,0x0004003d,0x0000000c,0x00000108, + 0x000000e4,0x0003003e,0x00000107,0x00000108,0x00060039,0x00000002,0x00000109,0x00000016, + 0x00000106,0x00000107,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h new file mode 100644 index 000000000..cc578f6d9 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_luminance_pyramid_comp_spv.h @@ -0,0 +1,1196 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_LUMINANCE_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000005b0,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x0000059d,0x000005a2,0x00060010,0x00000004,0x00000011, + 0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469, + 0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47, + 0x735f5248,0x65646168,0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004, + 0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273, + 0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005, + 0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005, + 0x00000010,0x73746962,0x00000000,0x000a0005,0x00000016,0x52786666,0x70616d65,0x57726f46, + 0x52657661,0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x00000015,0x00000061, + 0x00060005,0x00000019,0x576d754e,0x476b726f,0x70756f72,0x00002873,0x00090005,0x00000020, + 0x64616f4c,0x704f7752,0x61636974,0x6f6c466c,0x706e4977,0x76287475,0x003b3269,0x00040005, + 0x0000001f,0x50785069,0x0000736f,0x00090005,0x00000028,0x5f445053,0x4d746553,0x616d7069, + 0x69762870,0x31753b32,0x3b31663b,0x00000000,0x00040005,0x00000025,0x50785069,0x0000736f, + 0x00040005,0x00000026,0x65646e69,0x00000078,0x00040005,0x00000027,0x756c6176,0x00000065, + 0x00080005,0x0000002a,0x5f445053,0x65736552,0x6f744174,0x4363696d,0x746e756f,0x00287265, + 0x00090005,0x00000032,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266, + 0x00003b31,0x00030005,0x00000030,0x00786574,0x00040005,0x00000031,0x63696c73,0x00000065, + 0x00060005,0x00000037,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x00000035, + 0x00786574,0x00040005,0x00000036,0x63696c73,0x00000065,0x00080005,0x0000003f,0x53647053, + 0x65726f74,0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x0000003b,0x00786970, + 0x00050005,0x0000003c,0x5674756f,0x65756c61,0x00000000,0x00040005,0x0000003d,0x65646e69, + 0x00000078,0x00040005,0x0000003e,0x63696c73,0x00000065,0x000a0005,0x00000043,0x49647053, + 0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005, + 0x00000042,0x63696c73,0x00000065,0x00080005,0x00000045,0x47647053,0x74417465,0x63696d6f, + 0x6e756f43,0x28726574,0x00000000,0x00090005,0x00000048,0x52647053,0x74657365,0x6d6f7441, + 0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x00000047,0x63696c73,0x00000065, + 0x00090005,0x0000004d,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461,0x753b3175, + 0x00003b31,0x00030005,0x0000004b,0x00000078,0x00030005,0x0000004c,0x00000079,0x000a0005, + 0x00000053,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528,0x763b3175, + 0x003b3466,0x00030005,0x00000050,0x00000078,0x00030005,0x00000051,0x00000079,0x00040005, + 0x00000052,0x756c6176,0x00000065,0x00090005,0x0000005a,0x52647053,0x63756465,0x76283465, + 0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x00000056,0x00003076,0x00030005, + 0x00000057,0x00003176,0x00030005,0x00000058,0x00003276,0x00030005,0x00000059,0x00003376, + 0x000a0005,0x0000005c,0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c, + 0x65697272,0x00002872,0x00090005,0x00000063,0x45647053,0x57746978,0x676b726f,0x70756f72, + 0x3b317528,0x753b3175,0x00003b31,0x00060005,0x00000060,0x576d756e,0x476b726f,0x70756f72, + 0x00000073,0x00080005,0x00000061,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00040005,0x00000062,0x63696c73,0x00000065,0x00070005,0x00000067,0x52647053, + 0x63756465,0x61755165,0x66762864,0x00003b34,0x00030005,0x00000066,0x00000076,0x000b0005, + 0x00000070,0x52647053,0x63756465,0x616f4c65,0x76283464,0x763b3275,0x763b3275,0x763b3275, + 0x753b3275,0x00003b31,0x00030005,0x0000006b,0x00003069,0x00030005,0x0000006c,0x00003169, + 0x00030005,0x0000006d,0x00003269,0x00030005,0x0000006e,0x00003369,0x00040005,0x0000006f, + 0x63696c73,0x00000065,0x00080005,0x00000075,0x52647053,0x63756465,0x616f4c65,0x76283464, + 0x753b3275,0x00003b31,0x00040005,0x00000073,0x65736162,0x00000000,0x00040005,0x00000074, + 0x63696c73,0x00000065,0x000e0005,0x0000007c,0x52647053,0x63756465,0x616f4c65,0x756f5364, + 0x49656372,0x6567616d,0x75762834,0x75763b32,0x75763b32,0x75763b32,0x31753b32,0x0000003b, + 0x00030005,0x00000077,0x00003069,0x00030005,0x00000078,0x00003169,0x00030005,0x00000079, + 0x00003269,0x00030005,0x0000007a,0x00003369,0x00040005,0x0000007b,0x63696c73,0x00000065, + 0x000b0005,0x00000080,0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d, + 0x32757628,0x3b31753b,0x00000000,0x00040005,0x0000007e,0x65736162,0x00000000,0x00040005, + 0x0000007f,0x63696c73,0x00000065,0x00100005,0x00000089,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x5f305f73,0x6e495f31,0x6e697274,0x73636973,0x3b317528,0x763b3175,0x753b3275, + 0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000083,0x00000078,0x00030005,0x00000084, + 0x00000079,0x00050005,0x00000085,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000086, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000087, + 0x0070696d,0x00040005,0x00000088,0x63696c73,0x00000065,0x000d0005,0x00000091,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831,0x3b31753b,0x3b327576,0x753b3175, + 0x31753b31,0x0000003b,0x00030005,0x0000008b,0x00000078,0x00030005,0x0000008c,0x00000079, + 0x00050005,0x0000008d,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000008e,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x0000008f,0x0070696d, + 0x00040005,0x00000090,0x63696c73,0x00000065,0x000c0005,0x00000099,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x00000093,0x00000078,0x00030005,0x00000094,0x00000079,0x00050005,0x00000095, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000096,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000097,0x0070696d,0x00040005,0x00000098, + 0x63696c73,0x00000065,0x000c0005,0x000000a1,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x0000009b, + 0x00000078,0x00030005,0x0000009c,0x00000079,0x00050005,0x0000009d,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x0000009e,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x0000009f,0x0070696d,0x00040005,0x000000a0,0x63696c73,0x00000065, + 0x000c0005,0x000000a9,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528345f,0x31753b31, + 0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000a3,0x00000078,0x00030005, + 0x000000a4,0x00000079,0x00050005,0x000000a5,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000a6,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000a7,0x0070696d,0x00040005,0x000000a8,0x63696c73,0x00000065,0x000b0005,0x000000b0, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f,0x753b3275,0x31753b31,0x3b31753b, + 0x00000000,0x00050005,0x000000ac,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x000000ad, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x000000ae, + 0x0070696d,0x00040005,0x000000af,0x63696c73,0x00000065,0x000b0005,0x000000b7,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x000000b3,0x00000078,0x00030005,0x000000b4,0x00000079,0x00040005,0x000000b5, + 0x7370696d,0x00000000,0x00040005,0x000000b6,0x63696c73,0x00000065,0x000e0005,0x000000c1, + 0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674,0x31752872,0x3b31753b,0x3b327576, + 0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x000000ba,0x00000078,0x00030005, + 0x000000bb,0x00000079,0x00050005,0x000000bc,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000bd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005, + 0x000000be,0x65736162,0x0070694d,0x00040005,0x000000bf,0x7370696d,0x00000000,0x00040005, + 0x000000c0,0x63696c73,0x00000065,0x000a0005,0x000000c9,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31,0x00050005,0x000000c4,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000c5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x000000c6,0x7370696d,0x00000000,0x00060005,0x000000c7, + 0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x000000c8,0x63696c73,0x00000065, + 0x000c0005,0x000000cf,0x706d6f43,0x4f657475,0x63697470,0x6c466c61,0x6e49776f,0x50747570, + 0x6d617279,0x76286469,0x693b3269,0x00003b31,0x00050005,0x000000cd,0x6f724769,0x64497075, + 0x00000000,0x00050005,0x000000ce,0x636f4c69,0x6e496c61,0x00786564,0x00040005,0x000000e3, + 0x61726170,0x0000006d,0x00040005,0x000000e5,0x61726170,0x0000006d,0x00040005,0x000000e6, + 0x61726170,0x0000006d,0x00040005,0x000000e9,0x61726170,0x0000006d,0x00040005,0x000000ea, + 0x61726170,0x0000006d,0x00040005,0x000000ec,0x61726170,0x0000006d,0x00040005,0x000000ee, + 0x61726170,0x0000006d,0x00040005,0x000000f0,0x61726170,0x0000006d,0x00040005,0x000000f1, + 0x61726170,0x0000006d,0x00040005,0x000000f3,0x61726170,0x0000006d,0x00040005,0x000000f5, + 0x61726170,0x0000006d,0x00040005,0x000000f6,0x61726170,0x0000006d,0x00040005,0x000000f8, + 0x61726170,0x0000006d,0x00040005,0x000000f9,0x61726170,0x0000006d,0x00040005,0x000000fa, + 0x61726170,0x0000006d,0x00050005,0x000000ff,0x464f6263,0x4450535f,0x0000745f,0x00050006, + 0x000000ff,0x00000000,0x7370696d,0x00000000,0x00070006,0x000000ff,0x00000001,0x576d756e, + 0x476b726f,0x70756f72,0x00000073,0x00070006,0x000000ff,0x00000002,0x6b726f77,0x756f7247, + 0x66664f70,0x00746573,0x000c0006,0x000000ff,0x00000003,0x576d756e,0x476b726f,0x70756f72, + 0x6974704f,0x466c6163,0x49776f6c,0x7475706e,0x61727950,0x0064696d,0x00050006,0x000000ff, + 0x00000004,0x30646170,0x0000005f,0x00050006,0x000000ff,0x00000005,0x31646170,0x0000005f, + 0x00050006,0x000000ff,0x00000006,0x32646170,0x0000005f,0x00050005,0x00000101,0x464f6263, + 0x4450535f,0x00000000,0x00080005,0x0000010a,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x75706e69,0x00000074,0x00040005,0x00000114,0x756c6176,0x00003465,0x000a0005,0x00000120, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74,0x5f6c6576,0x00000031, + 0x000a0005,0x00000125,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74, + 0x5f6c6576,0x00000032,0x000a0005,0x0000012a,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c, + 0x75706e69,0x656c5f74,0x5f6c6576,0x00000033,0x000a0005,0x0000012f,0x6f5f7772,0x63697470, + 0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74,0x5f6c6576,0x00000034,0x000a0005,0x00000134, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74,0x5f6c6576,0x00000035, + 0x000a0005,0x00000139,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69,0x656c5f74, + 0x5f6c6576,0x00000036,0x00040005,0x0000013f,0x616d756c,0x00000000,0x00040005,0x00000142, + 0x61726170,0x0000006d,0x00040005,0x0000014d,0x61726170,0x0000006d,0x00040005,0x0000014f, + 0x61726170,0x0000006d,0x00040005,0x00000151,0x61726170,0x0000006d,0x00070005,0x0000015c, + 0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005,0x00000162,0x49647073, + 0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x00000167,0x49647073,0x7265746e, + 0x6964656d,0x42657461,0x00000000,0x00070005,0x0000016c,0x49647073,0x7265746e,0x6964656d, + 0x41657461,0x00000000,0x00040005,0x00000199,0x61726170,0x0000006d,0x00030005,0x000001a3, + 0x00003076,0x00030005,0x000001a5,0x00003176,0x00030005,0x000001a8,0x00003276,0x00030005, + 0x000001ab,0x00003376,0x00040005,0x000001ae,0x61726170,0x0000006d,0x00040005,0x000001b0, + 0x61726170,0x0000006d,0x00040005,0x000001b2,0x61726170,0x0000006d,0x00040005,0x000001b4, + 0x61726170,0x0000006d,0x00030005,0x000001bb,0x00003076,0x00040005,0x000001be,0x61726170, + 0x0000006d,0x00040005,0x000001bf,0x61726170,0x0000006d,0x00030005,0x000001c2,0x00003176, + 0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005,0x000001c6,0x61726170,0x0000006d, + 0x00030005,0x000001c9,0x00003276,0x00040005,0x000001cc,0x61726170,0x0000006d,0x00040005, + 0x000001cd,0x61726170,0x0000006d,0x00030005,0x000001d0,0x00003376,0x00040005,0x000001d3, + 0x61726170,0x0000006d,0x00040005,0x000001d4,0x61726170,0x0000006d,0x00040005,0x000001d7, + 0x61726170,0x0000006d,0x00040005,0x000001d9,0x61726170,0x0000006d,0x00040005,0x000001db, + 0x61726170,0x0000006d,0x00040005,0x000001dd,0x61726170,0x0000006d,0x00040005,0x000001ee, + 0x61726170,0x0000006d,0x00040005,0x000001ef,0x61726170,0x0000006d,0x00040005,0x000001f0, + 0x61726170,0x0000006d,0x00040005,0x000001f1,0x61726170,0x0000006d,0x00040005,0x000001f2, + 0x61726170,0x0000006d,0x00030005,0x000001f7,0x00003076,0x00040005,0x000001fb,0x61726170, + 0x0000006d,0x00040005,0x000001fc,0x61726170,0x0000006d,0x00030005,0x000001ff,0x00003176, + 0x00040005,0x00000203,0x61726170,0x0000006d,0x00040005,0x00000204,0x61726170,0x0000006d, + 0x00030005,0x00000207,0x00003276,0x00040005,0x0000020b,0x61726170,0x0000006d,0x00040005, + 0x0000020c,0x61726170,0x0000006d,0x00030005,0x0000020f,0x00003376,0x00040005,0x00000213, + 0x61726170,0x0000006d,0x00040005,0x00000214,0x61726170,0x0000006d,0x00040005,0x00000217, + 0x61726170,0x0000006d,0x00040005,0x00000219,0x61726170,0x0000006d,0x00040005,0x0000021b, + 0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d,0x00040005,0x0000022a, + 0x61726170,0x0000006d,0x00040005,0x0000022b,0x61726170,0x0000006d,0x00040005,0x0000022c, + 0x61726170,0x0000006d,0x00040005,0x0000022d,0x61726170,0x0000006d,0x00040005,0x0000022e, + 0x61726170,0x0000006d,0x00030005,0x00000233,0x00786574,0x00030005,0x00000241,0x00786970, + 0x00030005,0x00000250,0x00000076,0x00040005,0x00000253,0x61726170,0x0000006d,0x00040005, + 0x00000254,0x61726170,0x0000006d,0x00040005,0x00000258,0x61726170,0x0000006d,0x00040005, + 0x0000025a,0x61726170,0x0000006d,0x00040005,0x0000025d,0x61726170,0x0000006d,0x00040005, + 0x0000025e,0x61726170,0x0000006d,0x00040005,0x0000027c,0x61726170,0x0000006d,0x00040005, + 0x0000027d,0x61726170,0x0000006d,0x00040005,0x00000281,0x61726170,0x0000006d,0x00040005, + 0x00000283,0x61726170,0x0000006d,0x00040005,0x00000286,0x61726170,0x0000006d,0x00040005, + 0x00000287,0x61726170,0x0000006d,0x00040005,0x000002a5,0x61726170,0x0000006d,0x00040005, + 0x000002a6,0x61726170,0x0000006d,0x00040005,0x000002aa,0x61726170,0x0000006d,0x00040005, + 0x000002ac,0x61726170,0x0000006d,0x00040005,0x000002af,0x61726170,0x0000006d,0x00040005, + 0x000002b0,0x61726170,0x0000006d,0x00040005,0x000002cf,0x61726170,0x0000006d,0x00040005, + 0x000002d0,0x61726170,0x0000006d,0x00040005,0x000002d4,0x61726170,0x0000006d,0x00040005, + 0x000002d6,0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005, + 0x000002da,0x61726170,0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005, + 0x000002e7,0x61726170,0x0000006d,0x00040005,0x000002ec,0x61726170,0x0000006d,0x00040005, + 0x000002f1,0x61726170,0x0000006d,0x00040005,0x00000307,0x61726170,0x0000006d,0x00040005, + 0x00000308,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170,0x0000006d,0x00040005, + 0x0000030c,0x61726170,0x0000006d,0x00040005,0x00000313,0x61726170,0x0000006d,0x00040005, + 0x00000314,0x61726170,0x0000006d,0x00040005,0x00000315,0x61726170,0x0000006d,0x00040005, + 0x00000327,0x61726170,0x0000006d,0x00040005,0x00000328,0x61726170,0x0000006d,0x00040005, + 0x0000032b,0x61726170,0x0000006d,0x00040005,0x0000032c,0x61726170,0x0000006d,0x00040005, + 0x00000334,0x61726170,0x0000006d,0x00040005,0x00000335,0x61726170,0x0000006d,0x00040005, + 0x00000336,0x61726170,0x0000006d,0x00040005,0x00000347,0x61726170,0x0000006d,0x00040005, + 0x00000348,0x61726170,0x0000006d,0x00040005,0x0000034b,0x61726170,0x0000006d,0x00040005, + 0x0000034c,0x61726170,0x0000006d,0x00040005,0x00000354,0x61726170,0x0000006d,0x00040005, + 0x00000355,0x61726170,0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d,0x00040005, + 0x00000368,0x61726170,0x0000006d,0x00040005,0x00000369,0x61726170,0x0000006d,0x00040005, + 0x0000036c,0x61726170,0x0000006d,0x00040005,0x0000036d,0x61726170,0x0000006d,0x00040005, + 0x00000376,0x61726170,0x0000006d,0x00040005,0x00000377,0x61726170,0x0000006d,0x00040005, + 0x00000378,0x61726170,0x0000006d,0x00040005,0x0000037c,0x61726170,0x0000006d,0x00040005, + 0x0000037e,0x61726170,0x0000006d,0x00040005,0x00000380,0x61726170,0x0000006d,0x00040005, + 0x00000382,0x61726170,0x0000006d,0x00040005,0x00000384,0x61726170,0x0000006d,0x00040005, + 0x00000386,0x61726170,0x0000006d,0x00030005,0x00000389,0x00000076,0x00040005,0x0000038a, + 0x61726170,0x0000006d,0x00040005,0x0000038c,0x61726170,0x0000006d,0x00040005,0x0000038f, + 0x61726170,0x0000006d,0x00040005,0x000003a3,0x61726170,0x0000006d,0x00040005,0x000003a4, + 0x61726170,0x0000006d,0x00040005,0x000003a6,0x61726170,0x0000006d,0x00040005,0x000003a8, + 0x61726170,0x0000006d,0x00040005,0x000003b0,0x61726170,0x0000006d,0x00040005,0x000003b1, + 0x61726170,0x0000006d,0x00040005,0x000003b3,0x61726170,0x0000006d,0x00030005,0x000003ba, + 0x00000076,0x00040005,0x000003c2,0x61726170,0x0000006d,0x00040005,0x000003c3,0x61726170, + 0x0000006d,0x00040005,0x000003c5,0x61726170,0x0000006d,0x00040005,0x000003d9,0x61726170, + 0x0000006d,0x00040005,0x000003da,0x61726170,0x0000006d,0x00040005,0x000003dc,0x61726170, + 0x0000006d,0x00040005,0x000003de,0x61726170,0x0000006d,0x00040005,0x000003e8,0x61726170, + 0x0000006d,0x00040005,0x000003e9,0x61726170,0x0000006d,0x00040005,0x000003ea,0x61726170, + 0x0000006d,0x00030005,0x000003f1,0x00000076,0x00040005,0x000003f8,0x61726170,0x0000006d, + 0x00040005,0x000003f9,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170,0x0000006d, + 0x00040005,0x0000040f,0x61726170,0x0000006d,0x00040005,0x00000410,0x61726170,0x0000006d, + 0x00040005,0x00000412,0x61726170,0x0000006d,0x00040005,0x00000414,0x61726170,0x0000006d, + 0x00040005,0x0000041b,0x61726170,0x0000006d,0x00040005,0x0000041c,0x61726170,0x0000006d, + 0x00040005,0x0000041d,0x61726170,0x0000006d,0x00030005,0x00000424,0x00000076,0x00040005, + 0x00000425,0x61726170,0x0000006d,0x00040005,0x00000427,0x61726170,0x0000006d,0x00040005, + 0x00000429,0x61726170,0x0000006d,0x00040005,0x00000433,0x61726170,0x0000006d,0x00040005, + 0x00000434,0x61726170,0x0000006d,0x00040005,0x00000436,0x61726170,0x0000006d,0x00040005, + 0x00000438,0x61726170,0x0000006d,0x00030005,0x0000043b,0x00786574,0x00030005,0x00000445, + 0x00786970,0x00030005,0x0000044f,0x00003076,0x00040005,0x00000452,0x61726170,0x0000006d, + 0x00040005,0x00000453,0x61726170,0x0000006d,0x00040005,0x00000457,0x61726170,0x0000006d, + 0x00040005,0x00000459,0x61726170,0x0000006d,0x00040005,0x0000045b,0x61726170,0x0000006d, + 0x00040005,0x0000045c,0x61726170,0x0000006d,0x00030005,0x00000471,0x00003176,0x00040005, + 0x00000474,0x61726170,0x0000006d,0x00040005,0x00000475,0x61726170,0x0000006d,0x00040005, + 0x00000478,0x61726170,0x0000006d,0x00040005,0x0000047a,0x61726170,0x0000006d,0x00040005, + 0x0000047c,0x61726170,0x0000006d,0x00040005,0x0000047d,0x61726170,0x0000006d,0x00030005, + 0x00000492,0x00003276,0x00040005,0x00000495,0x61726170,0x0000006d,0x00040005,0x00000496, + 0x61726170,0x0000006d,0x00040005,0x00000499,0x61726170,0x0000006d,0x00040005,0x0000049b, + 0x61726170,0x0000006d,0x00040005,0x0000049d,0x61726170,0x0000006d,0x00040005,0x0000049e, + 0x61726170,0x0000006d,0x00030005,0x000004b3,0x00003376,0x00040005,0x000004b6,0x61726170, + 0x0000006d,0x00040005,0x000004b7,0x61726170,0x0000006d,0x00040005,0x000004ba,0x61726170, + 0x0000006d,0x00040005,0x000004bc,0x61726170,0x0000006d,0x00040005,0x000004be,0x61726170, + 0x0000006d,0x00040005,0x000004bf,0x61726170,0x0000006d,0x00030005,0x000004c8,0x00000076, + 0x00040005,0x000004c9,0x61726170,0x0000006d,0x00040005,0x000004cb,0x61726170,0x0000006d, + 0x00040005,0x000004cd,0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170,0x0000006d, + 0x00040005,0x000004d7,0x61726170,0x0000006d,0x00040005,0x000004d8,0x61726170,0x0000006d, + 0x00040005,0x000004da,0x61726170,0x0000006d,0x00040005,0x000004db,0x61726170,0x0000006d, + 0x00040005,0x000004de,0x61726170,0x0000006d,0x00040005,0x000004e0,0x61726170,0x0000006d, + 0x00040005,0x000004e2,0x61726170,0x0000006d,0x00040005,0x000004ec,0x61726170,0x0000006d, + 0x00040005,0x000004ee,0x61726170,0x0000006d,0x00040005,0x000004f0,0x61726170,0x0000006d, + 0x00040005,0x000004f2,0x61726170,0x0000006d,0x00040005,0x000004f4,0x61726170,0x0000006d, + 0x00040005,0x000004f6,0x61726170,0x0000006d,0x00040005,0x00000503,0x61726170,0x0000006d, + 0x00040005,0x00000505,0x61726170,0x0000006d,0x00040005,0x00000507,0x61726170,0x0000006d, + 0x00040005,0x00000509,0x61726170,0x0000006d,0x00040005,0x0000050b,0x61726170,0x0000006d, + 0x00040005,0x0000050c,0x61726170,0x0000006d,0x00040005,0x00000519,0x61726170,0x0000006d, + 0x00040005,0x0000051b,0x61726170,0x0000006d,0x00040005,0x0000051d,0x61726170,0x0000006d, + 0x00040005,0x0000051f,0x61726170,0x0000006d,0x00040005,0x00000521,0x61726170,0x0000006d, + 0x00040005,0x00000522,0x61726170,0x0000006d,0x00040005,0x0000052f,0x61726170,0x0000006d, + 0x00040005,0x00000531,0x61726170,0x0000006d,0x00040005,0x00000533,0x61726170,0x0000006d, + 0x00040005,0x00000534,0x61726170,0x0000006d,0x00040005,0x00000537,0x5f627573,0x00007978, + 0x00040005,0x0000053a,0x61726170,0x0000006d,0x00030005,0x0000053c,0x00000078,0x00030005, + 0x00000545,0x00000079,0x00040005,0x0000054d,0x61726170,0x0000006d,0x00040005,0x0000054f, + 0x61726170,0x0000006d,0x00040005,0x00000551,0x61726170,0x0000006d,0x00040005,0x00000553, + 0x61726170,0x0000006d,0x00040005,0x00000555,0x61726170,0x0000006d,0x00040005,0x00000557, + 0x61726170,0x0000006d,0x00040005,0x0000055a,0x61726170,0x0000006d,0x00040005,0x0000055c, + 0x61726170,0x0000006d,0x00040005,0x0000055e,0x61726170,0x0000006d,0x00040005,0x00000560, + 0x61726170,0x0000006d,0x00040005,0x00000562,0x61726170,0x0000006d,0x00040005,0x00000563, + 0x61726170,0x0000006d,0x00040005,0x00000565,0x61726170,0x0000006d,0x00040005,0x0000056d, + 0x61726170,0x0000006d,0x00040005,0x0000056f,0x61726170,0x0000006d,0x00040005,0x00000571, + 0x61726170,0x0000006d,0x00040005,0x00000577,0x61726170,0x0000006d,0x00040005,0x0000057a, + 0x61726170,0x0000006d,0x00040005,0x0000057c,0x61726170,0x0000006d,0x00040005,0x0000057e, + 0x61726170,0x0000006d,0x00040005,0x00000580,0x61726170,0x0000006d,0x00040005,0x00000583, + 0x61726170,0x0000006d,0x00040005,0x00000585,0x61726170,0x0000006d,0x00040005,0x00000587, + 0x61726170,0x0000006d,0x00040005,0x00000588,0x61726170,0x0000006d,0x00040005,0x0000058a, + 0x61726170,0x0000006d,0x00040005,0x0000058b,0x61726170,0x0000006d,0x00040005,0x0000058d, + 0x61726170,0x0000006d,0x00040005,0x00000595,0x61726170,0x0000006d,0x00040005,0x00000596, + 0x61726170,0x0000006d,0x00040005,0x00000597,0x61726170,0x0000006d,0x00040005,0x00000598, + 0x61726170,0x0000006d,0x00040005,0x00000599,0x61726170,0x0000006d,0x00060005,0x0000059d, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x000005a2,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x000005a5,0x61726170,0x0000006d, + 0x00040005,0x000005a6,0x61726170,0x0000006d,0x00040005,0x000005ab,0x464f6263,0x0000745f, + 0x00090006,0x000005ab,0x00000000,0x706e4969,0x754c7475,0x6552616d,0x756c6f73,0x6e6f6974, + 0x00000000,0x000a0006,0x000005ab,0x00000001,0x74704f75,0x6c616369,0x776f6c46,0x61727950, + 0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x000005ab,0x00000002,0x74704f75,0x6c616369, + 0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43,0x00000074,0x00060006,0x000005ab, + 0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006,0x000005ab,0x00000004,0x6b636162, + 0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000005ab, + 0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00040005,0x000005ad,0x464f6263, + 0x00000000,0x00030047,0x000000ff,0x00000002,0x00050048,0x000000ff,0x00000000,0x00000023, + 0x00000000,0x00050048,0x000000ff,0x00000001,0x00000023,0x00000004,0x00050048,0x000000ff, + 0x00000002,0x00000023,0x00000008,0x00050048,0x000000ff,0x00000003,0x00000023,0x00000010, + 0x00050048,0x000000ff,0x00000004,0x00000023,0x00000014,0x00050048,0x000000ff,0x00000005, + 0x00000023,0x00000018,0x00050048,0x000000ff,0x00000006,0x00000023,0x0000001c,0x00040047, + 0x00000101,0x00000021,0x00000008,0x00040047,0x00000101,0x00000022,0x00000000,0x00040047, + 0x0000010a,0x00000021,0x00000000,0x00040047,0x0000010a,0x00000022,0x00000000,0x00040047, + 0x00000120,0x00000021,0x00000001,0x00040047,0x00000120,0x00000022,0x00000000,0x00040047, + 0x00000125,0x00000021,0x00000002,0x00040047,0x00000125,0x00000022,0x00000000,0x00040047, + 0x0000012a,0x00000021,0x00000003,0x00040047,0x0000012a,0x00000022,0x00000000,0x00040047, + 0x0000012f,0x00000021,0x00000004,0x00040047,0x0000012f,0x00000022,0x00000000,0x00040047, + 0x00000134,0x00000021,0x00000005,0x00040047,0x00000134,0x00000022,0x00000000,0x00040047, + 0x00000139,0x00000021,0x00000006,0x00040047,0x00000139,0x00000022,0x00000000,0x00040047, + 0x0000059d,0x0000000b,0x0000001a,0x00040047,0x000005a2,0x0000000b,0x0000001d,0x00030047, + 0x000005ab,0x00000002,0x00050048,0x000005ab,0x00000000,0x00000023,0x00000000,0x00050048, + 0x000005ab,0x00000001,0x00000023,0x00000008,0x00050048,0x000005ab,0x00000002,0x00000023, + 0x0000000c,0x00050048,0x000005ab,0x00000003,0x00000023,0x00000010,0x00050048,0x000005ab, + 0x00000004,0x00000023,0x00000014,0x00050048,0x000005ab,0x00000005,0x00000023,0x00000018, + 0x00040047,0x000005ad,0x00000021,0x00000007,0x00040047,0x000005ad,0x00000022,0x00000000, + 0x00040047,0x000005af,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00040017, + 0x00000013,0x00000006,0x00000002,0x00040021,0x00000014,0x00000013,0x00000007,0x00030021, + 0x00000018,0x00000006,0x00040015,0x0000001b,0x00000020,0x00000001,0x00040017,0x0000001c, + 0x0000001b,0x00000002,0x00040020,0x0000001d,0x00000007,0x0000001c,0x00040021,0x0000001e, + 0x00000006,0x0000001d,0x00030016,0x00000022,0x00000020,0x00040020,0x00000023,0x00000007, + 0x00000022,0x00060021,0x00000024,0x00000002,0x0000001d,0x00000007,0x00000023,0x00040017, + 0x0000002c,0x00000022,0x00000002,0x00040020,0x0000002d,0x00000007,0x0000002c,0x00040017, + 0x0000002e,0x00000022,0x00000004,0x00050021,0x0000002f,0x0000002e,0x0000002d,0x00000007, + 0x00050021,0x00000034,0x0000002e,0x0000001d,0x00000007,0x00040020,0x00000039,0x00000007, + 0x0000002e,0x00070021,0x0000003a,0x00000002,0x0000001d,0x00000039,0x00000007,0x00000007, + 0x00040021,0x00000041,0x00000002,0x00000007,0x00050021,0x0000004a,0x0000002e,0x00000007, + 0x00000007,0x00060021,0x0000004f,0x00000002,0x00000007,0x00000007,0x00000039,0x00070021, + 0x00000055,0x0000002e,0x00000039,0x00000039,0x00000039,0x00000039,0x00020014,0x0000005e, + 0x00060021,0x0000005f,0x0000005e,0x00000007,0x00000007,0x00000007,0x00040021,0x00000065, + 0x0000002e,0x00000039,0x00040020,0x00000069,0x00000007,0x00000013,0x00080021,0x0000006a, + 0x0000002e,0x00000069,0x00000069,0x00000069,0x00000069,0x00000007,0x00050021,0x00000072, + 0x0000002e,0x00000069,0x00000007,0x00090021,0x00000082,0x00000002,0x00000007,0x00000007, + 0x00000069,0x00000007,0x00000007,0x00000007,0x00070021,0x000000ab,0x00000002,0x00000069, + 0x00000007,0x00000007,0x00000007,0x00070021,0x000000b2,0x00000002,0x00000007,0x00000007, + 0x00000007,0x00000007,0x000a0021,0x000000b9,0x00000002,0x00000007,0x00000007,0x00000069, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00080021,0x000000c3,0x00000002,0x00000069, + 0x00000007,0x00000007,0x00000007,0x00000007,0x00040020,0x000000cb,0x00000007,0x0000001b, + 0x00050021,0x000000cc,0x00000002,0x0000001d,0x000000cb,0x0004002b,0x0000001b,0x000000db, + 0x00000000,0x0004002b,0x00000006,0x000000e1,0x00000002,0x0004002b,0x00000006,0x000000e2, + 0x00000003,0x0004002b,0x00000006,0x000000e8,0x00000001,0x0009001e,0x000000ff,0x00000006, + 0x00000006,0x00000013,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000100, + 0x00000002,0x000000ff,0x0004003b,0x00000100,0x00000101,0x00000002,0x0004002b,0x0000001b, + 0x00000102,0x00000003,0x00040020,0x00000103,0x00000002,0x00000006,0x00090019,0x00000108, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000027,0x00040020, + 0x00000109,0x00000000,0x00000108,0x0004003b,0x00000109,0x0000010a,0x00000000,0x00040017, + 0x0000010d,0x00000006,0x00000004,0x0004002b,0x00000006,0x0000010f,0x00000000,0x00040020, + 0x00000113,0x00000007,0x0000010d,0x0004003b,0x00000109,0x00000120,0x00000000,0x0004003b, + 0x00000109,0x00000125,0x00000000,0x0004003b,0x00000109,0x0000012a,0x00000000,0x0004003b, + 0x00000109,0x0000012f,0x00000000,0x0004003b,0x00000109,0x00000134,0x00000000,0x0004003b, + 0x00000109,0x00000139,0x00000000,0x0004002b,0x00000022,0x00000146,0x00000000,0x0007002c, + 0x0000002e,0x0000014a,0x00000146,0x00000146,0x00000146,0x00000146,0x0004002b,0x00000006, + 0x00000158,0x00000010,0x0004001c,0x00000159,0x00000022,0x00000158,0x0004001c,0x0000015a, + 0x00000159,0x00000158,0x00040020,0x0000015b,0x00000004,0x0000015a,0x0004003b,0x0000015b, + 0x0000015c,0x00000004,0x00040020,0x0000015f,0x00000004,0x00000022,0x0004003b,0x0000015b, + 0x00000162,0x00000004,0x0004003b,0x0000015b,0x00000167,0x00000004,0x0004003b,0x0000015b, + 0x0000016c,0x00000004,0x0004002b,0x00000022,0x0000018f,0x3e800000,0x0004002b,0x00000006, + 0x00000193,0x00000d48,0x0004002b,0x00000006,0x00000194,0x00000108,0x0005002c,0x00000013, + 0x000001e3,0x0000010f,0x0000010f,0x0005002c,0x00000013,0x000001e6,0x0000010f,0x000000e8, + 0x0005002c,0x00000013,0x000001e9,0x000000e8,0x0000010f,0x0005002c,0x00000013,0x000001ec, + 0x000000e8,0x000000e8,0x0004002b,0x00000006,0x00000235,0x00000040,0x0004002b,0x00000006, + 0x00000243,0x00000020,0x0004002b,0x00000006,0x0000024d,0x00000004,0x0004001c,0x0000024e, + 0x0000002e,0x0000024d,0x00040020,0x0000024f,0x00000007,0x0000024e,0x0004002b,0x0000001b, + 0x00000279,0x00000001,0x0004002b,0x0000001b,0x000002a2,0x00000002,0x0004002b,0x00000006, + 0x0000031f,0x00000008,0x0004002b,0x00000006,0x00000456,0x00000006,0x0004002b,0x00000006, + 0x000004c3,0x00000007,0x0004002b,0x0000001b,0x00000540,0x00000006,0x0004002b,0x0000001b, + 0x00000549,0x00000007,0x00040017,0x0000059b,0x00000006,0x00000003,0x00040020,0x0000059c, + 0x00000001,0x0000059b,0x0004003b,0x0000059c,0x0000059d,0x00000001,0x00040020,0x000005a1, + 0x00000001,0x00000006,0x0004003b,0x000005a1,0x000005a2,0x00000001,0x0004002b,0x00000022, + 0x000005a8,0x387fda40,0x0004002b,0x00000022,0x000005a9,0x477fe000,0x0004002b,0x00000022, + 0x000005aa,0x37801002,0x0008001e,0x000005ab,0x0000001c,0x00000006,0x00000006,0x00000006, + 0x00000006,0x0000002c,0x00040020,0x000005ac,0x00000002,0x000005ab,0x0004003b,0x000005ac, + 0x000005ad,0x00000002,0x0004002b,0x00000006,0x000005ae,0x00000100,0x0006002c,0x0000059b, + 0x000005af,0x000005ae,0x000000e8,0x000000e8,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000001d,0x000005a5,0x00000007,0x0004003b, + 0x000000cb,0x000005a6,0x00000007,0x0004003d,0x0000059b,0x0000059e,0x0000059d,0x0007004f, + 0x00000013,0x0000059f,0x0000059e,0x0000059e,0x00000000,0x00000001,0x0004007c,0x0000001c, + 0x000005a0,0x0000059f,0x0004003d,0x00000006,0x000005a3,0x000005a2,0x0004007c,0x0000001b, + 0x000005a4,0x000005a3,0x0003003e,0x000005a5,0x000005a0,0x0003003e,0x000005a6,0x000005a4, + 0x00060039,0x00000002,0x000005a7,0x000000cf,0x000005a5,0x000005a6,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d, + 0x0004003d,0x00000006,0x000000d1,0x00000009,0x0004003d,0x00000006,0x000000d2,0x0000000a, + 0x0004007c,0x0000001b,0x000000d3,0x000000d2,0x0004003d,0x00000006,0x000000d4,0x0000000b, + 0x0004007c,0x0000001b,0x000000d5,0x000000d4,0x000600cb,0x00000006,0x000000d6,0x000000d1, + 0x000000d3,0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000006,0x00000011, + 0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000006,0x000000d9, + 0x0000000e,0x0004003d,0x00000006,0x000000da,0x0000000f,0x0004003d,0x00000006,0x000000dc, + 0x00000010,0x0004007c,0x0000001b,0x000000dd,0x000000dc,0x000700c9,0x00000006,0x000000de, + 0x000000d9,0x000000da,0x000000db,0x000000dd,0x000200fe,0x000000de,0x00010038,0x00050036, + 0x00000013,0x00000016,0x00000000,0x00000014,0x00030037,0x00000007,0x00000015,0x000200f8, + 0x00000017,0x0004003b,0x00000007,0x000000e3,0x00000007,0x0004003b,0x00000007,0x000000e5, + 0x00000007,0x0004003b,0x00000007,0x000000e6,0x00000007,0x0004003b,0x00000007,0x000000e9, + 0x00000007,0x0004003b,0x00000007,0x000000ea,0x00000007,0x0004003b,0x00000007,0x000000ec, + 0x00000007,0x0004003b,0x00000007,0x000000ee,0x00000007,0x0004003b,0x00000007,0x000000f0, + 0x00000007,0x0004003b,0x00000007,0x000000f1,0x00000007,0x0004003b,0x00000007,0x000000f3, + 0x00000007,0x0004003b,0x00000007,0x000000f5,0x00000007,0x0004003b,0x00000007,0x000000f6, + 0x00000007,0x0004003b,0x00000007,0x000000f8,0x00000007,0x0004003b,0x00000007,0x000000f9, + 0x00000007,0x0004003b,0x00000007,0x000000fa,0x00000007,0x0004003d,0x00000006,0x000000e4, + 0x00000015,0x0003003e,0x000000e3,0x000000e4,0x0003003e,0x000000e5,0x000000e1,0x0003003e, + 0x000000e6,0x000000e2,0x00070039,0x00000006,0x000000e7,0x0000000c,0x000000e3,0x000000e5, + 0x000000e6,0x0003003e,0x000000e9,0x000000e7,0x0004003d,0x00000006,0x000000eb,0x00000015, + 0x0003003e,0x000000ea,0x000000eb,0x0003003e,0x000000ec,0x000000e8,0x00070039,0x00000006, + 0x000000ed,0x00000011,0x000000e9,0x000000ea,0x000000ec,0x0004003d,0x00000006,0x000000ef, + 0x00000015,0x0003003e,0x000000ee,0x000000ef,0x0003003e,0x000000f0,0x000000e2,0x0003003e, + 0x000000f1,0x000000e2,0x00070039,0x00000006,0x000000f2,0x0000000c,0x000000ee,0x000000f0, + 0x000000f1,0x0004003d,0x00000006,0x000000f4,0x00000015,0x0003003e,0x000000f3,0x000000f4, + 0x0003003e,0x000000f5,0x000000e8,0x0003003e,0x000000f6,0x000000e1,0x00070039,0x00000006, + 0x000000f7,0x0000000c,0x000000f3,0x000000f5,0x000000f6,0x0003003e,0x000000f8,0x000000f2, + 0x0003003e,0x000000f9,0x000000f7,0x0003003e,0x000000fa,0x000000e1,0x00070039,0x00000006, + 0x000000fb,0x00000011,0x000000f8,0x000000f9,0x000000fa,0x00050050,0x00000013,0x000000fc, + 0x000000ed,0x000000fb,0x000200fe,0x000000fc,0x00010038,0x00050036,0x00000006,0x00000019, + 0x00000000,0x00000018,0x000200f8,0x0000001a,0x00050041,0x00000103,0x00000104,0x00000101, + 0x00000102,0x0004003d,0x00000006,0x00000105,0x00000104,0x000200fe,0x00000105,0x00010038, + 0x00050036,0x00000006,0x00000020,0x00000000,0x0000001e,0x00030037,0x0000001d,0x0000001f, + 0x000200f8,0x00000021,0x0004003d,0x00000108,0x0000010b,0x0000010a,0x0004003d,0x0000001c, + 0x0000010c,0x0000001f,0x00050062,0x0000010d,0x0000010e,0x0000010b,0x0000010c,0x00050051, + 0x00000006,0x00000110,0x0000010e,0x00000000,0x000200fe,0x00000110,0x00010038,0x00050036, + 0x00000002,0x00000028,0x00000000,0x00000024,0x00030037,0x0000001d,0x00000025,0x00030037, + 0x00000007,0x00000026,0x00030037,0x00000023,0x00000027,0x000200f8,0x00000029,0x0004003b, + 0x00000113,0x00000114,0x00000007,0x0004003d,0x00000022,0x00000115,0x00000027,0x0004006d, + 0x00000006,0x00000116,0x00000115,0x00070050,0x0000010d,0x00000117,0x00000116,0x0000010f, + 0x0000010f,0x0000010f,0x0003003e,0x00000114,0x00000117,0x0004003d,0x00000006,0x00000118, + 0x00000026,0x000300f7,0x0000011f,0x00000000,0x000f00fb,0x00000118,0x0000011f,0x00000000, + 0x00000119,0x00000001,0x0000011a,0x00000002,0x0000011b,0x00000003,0x0000011c,0x00000004, + 0x0000011d,0x00000005,0x0000011e,0x000200f8,0x00000119,0x0004003d,0x00000108,0x00000121, + 0x00000120,0x0004003d,0x0000001c,0x00000122,0x00000025,0x0004003d,0x0000010d,0x00000123, + 0x00000114,0x00040063,0x00000121,0x00000122,0x00000123,0x000200f9,0x0000011f,0x000200f8, + 0x0000011a,0x0004003d,0x00000108,0x00000126,0x00000125,0x0004003d,0x0000001c,0x00000127, + 0x00000025,0x0004003d,0x0000010d,0x00000128,0x00000114,0x00040063,0x00000126,0x00000127, + 0x00000128,0x000200f9,0x0000011f,0x000200f8,0x0000011b,0x0004003d,0x00000108,0x0000012b, + 0x0000012a,0x0004003d,0x0000001c,0x0000012c,0x00000025,0x0004003d,0x0000010d,0x0000012d, + 0x00000114,0x00040063,0x0000012b,0x0000012c,0x0000012d,0x000200f9,0x0000011f,0x000200f8, + 0x0000011c,0x0004003d,0x00000108,0x00000130,0x0000012f,0x0004003d,0x0000001c,0x00000131, + 0x00000025,0x0004003d,0x0000010d,0x00000132,0x00000114,0x00040063,0x00000130,0x00000131, + 0x00000132,0x000200f9,0x0000011f,0x000200f8,0x0000011d,0x0004003d,0x00000108,0x00000135, + 0x00000134,0x0004003d,0x0000001c,0x00000136,0x00000025,0x0004003d,0x0000010d,0x00000137, + 0x00000114,0x00040063,0x00000135,0x00000136,0x00000137,0x000200f9,0x0000011f,0x000200f8, + 0x0000011e,0x0004003d,0x00000108,0x0000013a,0x00000139,0x0004003d,0x0000001c,0x0000013b, + 0x00000025,0x0004003d,0x0000010d,0x0000013c,0x00000114,0x00040063,0x0000013a,0x0000013b, + 0x0000013c,0x000200f9,0x0000011f,0x000200f8,0x0000011f,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x0000002a,0x00000000,0x00000003,0x000200f8,0x0000002b,0x000100fd,0x00010038, + 0x00050036,0x0000002e,0x00000032,0x00000000,0x0000002f,0x00030037,0x0000002d,0x00000030, + 0x00030037,0x00000007,0x00000031,0x000200f8,0x00000033,0x0004003b,0x00000023,0x0000013f, + 0x00000007,0x0004003b,0x0000001d,0x00000142,0x00000007,0x0004003d,0x0000002c,0x00000140, + 0x00000030,0x0004006e,0x0000001c,0x00000141,0x00000140,0x0003003e,0x00000142,0x00000141, + 0x00050039,0x00000006,0x00000143,0x00000020,0x00000142,0x00040070,0x00000022,0x00000144, + 0x00000143,0x0003003e,0x0000013f,0x00000144,0x0004003d,0x00000022,0x00000145,0x0000013f, + 0x00070050,0x0000002e,0x00000147,0x00000145,0x00000146,0x00000146,0x00000146,0x000200fe, + 0x00000147,0x00010038,0x00050036,0x0000002e,0x00000037,0x00000000,0x00000034,0x00030037, + 0x0000001d,0x00000035,0x00030037,0x00000007,0x00000036,0x000200f8,0x00000038,0x000200fe, + 0x0000014a,0x00010038,0x00050036,0x00000002,0x0000003f,0x00000000,0x0000003a,0x00030037, + 0x0000001d,0x0000003b,0x00030037,0x00000039,0x0000003c,0x00030037,0x00000007,0x0000003d, + 0x00030037,0x00000007,0x0000003e,0x000200f8,0x00000040,0x0004003b,0x0000001d,0x0000014d, + 0x00000007,0x0004003b,0x00000007,0x0000014f,0x00000007,0x0004003b,0x00000023,0x00000151, + 0x00000007,0x0004003d,0x0000001c,0x0000014e,0x0000003b,0x0003003e,0x0000014d,0x0000014e, + 0x0004003d,0x00000006,0x00000150,0x0000003d,0x0003003e,0x0000014f,0x00000150,0x00050041, + 0x00000023,0x00000152,0x0000003c,0x0000010f,0x0004003d,0x00000022,0x00000153,0x00000152, + 0x0003003e,0x00000151,0x00000153,0x00070039,0x00000002,0x00000154,0x00000028,0x0000014d, + 0x0000014f,0x00000151,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000043,0x00000000, + 0x00000041,0x00030037,0x00000007,0x00000042,0x000200f8,0x00000044,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x00000045,0x00000000,0x00000018,0x000200f8,0x00000046,0x000200fe, + 0x0000010f,0x00010038,0x00050036,0x00000002,0x00000048,0x00000000,0x00000041,0x00030037, + 0x00000007,0x00000047,0x000200f8,0x00000049,0x00040039,0x00000002,0x00000157,0x0000002a, + 0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000004d,0x00000000,0x0000004a,0x00030037, + 0x00000007,0x0000004b,0x00030037,0x00000007,0x0000004c,0x000200f8,0x0000004e,0x0004003d, + 0x00000006,0x0000015d,0x0000004b,0x0004003d,0x00000006,0x0000015e,0x0000004c,0x00060041, + 0x0000015f,0x00000160,0x0000015c,0x0000015d,0x0000015e,0x0004003d,0x00000022,0x00000161, + 0x00000160,0x0004003d,0x00000006,0x00000163,0x0000004b,0x0004003d,0x00000006,0x00000164, + 0x0000004c,0x00060041,0x0000015f,0x00000165,0x00000162,0x00000163,0x00000164,0x0004003d, + 0x00000022,0x00000166,0x00000165,0x0004003d,0x00000006,0x00000168,0x0000004b,0x0004003d, + 0x00000006,0x00000169,0x0000004c,0x00060041,0x0000015f,0x0000016a,0x00000167,0x00000168, + 0x00000169,0x0004003d,0x00000022,0x0000016b,0x0000016a,0x0004003d,0x00000006,0x0000016d, + 0x0000004b,0x0004003d,0x00000006,0x0000016e,0x0000004c,0x00060041,0x0000015f,0x0000016f, + 0x0000016c,0x0000016d,0x0000016e,0x0004003d,0x00000022,0x00000170,0x0000016f,0x00070050, + 0x0000002e,0x00000171,0x00000161,0x00000166,0x0000016b,0x00000170,0x000200fe,0x00000171, + 0x00010038,0x00050036,0x00000002,0x00000053,0x00000000,0x0000004f,0x00030037,0x00000007, + 0x00000050,0x00030037,0x00000007,0x00000051,0x00030037,0x00000039,0x00000052,0x000200f8, + 0x00000054,0x0004003d,0x00000006,0x00000174,0x00000050,0x0004003d,0x00000006,0x00000175, + 0x00000051,0x00050041,0x00000023,0x00000176,0x00000052,0x0000010f,0x0004003d,0x00000022, + 0x00000177,0x00000176,0x00060041,0x0000015f,0x00000178,0x0000015c,0x00000174,0x00000175, + 0x0003003e,0x00000178,0x00000177,0x0004003d,0x00000006,0x00000179,0x00000050,0x0004003d, + 0x00000006,0x0000017a,0x00000051,0x00050041,0x00000023,0x0000017b,0x00000052,0x000000e8, + 0x0004003d,0x00000022,0x0000017c,0x0000017b,0x00060041,0x0000015f,0x0000017d,0x00000162, + 0x00000179,0x0000017a,0x0003003e,0x0000017d,0x0000017c,0x0004003d,0x00000006,0x0000017e, + 0x00000050,0x0004003d,0x00000006,0x0000017f,0x00000051,0x00050041,0x00000023,0x00000180, + 0x00000052,0x000000e1,0x0004003d,0x00000022,0x00000181,0x00000180,0x00060041,0x0000015f, + 0x00000182,0x00000167,0x0000017e,0x0000017f,0x0003003e,0x00000182,0x00000181,0x0004003d, + 0x00000006,0x00000183,0x00000050,0x0004003d,0x00000006,0x00000184,0x00000051,0x00050041, + 0x00000023,0x00000185,0x00000052,0x000000e2,0x0004003d,0x00000022,0x00000186,0x00000185, + 0x00060041,0x0000015f,0x00000187,0x0000016c,0x00000183,0x00000184,0x0003003e,0x00000187, + 0x00000186,0x000100fd,0x00010038,0x00050036,0x0000002e,0x0000005a,0x00000000,0x00000055, + 0x00030037,0x00000039,0x00000056,0x00030037,0x00000039,0x00000057,0x00030037,0x00000039, + 0x00000058,0x00030037,0x00000039,0x00000059,0x000200f8,0x0000005b,0x0004003d,0x0000002e, + 0x00000188,0x00000056,0x0004003d,0x0000002e,0x00000189,0x00000057,0x00050081,0x0000002e, + 0x0000018a,0x00000188,0x00000189,0x0004003d,0x0000002e,0x0000018b,0x00000058,0x00050081, + 0x0000002e,0x0000018c,0x0000018a,0x0000018b,0x0004003d,0x0000002e,0x0000018d,0x00000059, + 0x00050081,0x0000002e,0x0000018e,0x0000018c,0x0000018d,0x0005008e,0x0000002e,0x00000190, + 0x0000018e,0x0000018f,0x000200fe,0x00000190,0x00010038,0x00050036,0x00000002,0x0000005c, + 0x00000000,0x00000003,0x000200f8,0x0000005d,0x000300e1,0x000000e1,0x00000193,0x000400e0, + 0x000000e1,0x000000e1,0x00000194,0x000100fd,0x00010038,0x00050036,0x0000005e,0x00000063, + 0x00000000,0x0000005f,0x00030037,0x00000007,0x00000060,0x00030037,0x00000007,0x00000061, + 0x00030037,0x00000007,0x00000062,0x000200f8,0x00000064,0x0004003b,0x00000007,0x00000199, + 0x00000007,0x0004003d,0x00000006,0x00000195,0x00000061,0x000500aa,0x0000005e,0x00000196, + 0x00000195,0x0000010f,0x000300f7,0x00000198,0x00000000,0x000400fa,0x00000196,0x00000197, + 0x00000198,0x000200f8,0x00000197,0x0004003d,0x00000006,0x0000019a,0x00000062,0x0003003e, + 0x00000199,0x0000019a,0x00050039,0x00000002,0x0000019b,0x00000043,0x00000199,0x000200f9, + 0x00000198,0x000200f8,0x00000198,0x00040039,0x00000002,0x0000019c,0x0000005c,0x00040039, + 0x00000006,0x0000019d,0x00000045,0x0004003d,0x00000006,0x0000019e,0x00000060,0x00050082, + 0x00000006,0x0000019f,0x0000019e,0x000000e8,0x000500ab,0x0000005e,0x000001a0,0x0000019d, + 0x0000019f,0x000200fe,0x000001a0,0x00010038,0x00050036,0x0000002e,0x00000067,0x00000000, + 0x00000065,0x00030037,0x00000039,0x00000066,0x000200f8,0x00000068,0x0004003b,0x00000039, + 0x000001a3,0x00000007,0x0004003b,0x00000039,0x000001a5,0x00000007,0x0004003b,0x00000039, + 0x000001a8,0x00000007,0x0004003b,0x00000039,0x000001ab,0x00000007,0x0004003b,0x00000039, + 0x000001ae,0x00000007,0x0004003b,0x00000039,0x000001b0,0x00000007,0x0004003b,0x00000039, + 0x000001b2,0x00000007,0x0004003b,0x00000039,0x000001b4,0x00000007,0x0004003d,0x0000002e, + 0x000001a4,0x00000066,0x0003003e,0x000001a3,0x000001a4,0x0004003d,0x0000002e,0x000001a6, + 0x00000066,0x0006016e,0x0000002e,0x000001a7,0x000000e2,0x000001a6,0x0000010f,0x0003003e, + 0x000001a5,0x000001a7,0x0004003d,0x0000002e,0x000001a9,0x00000066,0x0006016e,0x0000002e, + 0x000001aa,0x000000e2,0x000001a9,0x000000e8,0x0003003e,0x000001a8,0x000001aa,0x0004003d, + 0x0000002e,0x000001ac,0x00000066,0x0006016e,0x0000002e,0x000001ad,0x000000e2,0x000001ac, + 0x000000e1,0x0003003e,0x000001ab,0x000001ad,0x0004003d,0x0000002e,0x000001af,0x000001a3, + 0x0003003e,0x000001ae,0x000001af,0x0004003d,0x0000002e,0x000001b1,0x000001a5,0x0003003e, + 0x000001b0,0x000001b1,0x0004003d,0x0000002e,0x000001b3,0x000001a8,0x0003003e,0x000001b2, + 0x000001b3,0x0004003d,0x0000002e,0x000001b5,0x000001ab,0x0003003e,0x000001b4,0x000001b5, + 0x00080039,0x0000002e,0x000001b6,0x0000005a,0x000001ae,0x000001b0,0x000001b2,0x000001b4, + 0x000200fe,0x000001b6,0x00010038,0x00050036,0x0000002e,0x00000070,0x00000000,0x0000006a, + 0x00030037,0x00000069,0x0000006b,0x00030037,0x00000069,0x0000006c,0x00030037,0x00000069, + 0x0000006d,0x00030037,0x00000069,0x0000006e,0x00030037,0x00000007,0x0000006f,0x000200f8, + 0x00000071,0x0004003b,0x00000039,0x000001bb,0x00000007,0x0004003b,0x0000001d,0x000001be, + 0x00000007,0x0004003b,0x00000007,0x000001bf,0x00000007,0x0004003b,0x00000039,0x000001c2, + 0x00000007,0x0004003b,0x0000001d,0x000001c5,0x00000007,0x0004003b,0x00000007,0x000001c6, + 0x00000007,0x0004003b,0x00000039,0x000001c9,0x00000007,0x0004003b,0x0000001d,0x000001cc, + 0x00000007,0x0004003b,0x00000007,0x000001cd,0x00000007,0x0004003b,0x00000039,0x000001d0, + 0x00000007,0x0004003b,0x0000001d,0x000001d3,0x00000007,0x0004003b,0x00000007,0x000001d4, + 0x00000007,0x0004003b,0x00000039,0x000001d7,0x00000007,0x0004003b,0x00000039,0x000001d9, + 0x00000007,0x0004003b,0x00000039,0x000001db,0x00000007,0x0004003b,0x00000039,0x000001dd, + 0x00000007,0x0004003d,0x00000013,0x000001bc,0x0000006b,0x0004007c,0x0000001c,0x000001bd, + 0x000001bc,0x0003003e,0x000001be,0x000001bd,0x0004003d,0x00000006,0x000001c0,0x0000006f, + 0x0003003e,0x000001bf,0x000001c0,0x00060039,0x0000002e,0x000001c1,0x00000037,0x000001be, + 0x000001bf,0x0003003e,0x000001bb,0x000001c1,0x0004003d,0x00000013,0x000001c3,0x0000006c, + 0x0004007c,0x0000001c,0x000001c4,0x000001c3,0x0003003e,0x000001c5,0x000001c4,0x0004003d, + 0x00000006,0x000001c7,0x0000006f,0x0003003e,0x000001c6,0x000001c7,0x00060039,0x0000002e, + 0x000001c8,0x00000037,0x000001c5,0x000001c6,0x0003003e,0x000001c2,0x000001c8,0x0004003d, + 0x00000013,0x000001ca,0x0000006d,0x0004007c,0x0000001c,0x000001cb,0x000001ca,0x0003003e, + 0x000001cc,0x000001cb,0x0004003d,0x00000006,0x000001ce,0x0000006f,0x0003003e,0x000001cd, + 0x000001ce,0x00060039,0x0000002e,0x000001cf,0x00000037,0x000001cc,0x000001cd,0x0003003e, + 0x000001c9,0x000001cf,0x0004003d,0x00000013,0x000001d1,0x0000006e,0x0004007c,0x0000001c, + 0x000001d2,0x000001d1,0x0003003e,0x000001d3,0x000001d2,0x0004003d,0x00000006,0x000001d5, + 0x0000006f,0x0003003e,0x000001d4,0x000001d5,0x00060039,0x0000002e,0x000001d6,0x00000037, + 0x000001d3,0x000001d4,0x0003003e,0x000001d0,0x000001d6,0x0004003d,0x0000002e,0x000001d8, + 0x000001bb,0x0003003e,0x000001d7,0x000001d8,0x0004003d,0x0000002e,0x000001da,0x000001c2, + 0x0003003e,0x000001d9,0x000001da,0x0004003d,0x0000002e,0x000001dc,0x000001c9,0x0003003e, + 0x000001db,0x000001dc,0x0004003d,0x0000002e,0x000001de,0x000001d0,0x0003003e,0x000001dd, + 0x000001de,0x00080039,0x0000002e,0x000001df,0x0000005a,0x000001d7,0x000001d9,0x000001db, + 0x000001dd,0x000200fe,0x000001df,0x00010038,0x00050036,0x0000002e,0x00000075,0x00000000, + 0x00000072,0x00030037,0x00000069,0x00000073,0x00030037,0x00000007,0x00000074,0x000200f8, + 0x00000076,0x0004003b,0x00000069,0x000001ee,0x00000007,0x0004003b,0x00000069,0x000001ef, + 0x00000007,0x0004003b,0x00000069,0x000001f0,0x00000007,0x0004003b,0x00000069,0x000001f1, + 0x00000007,0x0004003b,0x00000007,0x000001f2,0x00000007,0x0004003d,0x00000013,0x000001e2, + 0x00000073,0x00050080,0x00000013,0x000001e4,0x000001e2,0x000001e3,0x0004003d,0x00000013, + 0x000001e5,0x00000073,0x00050080,0x00000013,0x000001e7,0x000001e5,0x000001e6,0x0004003d, + 0x00000013,0x000001e8,0x00000073,0x00050080,0x00000013,0x000001ea,0x000001e8,0x000001e9, + 0x0004003d,0x00000013,0x000001eb,0x00000073,0x00050080,0x00000013,0x000001ed,0x000001eb, + 0x000001ec,0x0003003e,0x000001ee,0x000001e4,0x0003003e,0x000001ef,0x000001e7,0x0003003e, + 0x000001f0,0x000001ea,0x0003003e,0x000001f1,0x000001ed,0x0004003d,0x00000006,0x000001f3, + 0x00000074,0x0003003e,0x000001f2,0x000001f3,0x00090039,0x0000002e,0x000001f4,0x00000070, + 0x000001ee,0x000001ef,0x000001f0,0x000001f1,0x000001f2,0x000200fe,0x000001f4,0x00010038, + 0x00050036,0x0000002e,0x0000007c,0x00000000,0x0000006a,0x00030037,0x00000069,0x00000077, + 0x00030037,0x00000069,0x00000078,0x00030037,0x00000069,0x00000079,0x00030037,0x00000069, + 0x0000007a,0x00030037,0x00000007,0x0000007b,0x000200f8,0x0000007d,0x0004003b,0x00000039, + 0x000001f7,0x00000007,0x0004003b,0x0000002d,0x000001fb,0x00000007,0x0004003b,0x00000007, + 0x000001fc,0x00000007,0x0004003b,0x00000039,0x000001ff,0x00000007,0x0004003b,0x0000002d, + 0x00000203,0x00000007,0x0004003b,0x00000007,0x00000204,0x00000007,0x0004003b,0x00000039, + 0x00000207,0x00000007,0x0004003b,0x0000002d,0x0000020b,0x00000007,0x0004003b,0x00000007, + 0x0000020c,0x00000007,0x0004003b,0x00000039,0x0000020f,0x00000007,0x0004003b,0x0000002d, + 0x00000213,0x00000007,0x0004003b,0x00000007,0x00000214,0x00000007,0x0004003b,0x00000039, + 0x00000217,0x00000007,0x0004003b,0x00000039,0x00000219,0x00000007,0x0004003b,0x00000039, + 0x0000021b,0x00000007,0x0004003b,0x00000039,0x0000021d,0x00000007,0x0004003d,0x00000013, + 0x000001f8,0x00000077,0x0004007c,0x0000001c,0x000001f9,0x000001f8,0x0004006f,0x0000002c, + 0x000001fa,0x000001f9,0x0003003e,0x000001fb,0x000001fa,0x0004003d,0x00000006,0x000001fd, + 0x0000007b,0x0003003e,0x000001fc,0x000001fd,0x00060039,0x0000002e,0x000001fe,0x00000032, + 0x000001fb,0x000001fc,0x0003003e,0x000001f7,0x000001fe,0x0004003d,0x00000013,0x00000200, + 0x00000078,0x0004007c,0x0000001c,0x00000201,0x00000200,0x0004006f,0x0000002c,0x00000202, + 0x00000201,0x0003003e,0x00000203,0x00000202,0x0004003d,0x00000006,0x00000205,0x0000007b, + 0x0003003e,0x00000204,0x00000205,0x00060039,0x0000002e,0x00000206,0x00000032,0x00000203, + 0x00000204,0x0003003e,0x000001ff,0x00000206,0x0004003d,0x00000013,0x00000208,0x00000079, + 0x0004007c,0x0000001c,0x00000209,0x00000208,0x0004006f,0x0000002c,0x0000020a,0x00000209, + 0x0003003e,0x0000020b,0x0000020a,0x0004003d,0x00000006,0x0000020d,0x0000007b,0x0003003e, + 0x0000020c,0x0000020d,0x00060039,0x0000002e,0x0000020e,0x00000032,0x0000020b,0x0000020c, + 0x0003003e,0x00000207,0x0000020e,0x0004003d,0x00000013,0x00000210,0x0000007a,0x0004007c, + 0x0000001c,0x00000211,0x00000210,0x0004006f,0x0000002c,0x00000212,0x00000211,0x0003003e, + 0x00000213,0x00000212,0x0004003d,0x00000006,0x00000215,0x0000007b,0x0003003e,0x00000214, + 0x00000215,0x00060039,0x0000002e,0x00000216,0x00000032,0x00000213,0x00000214,0x0003003e, + 0x0000020f,0x00000216,0x0004003d,0x0000002e,0x00000218,0x000001f7,0x0003003e,0x00000217, + 0x00000218,0x0004003d,0x0000002e,0x0000021a,0x000001ff,0x0003003e,0x00000219,0x0000021a, + 0x0004003d,0x0000002e,0x0000021c,0x00000207,0x0003003e,0x0000021b,0x0000021c,0x0004003d, + 0x0000002e,0x0000021e,0x0000020f,0x0003003e,0x0000021d,0x0000021e,0x00080039,0x0000002e, + 0x0000021f,0x0000005a,0x00000217,0x00000219,0x0000021b,0x0000021d,0x000200fe,0x0000021f, + 0x00010038,0x00050036,0x0000002e,0x00000080,0x00000000,0x00000072,0x00030037,0x00000069, + 0x0000007e,0x00030037,0x00000007,0x0000007f,0x000200f8,0x00000081,0x0004003b,0x00000069, + 0x0000022a,0x00000007,0x0004003b,0x00000069,0x0000022b,0x00000007,0x0004003b,0x00000069, + 0x0000022c,0x00000007,0x0004003b,0x00000069,0x0000022d,0x00000007,0x0004003b,0x00000007, + 0x0000022e,0x00000007,0x0004003d,0x00000013,0x00000222,0x0000007e,0x00050080,0x00000013, + 0x00000223,0x00000222,0x000001e3,0x0004003d,0x00000013,0x00000224,0x0000007e,0x00050080, + 0x00000013,0x00000225,0x00000224,0x000001e6,0x0004003d,0x00000013,0x00000226,0x0000007e, + 0x00050080,0x00000013,0x00000227,0x00000226,0x000001e9,0x0004003d,0x00000013,0x00000228, + 0x0000007e,0x00050080,0x00000013,0x00000229,0x00000228,0x000001ec,0x0003003e,0x0000022a, + 0x00000223,0x0003003e,0x0000022b,0x00000225,0x0003003e,0x0000022c,0x00000227,0x0003003e, + 0x0000022d,0x00000229,0x0004003d,0x00000006,0x0000022f,0x0000007f,0x0003003e,0x0000022e, + 0x0000022f,0x00090039,0x0000002e,0x00000230,0x0000007c,0x0000022a,0x0000022b,0x0000022c, + 0x0000022d,0x0000022e,0x000200fe,0x00000230,0x00010038,0x00050036,0x00000002,0x00000089, + 0x00000000,0x00000082,0x00030037,0x00000007,0x00000083,0x00030037,0x00000007,0x00000084, + 0x00030037,0x00000069,0x00000085,0x00030037,0x00000007,0x00000086,0x00030037,0x00000007, + 0x00000087,0x00030037,0x00000007,0x00000088,0x000200f8,0x0000008a,0x0004003b,0x0000001d, + 0x00000233,0x00000007,0x0004003b,0x0000001d,0x00000241,0x00000007,0x0004003b,0x0000024f, + 0x00000250,0x00000007,0x0004003b,0x00000069,0x00000253,0x00000007,0x0004003b,0x00000007, + 0x00000254,0x00000007,0x0004003b,0x0000001d,0x00000258,0x00000007,0x0004003b,0x00000039, + 0x0000025a,0x00000007,0x0004003b,0x00000007,0x0000025d,0x00000007,0x0004003b,0x00000007, + 0x0000025e,0x00000007,0x0004003b,0x00000069,0x0000027c,0x00000007,0x0004003b,0x00000007, + 0x0000027d,0x00000007,0x0004003b,0x0000001d,0x00000281,0x00000007,0x0004003b,0x00000039, + 0x00000283,0x00000007,0x0004003b,0x00000007,0x00000286,0x00000007,0x0004003b,0x00000007, + 0x00000287,0x00000007,0x0004003b,0x00000069,0x000002a5,0x00000007,0x0004003b,0x00000007, + 0x000002a6,0x00000007,0x0004003b,0x0000001d,0x000002aa,0x00000007,0x0004003b,0x00000039, + 0x000002ac,0x00000007,0x0004003b,0x00000007,0x000002af,0x00000007,0x0004003b,0x00000007, + 0x000002b0,0x00000007,0x0004003b,0x00000069,0x000002cf,0x00000007,0x0004003b,0x00000007, + 0x000002d0,0x00000007,0x0004003b,0x0000001d,0x000002d4,0x00000007,0x0004003b,0x00000039, + 0x000002d6,0x00000007,0x0004003b,0x00000007,0x000002d9,0x00000007,0x0004003b,0x00000007, + 0x000002da,0x00000007,0x0004003b,0x00000039,0x000002e2,0x00000007,0x0004003b,0x00000039, + 0x000002e7,0x00000007,0x0004003b,0x00000039,0x000002ec,0x00000007,0x0004003b,0x00000039, + 0x000002f1,0x00000007,0x0004003b,0x0000001d,0x00000307,0x00000007,0x0004003b,0x00000039, + 0x00000308,0x00000007,0x0004003b,0x00000007,0x0000030b,0x00000007,0x0004003b,0x00000007, + 0x0000030c,0x00000007,0x0004003b,0x00000007,0x00000313,0x00000007,0x0004003b,0x00000007, + 0x00000314,0x00000007,0x0004003b,0x00000039,0x00000315,0x00000007,0x0004003b,0x0000001d, + 0x00000327,0x00000007,0x0004003b,0x00000039,0x00000328,0x00000007,0x0004003b,0x00000007, + 0x0000032b,0x00000007,0x0004003b,0x00000007,0x0000032c,0x00000007,0x0004003b,0x00000007, + 0x00000334,0x00000007,0x0004003b,0x00000007,0x00000335,0x00000007,0x0004003b,0x00000039, + 0x00000336,0x00000007,0x0004003b,0x0000001d,0x00000347,0x00000007,0x0004003b,0x00000039, + 0x00000348,0x00000007,0x0004003b,0x00000007,0x0000034b,0x00000007,0x0004003b,0x00000007, + 0x0000034c,0x00000007,0x0004003b,0x00000007,0x00000354,0x00000007,0x0004003b,0x00000007, + 0x00000355,0x00000007,0x0004003b,0x00000039,0x00000356,0x00000007,0x0004003b,0x0000001d, + 0x00000368,0x00000007,0x0004003b,0x00000039,0x00000369,0x00000007,0x0004003b,0x00000007, + 0x0000036c,0x00000007,0x0004003b,0x00000007,0x0000036d,0x00000007,0x0004003b,0x00000007, + 0x00000376,0x00000007,0x0004003b,0x00000007,0x00000377,0x00000007,0x0004003b,0x00000039, + 0x00000378,0x00000007,0x0004003d,0x00000013,0x00000234,0x00000085,0x00050050,0x00000013, + 0x00000236,0x00000235,0x00000235,0x00050084,0x00000013,0x00000237,0x00000234,0x00000236, + 0x0004007c,0x0000001c,0x00000238,0x00000237,0x0004003d,0x00000006,0x00000239,0x00000083, + 0x00050084,0x00000006,0x0000023a,0x00000239,0x000000e1,0x0004007c,0x0000001b,0x0000023b, + 0x0000023a,0x0004003d,0x00000006,0x0000023c,0x00000084,0x00050084,0x00000006,0x0000023d, + 0x0000023c,0x000000e1,0x0004007c,0x0000001b,0x0000023e,0x0000023d,0x00050050,0x0000001c, + 0x0000023f,0x0000023b,0x0000023e,0x00050080,0x0000001c,0x00000240,0x00000238,0x0000023f, + 0x0003003e,0x00000233,0x00000240,0x0004003d,0x00000013,0x00000242,0x00000085,0x00050050, + 0x00000013,0x00000244,0x00000243,0x00000243,0x00050084,0x00000013,0x00000245,0x00000242, + 0x00000244,0x0004007c,0x0000001c,0x00000246,0x00000245,0x0004003d,0x00000006,0x00000247, + 0x00000083,0x0004007c,0x0000001b,0x00000248,0x00000247,0x0004003d,0x00000006,0x00000249, + 0x00000084,0x0004007c,0x0000001b,0x0000024a,0x00000249,0x00050050,0x0000001c,0x0000024b, + 0x00000248,0x0000024a,0x00050080,0x0000001c,0x0000024c,0x00000246,0x0000024b,0x0003003e, + 0x00000241,0x0000024c,0x0004003d,0x0000001c,0x00000251,0x00000233,0x0004007c,0x00000013, + 0x00000252,0x00000251,0x0003003e,0x00000253,0x00000252,0x0004003d,0x00000006,0x00000255, + 0x00000088,0x0003003e,0x00000254,0x00000255,0x00060039,0x0000002e,0x00000256,0x00000080, + 0x00000253,0x00000254,0x00050041,0x00000039,0x00000257,0x00000250,0x000000db,0x0003003e, + 0x00000257,0x00000256,0x0004003d,0x0000001c,0x00000259,0x00000241,0x0003003e,0x00000258, + 0x00000259,0x00050041,0x00000039,0x0000025b,0x00000250,0x000000db,0x0004003d,0x0000002e, + 0x0000025c,0x0000025b,0x0003003e,0x0000025a,0x0000025c,0x0003003e,0x0000025d,0x0000010f, + 0x0004003d,0x00000006,0x0000025f,0x00000088,0x0003003e,0x0000025e,0x0000025f,0x00080039, + 0x00000002,0x00000260,0x0000003f,0x00000258,0x0000025a,0x0000025d,0x0000025e,0x0004003d, + 0x00000013,0x00000261,0x00000085,0x00050050,0x00000013,0x00000262,0x00000235,0x00000235, + 0x00050084,0x00000013,0x00000263,0x00000261,0x00000262,0x0004007c,0x0000001c,0x00000264, + 0x00000263,0x0004003d,0x00000006,0x00000265,0x00000083,0x00050084,0x00000006,0x00000266, + 0x00000265,0x000000e1,0x00050080,0x00000006,0x00000267,0x00000266,0x00000243,0x0004007c, + 0x0000001b,0x00000268,0x00000267,0x0004003d,0x00000006,0x00000269,0x00000084,0x00050084, + 0x00000006,0x0000026a,0x00000269,0x000000e1,0x0004007c,0x0000001b,0x0000026b,0x0000026a, + 0x00050050,0x0000001c,0x0000026c,0x00000268,0x0000026b,0x00050080,0x0000001c,0x0000026d, + 0x00000264,0x0000026c,0x0003003e,0x00000233,0x0000026d,0x0004003d,0x00000013,0x0000026e, + 0x00000085,0x00050050,0x00000013,0x0000026f,0x00000243,0x00000243,0x00050084,0x00000013, + 0x00000270,0x0000026e,0x0000026f,0x0004007c,0x0000001c,0x00000271,0x00000270,0x0004003d, + 0x00000006,0x00000272,0x00000083,0x00050080,0x00000006,0x00000273,0x00000272,0x00000158, + 0x0004007c,0x0000001b,0x00000274,0x00000273,0x0004003d,0x00000006,0x00000275,0x00000084, + 0x0004007c,0x0000001b,0x00000276,0x00000275,0x00050050,0x0000001c,0x00000277,0x00000274, + 0x00000276,0x00050080,0x0000001c,0x00000278,0x00000271,0x00000277,0x0003003e,0x00000241, + 0x00000278,0x0004003d,0x0000001c,0x0000027a,0x00000233,0x0004007c,0x00000013,0x0000027b, + 0x0000027a,0x0003003e,0x0000027c,0x0000027b,0x0004003d,0x00000006,0x0000027e,0x00000088, + 0x0003003e,0x0000027d,0x0000027e,0x00060039,0x0000002e,0x0000027f,0x00000080,0x0000027c, + 0x0000027d,0x00050041,0x00000039,0x00000280,0x00000250,0x00000279,0x0003003e,0x00000280, + 0x0000027f,0x0004003d,0x0000001c,0x00000282,0x00000241,0x0003003e,0x00000281,0x00000282, + 0x00050041,0x00000039,0x00000284,0x00000250,0x00000279,0x0004003d,0x0000002e,0x00000285, + 0x00000284,0x0003003e,0x00000283,0x00000285,0x0003003e,0x00000286,0x0000010f,0x0004003d, + 0x00000006,0x00000288,0x00000088,0x0003003e,0x00000287,0x00000288,0x00080039,0x00000002, + 0x00000289,0x0000003f,0x00000281,0x00000283,0x00000286,0x00000287,0x0004003d,0x00000013, + 0x0000028a,0x00000085,0x00050050,0x00000013,0x0000028b,0x00000235,0x00000235,0x00050084, + 0x00000013,0x0000028c,0x0000028a,0x0000028b,0x0004007c,0x0000001c,0x0000028d,0x0000028c, + 0x0004003d,0x00000006,0x0000028e,0x00000083,0x00050084,0x00000006,0x0000028f,0x0000028e, + 0x000000e1,0x0004007c,0x0000001b,0x00000290,0x0000028f,0x0004003d,0x00000006,0x00000291, + 0x00000084,0x00050084,0x00000006,0x00000292,0x00000291,0x000000e1,0x00050080,0x00000006, + 0x00000293,0x00000292,0x00000243,0x0004007c,0x0000001b,0x00000294,0x00000293,0x00050050, + 0x0000001c,0x00000295,0x00000290,0x00000294,0x00050080,0x0000001c,0x00000296,0x0000028d, + 0x00000295,0x0003003e,0x00000233,0x00000296,0x0004003d,0x00000013,0x00000297,0x00000085, + 0x00050050,0x00000013,0x00000298,0x00000243,0x00000243,0x00050084,0x00000013,0x00000299, + 0x00000297,0x00000298,0x0004007c,0x0000001c,0x0000029a,0x00000299,0x0004003d,0x00000006, + 0x0000029b,0x00000083,0x0004007c,0x0000001b,0x0000029c,0x0000029b,0x0004003d,0x00000006, + 0x0000029d,0x00000084,0x00050080,0x00000006,0x0000029e,0x0000029d,0x00000158,0x0004007c, + 0x0000001b,0x0000029f,0x0000029e,0x00050050,0x0000001c,0x000002a0,0x0000029c,0x0000029f, + 0x00050080,0x0000001c,0x000002a1,0x0000029a,0x000002a0,0x0003003e,0x00000241,0x000002a1, + 0x0004003d,0x0000001c,0x000002a3,0x00000233,0x0004007c,0x00000013,0x000002a4,0x000002a3, + 0x0003003e,0x000002a5,0x000002a4,0x0004003d,0x00000006,0x000002a7,0x00000088,0x0003003e, + 0x000002a6,0x000002a7,0x00060039,0x0000002e,0x000002a8,0x00000080,0x000002a5,0x000002a6, + 0x00050041,0x00000039,0x000002a9,0x00000250,0x000002a2,0x0003003e,0x000002a9,0x000002a8, + 0x0004003d,0x0000001c,0x000002ab,0x00000241,0x0003003e,0x000002aa,0x000002ab,0x00050041, + 0x00000039,0x000002ad,0x00000250,0x000002a2,0x0004003d,0x0000002e,0x000002ae,0x000002ad, + 0x0003003e,0x000002ac,0x000002ae,0x0003003e,0x000002af,0x0000010f,0x0004003d,0x00000006, + 0x000002b1,0x00000088,0x0003003e,0x000002b0,0x000002b1,0x00080039,0x00000002,0x000002b2, + 0x0000003f,0x000002aa,0x000002ac,0x000002af,0x000002b0,0x0004003d,0x00000013,0x000002b3, + 0x00000085,0x00050050,0x00000013,0x000002b4,0x00000235,0x00000235,0x00050084,0x00000013, + 0x000002b5,0x000002b3,0x000002b4,0x0004007c,0x0000001c,0x000002b6,0x000002b5,0x0004003d, + 0x00000006,0x000002b7,0x00000083,0x00050084,0x00000006,0x000002b8,0x000002b7,0x000000e1, + 0x00050080,0x00000006,0x000002b9,0x000002b8,0x00000243,0x0004007c,0x0000001b,0x000002ba, + 0x000002b9,0x0004003d,0x00000006,0x000002bb,0x00000084,0x00050084,0x00000006,0x000002bc, + 0x000002bb,0x000000e1,0x00050080,0x00000006,0x000002bd,0x000002bc,0x00000243,0x0004007c, + 0x0000001b,0x000002be,0x000002bd,0x00050050,0x0000001c,0x000002bf,0x000002ba,0x000002be, + 0x00050080,0x0000001c,0x000002c0,0x000002b6,0x000002bf,0x0003003e,0x00000233,0x000002c0, + 0x0004003d,0x00000013,0x000002c1,0x00000085,0x00050050,0x00000013,0x000002c2,0x00000243, + 0x00000243,0x00050084,0x00000013,0x000002c3,0x000002c1,0x000002c2,0x0004007c,0x0000001c, + 0x000002c4,0x000002c3,0x0004003d,0x00000006,0x000002c5,0x00000083,0x00050080,0x00000006, + 0x000002c6,0x000002c5,0x00000158,0x0004007c,0x0000001b,0x000002c7,0x000002c6,0x0004003d, + 0x00000006,0x000002c8,0x00000084,0x00050080,0x00000006,0x000002c9,0x000002c8,0x00000158, + 0x0004007c,0x0000001b,0x000002ca,0x000002c9,0x00050050,0x0000001c,0x000002cb,0x000002c7, + 0x000002ca,0x00050080,0x0000001c,0x000002cc,0x000002c4,0x000002cb,0x0003003e,0x00000241, + 0x000002cc,0x0004003d,0x0000001c,0x000002cd,0x00000233,0x0004007c,0x00000013,0x000002ce, + 0x000002cd,0x0003003e,0x000002cf,0x000002ce,0x0004003d,0x00000006,0x000002d1,0x00000088, + 0x0003003e,0x000002d0,0x000002d1,0x00060039,0x0000002e,0x000002d2,0x00000080,0x000002cf, + 0x000002d0,0x00050041,0x00000039,0x000002d3,0x00000250,0x00000102,0x0003003e,0x000002d3, + 0x000002d2,0x0004003d,0x0000001c,0x000002d5,0x00000241,0x0003003e,0x000002d4,0x000002d5, + 0x00050041,0x00000039,0x000002d7,0x00000250,0x00000102,0x0004003d,0x0000002e,0x000002d8, + 0x000002d7,0x0003003e,0x000002d6,0x000002d8,0x0003003e,0x000002d9,0x0000010f,0x0004003d, + 0x00000006,0x000002db,0x00000088,0x0003003e,0x000002da,0x000002db,0x00080039,0x00000002, + 0x000002dc,0x0000003f,0x000002d4,0x000002d6,0x000002d9,0x000002da,0x0004003d,0x00000006, + 0x000002dd,0x00000087,0x000500b2,0x0000005e,0x000002de,0x000002dd,0x000000e8,0x000300f7, + 0x000002e0,0x00000000,0x000400fa,0x000002de,0x000002df,0x000002e0,0x000200f8,0x000002df, + 0x000100fd,0x000200f8,0x000002e0,0x00050041,0x00000039,0x000002e3,0x00000250,0x000000db, + 0x0004003d,0x0000002e,0x000002e4,0x000002e3,0x0003003e,0x000002e2,0x000002e4,0x00050039, + 0x0000002e,0x000002e5,0x00000067,0x000002e2,0x00050041,0x00000039,0x000002e6,0x00000250, + 0x000000db,0x0003003e,0x000002e6,0x000002e5,0x00050041,0x00000039,0x000002e8,0x00000250, + 0x00000279,0x0004003d,0x0000002e,0x000002e9,0x000002e8,0x0003003e,0x000002e7,0x000002e9, + 0x00050039,0x0000002e,0x000002ea,0x00000067,0x000002e7,0x00050041,0x00000039,0x000002eb, + 0x00000250,0x00000279,0x0003003e,0x000002eb,0x000002ea,0x00050041,0x00000039,0x000002ed, + 0x00000250,0x000002a2,0x0004003d,0x0000002e,0x000002ee,0x000002ed,0x0003003e,0x000002ec, + 0x000002ee,0x00050039,0x0000002e,0x000002ef,0x00000067,0x000002ec,0x00050041,0x00000039, + 0x000002f0,0x00000250,0x000002a2,0x0003003e,0x000002f0,0x000002ef,0x00050041,0x00000039, + 0x000002f2,0x00000250,0x00000102,0x0004003d,0x0000002e,0x000002f3,0x000002f2,0x0003003e, + 0x000002f1,0x000002f3,0x00050039,0x0000002e,0x000002f4,0x00000067,0x000002f1,0x00050041, + 0x00000039,0x000002f5,0x00000250,0x00000102,0x0003003e,0x000002f5,0x000002f4,0x0004003d, + 0x00000006,0x000002f6,0x00000086,0x00050089,0x00000006,0x000002f7,0x000002f6,0x0000024d, + 0x000500aa,0x0000005e,0x000002f8,0x000002f7,0x0000010f,0x000300f7,0x000002fa,0x00000000, + 0x000400fa,0x000002f8,0x000002f9,0x000002fa,0x000200f8,0x000002f9,0x0004003d,0x00000013, + 0x000002fb,0x00000085,0x00050050,0x00000013,0x000002fc,0x00000158,0x00000158,0x00050084, + 0x00000013,0x000002fd,0x000002fb,0x000002fc,0x0004007c,0x0000001c,0x000002fe,0x000002fd, + 0x0004003d,0x00000006,0x000002ff,0x00000083,0x00050086,0x00000006,0x00000300,0x000002ff, + 0x000000e1,0x0004007c,0x0000001b,0x00000301,0x00000300,0x0004003d,0x00000006,0x00000302, + 0x00000084,0x00050086,0x00000006,0x00000303,0x00000302,0x000000e1,0x0004007c,0x0000001b, + 0x00000304,0x00000303,0x00050050,0x0000001c,0x00000305,0x00000301,0x00000304,0x00050080, + 0x0000001c,0x00000306,0x000002fe,0x00000305,0x0003003e,0x00000307,0x00000306,0x00050041, + 0x00000039,0x00000309,0x00000250,0x000000db,0x0004003d,0x0000002e,0x0000030a,0x00000309, + 0x0003003e,0x00000308,0x0000030a,0x0003003e,0x0000030b,0x000000e8,0x0004003d,0x00000006, + 0x0000030d,0x00000088,0x0003003e,0x0000030c,0x0000030d,0x00080039,0x00000002,0x0000030e, + 0x0000003f,0x00000307,0x00000308,0x0000030b,0x0000030c,0x0004003d,0x00000006,0x0000030f, + 0x00000083,0x00050086,0x00000006,0x00000310,0x0000030f,0x000000e1,0x0004003d,0x00000006, + 0x00000311,0x00000084,0x00050086,0x00000006,0x00000312,0x00000311,0x000000e1,0x0003003e, + 0x00000313,0x00000310,0x0003003e,0x00000314,0x00000312,0x00050041,0x00000039,0x00000316, + 0x00000250,0x000000db,0x0004003d,0x0000002e,0x00000317,0x00000316,0x0003003e,0x00000315, + 0x00000317,0x00070039,0x00000002,0x00000318,0x00000053,0x00000313,0x00000314,0x00000315, + 0x0004003d,0x00000013,0x00000319,0x00000085,0x00050050,0x00000013,0x0000031a,0x00000158, + 0x00000158,0x00050084,0x00000013,0x0000031b,0x00000319,0x0000031a,0x0004007c,0x0000001c, + 0x0000031c,0x0000031b,0x0004003d,0x00000006,0x0000031d,0x00000083,0x00050086,0x00000006, + 0x0000031e,0x0000031d,0x000000e1,0x00050080,0x00000006,0x00000320,0x0000031e,0x0000031f, + 0x0004007c,0x0000001b,0x00000321,0x00000320,0x0004003d,0x00000006,0x00000322,0x00000084, + 0x00050086,0x00000006,0x00000323,0x00000322,0x000000e1,0x0004007c,0x0000001b,0x00000324, + 0x00000323,0x00050050,0x0000001c,0x00000325,0x00000321,0x00000324,0x00050080,0x0000001c, + 0x00000326,0x0000031c,0x00000325,0x0003003e,0x00000327,0x00000326,0x00050041,0x00000039, + 0x00000329,0x00000250,0x00000279,0x0004003d,0x0000002e,0x0000032a,0x00000329,0x0003003e, + 0x00000328,0x0000032a,0x0003003e,0x0000032b,0x000000e8,0x0004003d,0x00000006,0x0000032d, + 0x00000088,0x0003003e,0x0000032c,0x0000032d,0x00080039,0x00000002,0x0000032e,0x0000003f, + 0x00000327,0x00000328,0x0000032b,0x0000032c,0x0004003d,0x00000006,0x0000032f,0x00000083, + 0x00050086,0x00000006,0x00000330,0x0000032f,0x000000e1,0x00050080,0x00000006,0x00000331, + 0x00000330,0x0000031f,0x0004003d,0x00000006,0x00000332,0x00000084,0x00050086,0x00000006, + 0x00000333,0x00000332,0x000000e1,0x0003003e,0x00000334,0x00000331,0x0003003e,0x00000335, + 0x00000333,0x00050041,0x00000039,0x00000337,0x00000250,0x00000279,0x0004003d,0x0000002e, + 0x00000338,0x00000337,0x0003003e,0x00000336,0x00000338,0x00070039,0x00000002,0x00000339, + 0x00000053,0x00000334,0x00000335,0x00000336,0x0004003d,0x00000013,0x0000033a,0x00000085, + 0x00050050,0x00000013,0x0000033b,0x00000158,0x00000158,0x00050084,0x00000013,0x0000033c, + 0x0000033a,0x0000033b,0x0004007c,0x0000001c,0x0000033d,0x0000033c,0x0004003d,0x00000006, + 0x0000033e,0x00000083,0x00050086,0x00000006,0x0000033f,0x0000033e,0x000000e1,0x0004007c, + 0x0000001b,0x00000340,0x0000033f,0x0004003d,0x00000006,0x00000341,0x00000084,0x00050086, + 0x00000006,0x00000342,0x00000341,0x000000e1,0x00050080,0x00000006,0x00000343,0x00000342, + 0x0000031f,0x0004007c,0x0000001b,0x00000344,0x00000343,0x00050050,0x0000001c,0x00000345, + 0x00000340,0x00000344,0x00050080,0x0000001c,0x00000346,0x0000033d,0x00000345,0x0003003e, + 0x00000347,0x00000346,0x00050041,0x00000039,0x00000349,0x00000250,0x000002a2,0x0004003d, + 0x0000002e,0x0000034a,0x00000349,0x0003003e,0x00000348,0x0000034a,0x0003003e,0x0000034b, + 0x000000e8,0x0004003d,0x00000006,0x0000034d,0x00000088,0x0003003e,0x0000034c,0x0000034d, + 0x00080039,0x00000002,0x0000034e,0x0000003f,0x00000347,0x00000348,0x0000034b,0x0000034c, + 0x0004003d,0x00000006,0x0000034f,0x00000083,0x00050086,0x00000006,0x00000350,0x0000034f, + 0x000000e1,0x0004003d,0x00000006,0x00000351,0x00000084,0x00050086,0x00000006,0x00000352, + 0x00000351,0x000000e1,0x00050080,0x00000006,0x00000353,0x00000352,0x0000031f,0x0003003e, + 0x00000354,0x00000350,0x0003003e,0x00000355,0x00000353,0x00050041,0x00000039,0x00000357, + 0x00000250,0x000002a2,0x0004003d,0x0000002e,0x00000358,0x00000357,0x0003003e,0x00000356, + 0x00000358,0x00070039,0x00000002,0x00000359,0x00000053,0x00000354,0x00000355,0x00000356, + 0x0004003d,0x00000013,0x0000035a,0x00000085,0x00050050,0x00000013,0x0000035b,0x00000158, + 0x00000158,0x00050084,0x00000013,0x0000035c,0x0000035a,0x0000035b,0x0004007c,0x0000001c, + 0x0000035d,0x0000035c,0x0004003d,0x00000006,0x0000035e,0x00000083,0x00050086,0x00000006, + 0x0000035f,0x0000035e,0x000000e1,0x00050080,0x00000006,0x00000360,0x0000035f,0x0000031f, + 0x0004007c,0x0000001b,0x00000361,0x00000360,0x0004003d,0x00000006,0x00000362,0x00000084, + 0x00050086,0x00000006,0x00000363,0x00000362,0x000000e1,0x00050080,0x00000006,0x00000364, + 0x00000363,0x0000031f,0x0004007c,0x0000001b,0x00000365,0x00000364,0x00050050,0x0000001c, + 0x00000366,0x00000361,0x00000365,0x00050080,0x0000001c,0x00000367,0x0000035d,0x00000366, + 0x0003003e,0x00000368,0x00000367,0x00050041,0x00000039,0x0000036a,0x00000250,0x00000102, + 0x0004003d,0x0000002e,0x0000036b,0x0000036a,0x0003003e,0x00000369,0x0000036b,0x0003003e, + 0x0000036c,0x000000e8,0x0004003d,0x00000006,0x0000036e,0x00000088,0x0003003e,0x0000036d, + 0x0000036e,0x00080039,0x00000002,0x0000036f,0x0000003f,0x00000368,0x00000369,0x0000036c, + 0x0000036d,0x0004003d,0x00000006,0x00000370,0x00000083,0x00050086,0x00000006,0x00000371, + 0x00000370,0x000000e1,0x00050080,0x00000006,0x00000372,0x00000371,0x0000031f,0x0004003d, + 0x00000006,0x00000373,0x00000084,0x00050086,0x00000006,0x00000374,0x00000373,0x000000e1, + 0x00050080,0x00000006,0x00000375,0x00000374,0x0000031f,0x0003003e,0x00000376,0x00000372, + 0x0003003e,0x00000377,0x00000375,0x00050041,0x00000039,0x00000379,0x00000250,0x00000102, + 0x0004003d,0x0000002e,0x0000037a,0x00000379,0x0003003e,0x00000378,0x0000037a,0x00070039, + 0x00000002,0x0000037b,0x00000053,0x00000376,0x00000377,0x00000378,0x000200f9,0x000002fa, + 0x000200f8,0x000002fa,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000091,0x00000000, + 0x00000082,0x00030037,0x00000007,0x0000008b,0x00030037,0x00000007,0x0000008c,0x00030037, + 0x00000069,0x0000008d,0x00030037,0x00000007,0x0000008e,0x00030037,0x00000007,0x0000008f, + 0x00030037,0x00000007,0x00000090,0x000200f8,0x00000092,0x0004003b,0x00000007,0x0000037c, + 0x00000007,0x0004003b,0x00000007,0x0000037e,0x00000007,0x0004003b,0x00000069,0x00000380, + 0x00000007,0x0004003b,0x00000007,0x00000382,0x00000007,0x0004003b,0x00000007,0x00000384, + 0x00000007,0x0004003b,0x00000007,0x00000386,0x00000007,0x0004003d,0x00000006,0x0000037d, + 0x0000008b,0x0003003e,0x0000037c,0x0000037d,0x0004003d,0x00000006,0x0000037f,0x0000008c, + 0x0003003e,0x0000037e,0x0000037f,0x0004003d,0x00000013,0x00000381,0x0000008d,0x0003003e, + 0x00000380,0x00000381,0x0004003d,0x00000006,0x00000383,0x0000008e,0x0003003e,0x00000382, + 0x00000383,0x0004003d,0x00000006,0x00000385,0x0000008f,0x0003003e,0x00000384,0x00000385, + 0x0004003d,0x00000006,0x00000387,0x00000090,0x0003003e,0x00000386,0x00000387,0x000a0039, + 0x00000002,0x00000388,0x00000089,0x0000037c,0x0000037e,0x00000380,0x00000382,0x00000384, + 0x00000386,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000099,0x00000000,0x00000082, + 0x00030037,0x00000007,0x00000093,0x00030037,0x00000007,0x00000094,0x00030037,0x00000069, + 0x00000095,0x00030037,0x00000007,0x00000096,0x00030037,0x00000007,0x00000097,0x00030037, + 0x00000007,0x00000098,0x000200f8,0x0000009a,0x0004003b,0x00000039,0x00000389,0x00000007, + 0x0004003b,0x00000007,0x0000038a,0x00000007,0x0004003b,0x00000007,0x0000038c,0x00000007, + 0x0004003b,0x00000039,0x0000038f,0x00000007,0x0004003b,0x0000001d,0x000003a3,0x00000007, + 0x0004003b,0x00000039,0x000003a4,0x00000007,0x0004003b,0x00000007,0x000003a6,0x00000007, + 0x0004003b,0x00000007,0x000003a8,0x00000007,0x0004003b,0x00000007,0x000003b0,0x00000007, + 0x0004003b,0x00000007,0x000003b1,0x00000007,0x0004003b,0x00000039,0x000003b3,0x00000007, + 0x0004003d,0x00000006,0x0000038b,0x00000093,0x0003003e,0x0000038a,0x0000038b,0x0004003d, + 0x00000006,0x0000038d,0x00000094,0x0003003e,0x0000038c,0x0000038d,0x00060039,0x0000002e, + 0x0000038e,0x0000004d,0x0000038a,0x0000038c,0x0003003e,0x00000389,0x0000038e,0x0004003d, + 0x0000002e,0x00000390,0x00000389,0x0003003e,0x0000038f,0x00000390,0x00050039,0x0000002e, + 0x00000391,0x00000067,0x0000038f,0x0003003e,0x00000389,0x00000391,0x0004003d,0x00000006, + 0x00000392,0x00000096,0x00050089,0x00000006,0x00000393,0x00000392,0x0000024d,0x000500aa, + 0x0000005e,0x00000394,0x00000393,0x0000010f,0x000300f7,0x00000396,0x00000000,0x000400fa, + 0x00000394,0x00000395,0x00000396,0x000200f8,0x00000395,0x0004003d,0x00000013,0x00000397, + 0x00000095,0x00050050,0x00000013,0x00000398,0x0000031f,0x0000031f,0x00050084,0x00000013, + 0x00000399,0x00000397,0x00000398,0x0004007c,0x0000001c,0x0000039a,0x00000399,0x0004003d, + 0x00000006,0x0000039b,0x00000093,0x00050086,0x00000006,0x0000039c,0x0000039b,0x000000e1, + 0x0004007c,0x0000001b,0x0000039d,0x0000039c,0x0004003d,0x00000006,0x0000039e,0x00000094, + 0x00050086,0x00000006,0x0000039f,0x0000039e,0x000000e1,0x0004007c,0x0000001b,0x000003a0, + 0x0000039f,0x00050050,0x0000001c,0x000003a1,0x0000039d,0x000003a0,0x00050080,0x0000001c, + 0x000003a2,0x0000039a,0x000003a1,0x0003003e,0x000003a3,0x000003a2,0x0004003d,0x0000002e, + 0x000003a5,0x00000389,0x0003003e,0x000003a4,0x000003a5,0x0004003d,0x00000006,0x000003a7, + 0x00000097,0x0003003e,0x000003a6,0x000003a7,0x0004003d,0x00000006,0x000003a9,0x00000098, + 0x0003003e,0x000003a8,0x000003a9,0x00080039,0x00000002,0x000003aa,0x0000003f,0x000003a3, + 0x000003a4,0x000003a6,0x000003a8,0x0004003d,0x00000006,0x000003ab,0x00000093,0x0004003d, + 0x00000006,0x000003ac,0x00000094,0x00050086,0x00000006,0x000003ad,0x000003ac,0x000000e1, + 0x00050089,0x00000006,0x000003ae,0x000003ad,0x000000e1,0x00050080,0x00000006,0x000003af, + 0x000003ab,0x000003ae,0x0003003e,0x000003b0,0x000003af,0x0004003d,0x00000006,0x000003b2, + 0x00000094,0x0003003e,0x000003b1,0x000003b2,0x0004003d,0x0000002e,0x000003b4,0x00000389, + 0x0003003e,0x000003b3,0x000003b4,0x00070039,0x00000002,0x000003b5,0x00000053,0x000003b0, + 0x000003b1,0x000003b3,0x000200f9,0x00000396,0x000200f8,0x00000396,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000a1,0x00000000,0x00000082,0x00030037,0x00000007,0x0000009b, + 0x00030037,0x00000007,0x0000009c,0x00030037,0x00000069,0x0000009d,0x00030037,0x00000007, + 0x0000009e,0x00030037,0x00000007,0x0000009f,0x00030037,0x00000007,0x000000a0,0x000200f8, + 0x000000a2,0x0004003b,0x00000039,0x000003ba,0x00000007,0x0004003b,0x00000007,0x000003c2, + 0x00000007,0x0004003b,0x00000007,0x000003c3,0x00000007,0x0004003b,0x00000039,0x000003c5, + 0x00000007,0x0004003b,0x0000001d,0x000003d9,0x00000007,0x0004003b,0x00000039,0x000003da, + 0x00000007,0x0004003b,0x00000007,0x000003dc,0x00000007,0x0004003b,0x00000007,0x000003de, + 0x00000007,0x0004003b,0x00000007,0x000003e8,0x00000007,0x0004003b,0x00000007,0x000003e9, + 0x00000007,0x0004003b,0x00000039,0x000003ea,0x00000007,0x0004003d,0x00000006,0x000003b6, + 0x0000009e,0x000500b0,0x0000005e,0x000003b7,0x000003b6,0x00000235,0x000300f7,0x000003b9, + 0x00000000,0x000400fa,0x000003b7,0x000003b8,0x000003b9,0x000200f8,0x000003b8,0x0004003d, + 0x00000006,0x000003bb,0x0000009b,0x00050084,0x00000006,0x000003bc,0x000003bb,0x000000e1, + 0x0004003d,0x00000006,0x000003bd,0x0000009c,0x00050089,0x00000006,0x000003be,0x000003bd, + 0x000000e1,0x00050080,0x00000006,0x000003bf,0x000003bc,0x000003be,0x0004003d,0x00000006, + 0x000003c0,0x0000009c,0x00050084,0x00000006,0x000003c1,0x000003c0,0x000000e1,0x0003003e, + 0x000003c2,0x000003bf,0x0003003e,0x000003c3,0x000003c1,0x00060039,0x0000002e,0x000003c4, + 0x0000004d,0x000003c2,0x000003c3,0x0003003e,0x000003ba,0x000003c4,0x0004003d,0x0000002e, + 0x000003c6,0x000003ba,0x0003003e,0x000003c5,0x000003c6,0x00050039,0x0000002e,0x000003c7, + 0x00000067,0x000003c5,0x0003003e,0x000003ba,0x000003c7,0x0004003d,0x00000006,0x000003c8, + 0x0000009e,0x00050089,0x00000006,0x000003c9,0x000003c8,0x0000024d,0x000500aa,0x0000005e, + 0x000003ca,0x000003c9,0x0000010f,0x000300f7,0x000003cc,0x00000000,0x000400fa,0x000003ca, + 0x000003cb,0x000003cc,0x000200f8,0x000003cb,0x0004003d,0x00000013,0x000003cd,0x0000009d, + 0x00050050,0x00000013,0x000003ce,0x0000024d,0x0000024d,0x00050084,0x00000013,0x000003cf, + 0x000003cd,0x000003ce,0x0004007c,0x0000001c,0x000003d0,0x000003cf,0x0004003d,0x00000006, + 0x000003d1,0x0000009b,0x00050086,0x00000006,0x000003d2,0x000003d1,0x000000e1,0x0004007c, + 0x0000001b,0x000003d3,0x000003d2,0x0004003d,0x00000006,0x000003d4,0x0000009c,0x00050086, + 0x00000006,0x000003d5,0x000003d4,0x000000e1,0x0004007c,0x0000001b,0x000003d6,0x000003d5, + 0x00050050,0x0000001c,0x000003d7,0x000003d3,0x000003d6,0x00050080,0x0000001c,0x000003d8, + 0x000003d0,0x000003d7,0x0003003e,0x000003d9,0x000003d8,0x0004003d,0x0000002e,0x000003db, + 0x000003ba,0x0003003e,0x000003da,0x000003db,0x0004003d,0x00000006,0x000003dd,0x0000009f, + 0x0003003e,0x000003dc,0x000003dd,0x0004003d,0x00000006,0x000003df,0x000000a0,0x0003003e, + 0x000003de,0x000003df,0x00080039,0x00000002,0x000003e0,0x0000003f,0x000003d9,0x000003da, + 0x000003dc,0x000003de,0x0004003d,0x00000006,0x000003e1,0x0000009b,0x00050084,0x00000006, + 0x000003e2,0x000003e1,0x000000e1,0x0004003d,0x00000006,0x000003e3,0x0000009c,0x00050086, + 0x00000006,0x000003e4,0x000003e3,0x000000e1,0x00050080,0x00000006,0x000003e5,0x000003e2, + 0x000003e4,0x0004003d,0x00000006,0x000003e6,0x0000009c,0x00050084,0x00000006,0x000003e7, + 0x000003e6,0x000000e1,0x0003003e,0x000003e8,0x000003e5,0x0003003e,0x000003e9,0x000003e7, + 0x0004003d,0x0000002e,0x000003eb,0x000003ba,0x0003003e,0x000003ea,0x000003eb,0x00070039, + 0x00000002,0x000003ec,0x00000053,0x000003e8,0x000003e9,0x000003ea,0x000200f9,0x000003cc, + 0x000200f8,0x000003cc,0x000200f9,0x000003b9,0x000200f8,0x000003b9,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000a9,0x00000000,0x00000082,0x00030037,0x00000007,0x000000a3, + 0x00030037,0x00000007,0x000000a4,0x00030037,0x00000069,0x000000a5,0x00030037,0x00000007, + 0x000000a6,0x00030037,0x00000007,0x000000a7,0x00030037,0x00000007,0x000000a8,0x000200f8, + 0x000000aa,0x0004003b,0x00000039,0x000003f1,0x00000007,0x0004003b,0x00000007,0x000003f8, + 0x00000007,0x0004003b,0x00000007,0x000003f9,0x00000007,0x0004003b,0x00000039,0x000003fb, + 0x00000007,0x0004003b,0x0000001d,0x0000040f,0x00000007,0x0004003b,0x00000039,0x00000410, + 0x00000007,0x0004003b,0x00000007,0x00000412,0x00000007,0x0004003b,0x00000007,0x00000414, + 0x00000007,0x0004003b,0x00000007,0x0000041b,0x00000007,0x0004003b,0x00000007,0x0000041c, + 0x00000007,0x0004003b,0x00000039,0x0000041d,0x00000007,0x0004003d,0x00000006,0x000003ed, + 0x000000a6,0x000500b0,0x0000005e,0x000003ee,0x000003ed,0x00000158,0x000300f7,0x000003f0, + 0x00000000,0x000400fa,0x000003ee,0x000003ef,0x000003f0,0x000200f8,0x000003ef,0x0004003d, + 0x00000006,0x000003f2,0x000000a3,0x00050084,0x00000006,0x000003f3,0x000003f2,0x0000024d, + 0x0004003d,0x00000006,0x000003f4,0x000000a4,0x00050080,0x00000006,0x000003f5,0x000003f3, + 0x000003f4,0x0004003d,0x00000006,0x000003f6,0x000000a4,0x00050084,0x00000006,0x000003f7, + 0x000003f6,0x0000024d,0x0003003e,0x000003f8,0x000003f5,0x0003003e,0x000003f9,0x000003f7, + 0x00060039,0x0000002e,0x000003fa,0x0000004d,0x000003f8,0x000003f9,0x0003003e,0x000003f1, + 0x000003fa,0x0004003d,0x0000002e,0x000003fc,0x000003f1,0x0003003e,0x000003fb,0x000003fc, + 0x00050039,0x0000002e,0x000003fd,0x00000067,0x000003fb,0x0003003e,0x000003f1,0x000003fd, + 0x0004003d,0x00000006,0x000003fe,0x000000a6,0x00050089,0x00000006,0x000003ff,0x000003fe, + 0x0000024d,0x000500aa,0x0000005e,0x00000400,0x000003ff,0x0000010f,0x000300f7,0x00000402, + 0x00000000,0x000400fa,0x00000400,0x00000401,0x00000402,0x000200f8,0x00000401,0x0004003d, + 0x00000013,0x00000403,0x000000a5,0x00050050,0x00000013,0x00000404,0x000000e1,0x000000e1, + 0x00050084,0x00000013,0x00000405,0x00000403,0x00000404,0x0004007c,0x0000001c,0x00000406, + 0x00000405,0x0004003d,0x00000006,0x00000407,0x000000a3,0x00050086,0x00000006,0x00000408, + 0x00000407,0x000000e1,0x0004007c,0x0000001b,0x00000409,0x00000408,0x0004003d,0x00000006, + 0x0000040a,0x000000a4,0x00050086,0x00000006,0x0000040b,0x0000040a,0x000000e1,0x0004007c, + 0x0000001b,0x0000040c,0x0000040b,0x00050050,0x0000001c,0x0000040d,0x00000409,0x0000040c, + 0x00050080,0x0000001c,0x0000040e,0x00000406,0x0000040d,0x0003003e,0x0000040f,0x0000040e, + 0x0004003d,0x0000002e,0x00000411,0x000003f1,0x0003003e,0x00000410,0x00000411,0x0004003d, + 0x00000006,0x00000413,0x000000a7,0x0003003e,0x00000412,0x00000413,0x0004003d,0x00000006, + 0x00000415,0x000000a8,0x0003003e,0x00000414,0x00000415,0x00080039,0x00000002,0x00000416, + 0x0000003f,0x0000040f,0x00000410,0x00000412,0x00000414,0x0004003d,0x00000006,0x00000417, + 0x000000a3,0x00050086,0x00000006,0x00000418,0x00000417,0x000000e1,0x0004003d,0x00000006, + 0x00000419,0x000000a4,0x00050080,0x00000006,0x0000041a,0x00000418,0x00000419,0x0003003e, + 0x0000041b,0x0000041a,0x0003003e,0x0000041c,0x0000010f,0x0004003d,0x0000002e,0x0000041e, + 0x000003f1,0x0003003e,0x0000041d,0x0000041e,0x00070039,0x00000002,0x0000041f,0x00000053, + 0x0000041b,0x0000041c,0x0000041d,0x000200f9,0x00000402,0x000200f8,0x00000402,0x000200f9, + 0x000003f0,0x000200f8,0x000003f0,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b0, + 0x00000000,0x000000ab,0x00030037,0x00000069,0x000000ac,0x00030037,0x00000007,0x000000ad, + 0x00030037,0x00000007,0x000000ae,0x00030037,0x00000007,0x000000af,0x000200f8,0x000000b1, + 0x0004003b,0x00000039,0x00000424,0x00000007,0x0004003b,0x00000007,0x00000425,0x00000007, + 0x0004003b,0x00000007,0x00000427,0x00000007,0x0004003b,0x00000039,0x00000429,0x00000007, + 0x0004003b,0x0000001d,0x00000433,0x00000007,0x0004003b,0x00000039,0x00000434,0x00000007, + 0x0004003b,0x00000007,0x00000436,0x00000007,0x0004003b,0x00000007,0x00000438,0x00000007, + 0x0004003d,0x00000006,0x00000420,0x000000ad,0x000500b0,0x0000005e,0x00000421,0x00000420, + 0x0000024d,0x000300f7,0x00000423,0x00000000,0x000400fa,0x00000421,0x00000422,0x00000423, + 0x000200f8,0x00000422,0x0004003d,0x00000006,0x00000426,0x000000ad,0x0003003e,0x00000425, + 0x00000426,0x0003003e,0x00000427,0x0000010f,0x00060039,0x0000002e,0x00000428,0x0000004d, + 0x00000425,0x00000427,0x0003003e,0x00000424,0x00000428,0x0004003d,0x0000002e,0x0000042a, + 0x00000424,0x0003003e,0x00000429,0x0000042a,0x00050039,0x0000002e,0x0000042b,0x00000067, + 0x00000429,0x0003003e,0x00000424,0x0000042b,0x0004003d,0x00000006,0x0000042c,0x000000ad, + 0x00050089,0x00000006,0x0000042d,0x0000042c,0x0000024d,0x000500aa,0x0000005e,0x0000042e, + 0x0000042d,0x0000010f,0x000300f7,0x00000430,0x00000000,0x000400fa,0x0000042e,0x0000042f, + 0x00000430,0x000200f8,0x0000042f,0x0004003d,0x00000013,0x00000431,0x000000ac,0x0004007c, + 0x0000001c,0x00000432,0x00000431,0x0003003e,0x00000433,0x00000432,0x0004003d,0x0000002e, + 0x00000435,0x00000424,0x0003003e,0x00000434,0x00000435,0x0004003d,0x00000006,0x00000437, + 0x000000ae,0x0003003e,0x00000436,0x00000437,0x0004003d,0x00000006,0x00000439,0x000000af, + 0x0003003e,0x00000438,0x00000439,0x00080039,0x00000002,0x0000043a,0x0000003f,0x00000433, + 0x00000434,0x00000436,0x00000438,0x000200f9,0x00000430,0x000200f8,0x00000430,0x000200f9, + 0x00000423,0x000200f8,0x00000423,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000b7, + 0x00000000,0x000000b2,0x00030037,0x00000007,0x000000b3,0x00030037,0x00000007,0x000000b4, + 0x00030037,0x00000007,0x000000b5,0x00030037,0x00000007,0x000000b6,0x000200f8,0x000000b8, + 0x0004003b,0x0000001d,0x0000043b,0x00000007,0x0004003b,0x0000001d,0x00000445,0x00000007, + 0x0004003b,0x00000039,0x0000044f,0x00000007,0x0004003b,0x00000069,0x00000452,0x00000007, + 0x0004003b,0x00000007,0x00000453,0x00000007,0x0004003b,0x0000001d,0x00000457,0x00000007, + 0x0004003b,0x00000039,0x00000459,0x00000007,0x0004003b,0x00000007,0x0000045b,0x00000007, + 0x0004003b,0x00000007,0x0000045c,0x00000007,0x0004003b,0x00000039,0x00000471,0x00000007, + 0x0004003b,0x00000069,0x00000474,0x00000007,0x0004003b,0x00000007,0x00000475,0x00000007, + 0x0004003b,0x0000001d,0x00000478,0x00000007,0x0004003b,0x00000039,0x0000047a,0x00000007, + 0x0004003b,0x00000007,0x0000047c,0x00000007,0x0004003b,0x00000007,0x0000047d,0x00000007, + 0x0004003b,0x00000039,0x00000492,0x00000007,0x0004003b,0x00000069,0x00000495,0x00000007, + 0x0004003b,0x00000007,0x00000496,0x00000007,0x0004003b,0x0000001d,0x00000499,0x00000007, + 0x0004003b,0x00000039,0x0000049b,0x00000007,0x0004003b,0x00000007,0x0000049d,0x00000007, + 0x0004003b,0x00000007,0x0000049e,0x00000007,0x0004003b,0x00000039,0x000004b3,0x00000007, + 0x0004003b,0x00000069,0x000004b6,0x00000007,0x0004003b,0x00000007,0x000004b7,0x00000007, + 0x0004003b,0x0000001d,0x000004ba,0x00000007,0x0004003b,0x00000039,0x000004bc,0x00000007, + 0x0004003b,0x00000007,0x000004be,0x00000007,0x0004003b,0x00000007,0x000004bf,0x00000007, + 0x0004003b,0x00000039,0x000004c8,0x00000007,0x0004003b,0x00000039,0x000004c9,0x00000007, + 0x0004003b,0x00000039,0x000004cb,0x00000007,0x0004003b,0x00000039,0x000004cd,0x00000007, + 0x0004003b,0x00000039,0x000004cf,0x00000007,0x0004003b,0x0000001d,0x000004d7,0x00000007, + 0x0004003b,0x00000039,0x000004d8,0x00000007,0x0004003b,0x00000007,0x000004da,0x00000007, + 0x0004003b,0x00000007,0x000004db,0x00000007,0x0004003b,0x00000007,0x000004de,0x00000007, + 0x0004003b,0x00000007,0x000004e0,0x00000007,0x0004003b,0x00000039,0x000004e2,0x00000007, + 0x0004003d,0x00000006,0x0000043c,0x000000b3,0x00050084,0x00000006,0x0000043d,0x0000043c, + 0x0000024d,0x00050080,0x00000006,0x0000043e,0x0000043d,0x0000010f,0x0004007c,0x0000001b, + 0x0000043f,0x0000043e,0x0004003d,0x00000006,0x00000440,0x000000b4,0x00050084,0x00000006, + 0x00000441,0x00000440,0x0000024d,0x00050080,0x00000006,0x00000442,0x00000441,0x0000010f, + 0x0004007c,0x0000001b,0x00000443,0x00000442,0x00050050,0x0000001c,0x00000444,0x0000043f, + 0x00000443,0x0003003e,0x0000043b,0x00000444,0x0004003d,0x00000006,0x00000446,0x000000b3, + 0x00050084,0x00000006,0x00000447,0x00000446,0x000000e1,0x00050080,0x00000006,0x00000448, + 0x00000447,0x0000010f,0x0004007c,0x0000001b,0x00000449,0x00000448,0x0004003d,0x00000006, + 0x0000044a,0x000000b4,0x00050084,0x00000006,0x0000044b,0x0000044a,0x000000e1,0x00050080, + 0x00000006,0x0000044c,0x0000044b,0x0000010f,0x0004007c,0x0000001b,0x0000044d,0x0000044c, + 0x00050050,0x0000001c,0x0000044e,0x00000449,0x0000044d,0x0003003e,0x00000445,0x0000044e, + 0x0004003d,0x0000001c,0x00000450,0x0000043b,0x0004007c,0x00000013,0x00000451,0x00000450, + 0x0003003e,0x00000452,0x00000451,0x0004003d,0x00000006,0x00000454,0x000000b6,0x0003003e, + 0x00000453,0x00000454,0x00060039,0x0000002e,0x00000455,0x00000075,0x00000452,0x00000453, + 0x0003003e,0x0000044f,0x00000455,0x0004003d,0x0000001c,0x00000458,0x00000445,0x0003003e, + 0x00000457,0x00000458,0x0004003d,0x0000002e,0x0000045a,0x0000044f,0x0003003e,0x00000459, + 0x0000045a,0x0003003e,0x0000045b,0x00000456,0x0004003d,0x00000006,0x0000045d,0x000000b6, + 0x0003003e,0x0000045c,0x0000045d,0x00080039,0x00000002,0x0000045e,0x0000003f,0x00000457, + 0x00000459,0x0000045b,0x0000045c,0x0004003d,0x00000006,0x0000045f,0x000000b3,0x00050084, + 0x00000006,0x00000460,0x0000045f,0x0000024d,0x00050080,0x00000006,0x00000461,0x00000460, + 0x000000e1,0x0004007c,0x0000001b,0x00000462,0x00000461,0x0004003d,0x00000006,0x00000463, + 0x000000b4,0x00050084,0x00000006,0x00000464,0x00000463,0x0000024d,0x00050080,0x00000006, + 0x00000465,0x00000464,0x0000010f,0x0004007c,0x0000001b,0x00000466,0x00000465,0x00050050, + 0x0000001c,0x00000467,0x00000462,0x00000466,0x0003003e,0x0000043b,0x00000467,0x0004003d, + 0x00000006,0x00000468,0x000000b3,0x00050084,0x00000006,0x00000469,0x00000468,0x000000e1, + 0x00050080,0x00000006,0x0000046a,0x00000469,0x000000e8,0x0004007c,0x0000001b,0x0000046b, + 0x0000046a,0x0004003d,0x00000006,0x0000046c,0x000000b4,0x00050084,0x00000006,0x0000046d, + 0x0000046c,0x000000e1,0x00050080,0x00000006,0x0000046e,0x0000046d,0x0000010f,0x0004007c, + 0x0000001b,0x0000046f,0x0000046e,0x00050050,0x0000001c,0x00000470,0x0000046b,0x0000046f, + 0x0003003e,0x00000445,0x00000470,0x0004003d,0x0000001c,0x00000472,0x0000043b,0x0004007c, + 0x00000013,0x00000473,0x00000472,0x0003003e,0x00000474,0x00000473,0x0004003d,0x00000006, + 0x00000476,0x000000b6,0x0003003e,0x00000475,0x00000476,0x00060039,0x0000002e,0x00000477, + 0x00000075,0x00000474,0x00000475,0x0003003e,0x00000471,0x00000477,0x0004003d,0x0000001c, + 0x00000479,0x00000445,0x0003003e,0x00000478,0x00000479,0x0004003d,0x0000002e,0x0000047b, + 0x00000471,0x0003003e,0x0000047a,0x0000047b,0x0003003e,0x0000047c,0x00000456,0x0004003d, + 0x00000006,0x0000047e,0x000000b6,0x0003003e,0x0000047d,0x0000047e,0x00080039,0x00000002, + 0x0000047f,0x0000003f,0x00000478,0x0000047a,0x0000047c,0x0000047d,0x0004003d,0x00000006, + 0x00000480,0x000000b3,0x00050084,0x00000006,0x00000481,0x00000480,0x0000024d,0x00050080, + 0x00000006,0x00000482,0x00000481,0x0000010f,0x0004007c,0x0000001b,0x00000483,0x00000482, + 0x0004003d,0x00000006,0x00000484,0x000000b4,0x00050084,0x00000006,0x00000485,0x00000484, + 0x0000024d,0x00050080,0x00000006,0x00000486,0x00000485,0x000000e1,0x0004007c,0x0000001b, + 0x00000487,0x00000486,0x00050050,0x0000001c,0x00000488,0x00000483,0x00000487,0x0003003e, + 0x0000043b,0x00000488,0x0004003d,0x00000006,0x00000489,0x000000b3,0x00050084,0x00000006, + 0x0000048a,0x00000489,0x000000e1,0x00050080,0x00000006,0x0000048b,0x0000048a,0x0000010f, + 0x0004007c,0x0000001b,0x0000048c,0x0000048b,0x0004003d,0x00000006,0x0000048d,0x000000b4, + 0x00050084,0x00000006,0x0000048e,0x0000048d,0x000000e1,0x00050080,0x00000006,0x0000048f, + 0x0000048e,0x000000e8,0x0004007c,0x0000001b,0x00000490,0x0000048f,0x00050050,0x0000001c, + 0x00000491,0x0000048c,0x00000490,0x0003003e,0x00000445,0x00000491,0x0004003d,0x0000001c, + 0x00000493,0x0000043b,0x0004007c,0x00000013,0x00000494,0x00000493,0x0003003e,0x00000495, + 0x00000494,0x0004003d,0x00000006,0x00000497,0x000000b6,0x0003003e,0x00000496,0x00000497, + 0x00060039,0x0000002e,0x00000498,0x00000075,0x00000495,0x00000496,0x0003003e,0x00000492, + 0x00000498,0x0004003d,0x0000001c,0x0000049a,0x00000445,0x0003003e,0x00000499,0x0000049a, + 0x0004003d,0x0000002e,0x0000049c,0x00000492,0x0003003e,0x0000049b,0x0000049c,0x0003003e, + 0x0000049d,0x00000456,0x0004003d,0x00000006,0x0000049f,0x000000b6,0x0003003e,0x0000049e, + 0x0000049f,0x00080039,0x00000002,0x000004a0,0x0000003f,0x00000499,0x0000049b,0x0000049d, + 0x0000049e,0x0004003d,0x00000006,0x000004a1,0x000000b3,0x00050084,0x00000006,0x000004a2, + 0x000004a1,0x0000024d,0x00050080,0x00000006,0x000004a3,0x000004a2,0x000000e1,0x0004007c, + 0x0000001b,0x000004a4,0x000004a3,0x0004003d,0x00000006,0x000004a5,0x000000b4,0x00050084, + 0x00000006,0x000004a6,0x000004a5,0x0000024d,0x00050080,0x00000006,0x000004a7,0x000004a6, + 0x000000e1,0x0004007c,0x0000001b,0x000004a8,0x000004a7,0x00050050,0x0000001c,0x000004a9, + 0x000004a4,0x000004a8,0x0003003e,0x0000043b,0x000004a9,0x0004003d,0x00000006,0x000004aa, + 0x000000b3,0x00050084,0x00000006,0x000004ab,0x000004aa,0x000000e1,0x00050080,0x00000006, + 0x000004ac,0x000004ab,0x000000e8,0x0004007c,0x0000001b,0x000004ad,0x000004ac,0x0004003d, + 0x00000006,0x000004ae,0x000000b4,0x00050084,0x00000006,0x000004af,0x000004ae,0x000000e1, + 0x00050080,0x00000006,0x000004b0,0x000004af,0x000000e8,0x0004007c,0x0000001b,0x000004b1, + 0x000004b0,0x00050050,0x0000001c,0x000004b2,0x000004ad,0x000004b1,0x0003003e,0x00000445, + 0x000004b2,0x0004003d,0x0000001c,0x000004b4,0x0000043b,0x0004007c,0x00000013,0x000004b5, + 0x000004b4,0x0003003e,0x000004b6,0x000004b5,0x0004003d,0x00000006,0x000004b8,0x000000b6, + 0x0003003e,0x000004b7,0x000004b8,0x00060039,0x0000002e,0x000004b9,0x00000075,0x000004b6, + 0x000004b7,0x0003003e,0x000004b3,0x000004b9,0x0004003d,0x0000001c,0x000004bb,0x00000445, + 0x0003003e,0x000004ba,0x000004bb,0x0004003d,0x0000002e,0x000004bd,0x000004b3,0x0003003e, + 0x000004bc,0x000004bd,0x0003003e,0x000004be,0x00000456,0x0004003d,0x00000006,0x000004c0, + 0x000000b6,0x0003003e,0x000004bf,0x000004c0,0x00080039,0x00000002,0x000004c1,0x0000003f, + 0x000004ba,0x000004bc,0x000004be,0x000004bf,0x0004003d,0x00000006,0x000004c2,0x000000b5, + 0x000500b2,0x0000005e,0x000004c4,0x000004c2,0x000004c3,0x000300f7,0x000004c6,0x00000000, + 0x000400fa,0x000004c4,0x000004c5,0x000004c6,0x000200f8,0x000004c5,0x000100fd,0x000200f8, + 0x000004c6,0x0004003d,0x0000002e,0x000004ca,0x0000044f,0x0003003e,0x000004c9,0x000004ca, + 0x0004003d,0x0000002e,0x000004cc,0x00000471,0x0003003e,0x000004cb,0x000004cc,0x0004003d, + 0x0000002e,0x000004ce,0x00000492,0x0003003e,0x000004cd,0x000004ce,0x0004003d,0x0000002e, + 0x000004d0,0x000004b3,0x0003003e,0x000004cf,0x000004d0,0x00080039,0x0000002e,0x000004d1, + 0x0000005a,0x000004c9,0x000004cb,0x000004cd,0x000004cf,0x0003003e,0x000004c8,0x000004d1, + 0x0004003d,0x00000006,0x000004d2,0x000000b3,0x0004007c,0x0000001b,0x000004d3,0x000004d2, + 0x0004003d,0x00000006,0x000004d4,0x000000b4,0x0004007c,0x0000001b,0x000004d5,0x000004d4, + 0x00050050,0x0000001c,0x000004d6,0x000004d3,0x000004d5,0x0003003e,0x000004d7,0x000004d6, + 0x0004003d,0x0000002e,0x000004d9,0x000004c8,0x0003003e,0x000004d8,0x000004d9,0x0003003e, + 0x000004da,0x000004c3,0x0004003d,0x00000006,0x000004dc,0x000000b6,0x0003003e,0x000004db, + 0x000004dc,0x00080039,0x00000002,0x000004dd,0x0000003f,0x000004d7,0x000004d8,0x000004da, + 0x000004db,0x0004003d,0x00000006,0x000004df,0x000000b3,0x0003003e,0x000004de,0x000004df, + 0x0004003d,0x00000006,0x000004e1,0x000000b4,0x0003003e,0x000004e0,0x000004e1,0x0004003d, + 0x0000002e,0x000004e3,0x000004c8,0x0003003e,0x000004e2,0x000004e3,0x00070039,0x00000002, + 0x000004e4,0x00000053,0x000004de,0x000004e0,0x000004e2,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000c1,0x00000000,0x000000b9,0x00030037,0x00000007,0x000000ba,0x00030037, + 0x00000007,0x000000bb,0x00030037,0x00000069,0x000000bc,0x00030037,0x00000007,0x000000bd, + 0x00030037,0x00000007,0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007, + 0x000000c0,0x000200f8,0x000000c2,0x0004003b,0x00000007,0x000004ec,0x00000007,0x0004003b, + 0x00000007,0x000004ee,0x00000007,0x0004003b,0x00000069,0x000004f0,0x00000007,0x0004003b, + 0x00000007,0x000004f2,0x00000007,0x0004003b,0x00000007,0x000004f4,0x00000007,0x0004003b, + 0x00000007,0x000004f6,0x00000007,0x0004003b,0x00000007,0x00000503,0x00000007,0x0004003b, + 0x00000007,0x00000505,0x00000007,0x0004003b,0x00000069,0x00000507,0x00000007,0x0004003b, + 0x00000007,0x00000509,0x00000007,0x0004003b,0x00000007,0x0000050b,0x00000007,0x0004003b, + 0x00000007,0x0000050c,0x00000007,0x0004003b,0x00000007,0x00000519,0x00000007,0x0004003b, + 0x00000007,0x0000051b,0x00000007,0x0004003b,0x00000069,0x0000051d,0x00000007,0x0004003b, + 0x00000007,0x0000051f,0x00000007,0x0004003b,0x00000007,0x00000521,0x00000007,0x0004003b, + 0x00000007,0x00000522,0x00000007,0x0004003b,0x00000069,0x0000052f,0x00000007,0x0004003b, + 0x00000007,0x00000531,0x00000007,0x0004003b,0x00000007,0x00000533,0x00000007,0x0004003b, + 0x00000007,0x00000534,0x00000007,0x0004003d,0x00000006,0x000004e5,0x000000bf,0x0004003d, + 0x00000006,0x000004e6,0x000000be,0x000500b2,0x0000005e,0x000004e7,0x000004e5,0x000004e6, + 0x000300f7,0x000004e9,0x00000000,0x000400fa,0x000004e7,0x000004e8,0x000004e9,0x000200f8, + 0x000004e8,0x000100fd,0x000200f8,0x000004e9,0x00040039,0x00000002,0x000004eb,0x0000005c, + 0x0004003d,0x00000006,0x000004ed,0x000000ba,0x0003003e,0x000004ec,0x000004ed,0x0004003d, + 0x00000006,0x000004ef,0x000000bb,0x0003003e,0x000004ee,0x000004ef,0x0004003d,0x00000013, + 0x000004f1,0x000000bc,0x0003003e,0x000004f0,0x000004f1,0x0004003d,0x00000006,0x000004f3, + 0x000000bd,0x0003003e,0x000004f2,0x000004f3,0x0004003d,0x00000006,0x000004f5,0x000000be, + 0x0003003e,0x000004f4,0x000004f5,0x0004003d,0x00000006,0x000004f7,0x000000c0,0x0003003e, + 0x000004f6,0x000004f7,0x000a0039,0x00000002,0x000004f8,0x00000099,0x000004ec,0x000004ee, + 0x000004f0,0x000004f2,0x000004f4,0x000004f6,0x0004003d,0x00000006,0x000004f9,0x000000bf, + 0x0004003d,0x00000006,0x000004fa,0x000000be,0x00050080,0x00000006,0x000004fb,0x000004fa, + 0x000000e8,0x000500b2,0x0000005e,0x000004fc,0x000004f9,0x000004fb,0x000300f7,0x000004fe, + 0x00000000,0x000400fa,0x000004fc,0x000004fd,0x000004fe,0x000200f8,0x000004fd,0x000100fd, + 0x000200f8,0x000004fe,0x00040039,0x00000002,0x00000500,0x0000005c,0x0004003d,0x00000006, + 0x00000501,0x000000be,0x00050080,0x00000006,0x00000502,0x00000501,0x000000e8,0x0004003d, + 0x00000006,0x00000504,0x000000ba,0x0003003e,0x00000503,0x00000504,0x0004003d,0x00000006, + 0x00000506,0x000000bb,0x0003003e,0x00000505,0x00000506,0x0004003d,0x00000013,0x00000508, + 0x000000bc,0x0003003e,0x00000507,0x00000508,0x0004003d,0x00000006,0x0000050a,0x000000bd, + 0x0003003e,0x00000509,0x0000050a,0x0003003e,0x0000050b,0x00000502,0x0004003d,0x00000006, + 0x0000050d,0x000000c0,0x0003003e,0x0000050c,0x0000050d,0x000a0039,0x00000002,0x0000050e, + 0x000000a1,0x00000503,0x00000505,0x00000507,0x00000509,0x0000050b,0x0000050c,0x0004003d, + 0x00000006,0x0000050f,0x000000bf,0x0004003d,0x00000006,0x00000510,0x000000be,0x00050080, + 0x00000006,0x00000511,0x00000510,0x000000e1,0x000500b2,0x0000005e,0x00000512,0x0000050f, + 0x00000511,0x000300f7,0x00000514,0x00000000,0x000400fa,0x00000512,0x00000513,0x00000514, + 0x000200f8,0x00000513,0x000100fd,0x000200f8,0x00000514,0x00040039,0x00000002,0x00000516, + 0x0000005c,0x0004003d,0x00000006,0x00000517,0x000000be,0x00050080,0x00000006,0x00000518, + 0x00000517,0x000000e1,0x0004003d,0x00000006,0x0000051a,0x000000ba,0x0003003e,0x00000519, + 0x0000051a,0x0004003d,0x00000006,0x0000051c,0x000000bb,0x0003003e,0x0000051b,0x0000051c, + 0x0004003d,0x00000013,0x0000051e,0x000000bc,0x0003003e,0x0000051d,0x0000051e,0x0004003d, + 0x00000006,0x00000520,0x000000bd,0x0003003e,0x0000051f,0x00000520,0x0003003e,0x00000521, + 0x00000518,0x0004003d,0x00000006,0x00000523,0x000000c0,0x0003003e,0x00000522,0x00000523, + 0x000a0039,0x00000002,0x00000524,0x000000a9,0x00000519,0x0000051b,0x0000051d,0x0000051f, + 0x00000521,0x00000522,0x0004003d,0x00000006,0x00000525,0x000000bf,0x0004003d,0x00000006, + 0x00000526,0x000000be,0x00050080,0x00000006,0x00000527,0x00000526,0x000000e2,0x000500b2, + 0x0000005e,0x00000528,0x00000525,0x00000527,0x000300f7,0x0000052a,0x00000000,0x000400fa, + 0x00000528,0x00000529,0x0000052a,0x000200f8,0x00000529,0x000100fd,0x000200f8,0x0000052a, + 0x00040039,0x00000002,0x0000052c,0x0000005c,0x0004003d,0x00000006,0x0000052d,0x000000be, + 0x00050080,0x00000006,0x0000052e,0x0000052d,0x000000e2,0x0004003d,0x00000013,0x00000530, + 0x000000bc,0x0003003e,0x0000052f,0x00000530,0x0004003d,0x00000006,0x00000532,0x000000bd, + 0x0003003e,0x00000531,0x00000532,0x0003003e,0x00000533,0x0000052e,0x0004003d,0x00000006, + 0x00000535,0x000000c0,0x0003003e,0x00000534,0x00000535,0x00080039,0x00000002,0x00000536, + 0x000000b0,0x0000052f,0x00000531,0x00000533,0x00000534,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000c9,0x00000000,0x000000c3,0x00030037,0x00000069,0x000000c4,0x00030037, + 0x00000007,0x000000c5,0x00030037,0x00000007,0x000000c6,0x00030037,0x00000007,0x000000c7, + 0x00030037,0x00000007,0x000000c8,0x000200f8,0x000000ca,0x0004003b,0x00000069,0x00000537, + 0x00000007,0x0004003b,0x00000007,0x0000053a,0x00000007,0x0004003b,0x00000007,0x0000053c, + 0x00000007,0x0004003b,0x00000007,0x00000545,0x00000007,0x0004003b,0x00000007,0x0000054d, + 0x00000007,0x0004003b,0x00000007,0x0000054f,0x00000007,0x0004003b,0x00000069,0x00000551, + 0x00000007,0x0004003b,0x00000007,0x00000553,0x00000007,0x0004003b,0x00000007,0x00000555, + 0x00000007,0x0004003b,0x00000007,0x00000557,0x00000007,0x0004003b,0x00000007,0x0000055a, + 0x00000007,0x0004003b,0x00000007,0x0000055c,0x00000007,0x0004003b,0x00000069,0x0000055e, + 0x00000007,0x0004003b,0x00000007,0x00000560,0x00000007,0x0004003b,0x00000007,0x00000562, + 0x00000007,0x0004003b,0x00000007,0x00000563,0x00000007,0x0004003b,0x00000007,0x00000565, + 0x00000007,0x0004003b,0x00000007,0x0000056d,0x00000007,0x0004003b,0x00000007,0x0000056f, + 0x00000007,0x0004003b,0x00000007,0x00000571,0x00000007,0x0004003b,0x00000007,0x00000577, + 0x00000007,0x0004003b,0x00000007,0x0000057a,0x00000007,0x0004003b,0x00000007,0x0000057c, + 0x00000007,0x0004003b,0x00000007,0x0000057e,0x00000007,0x0004003b,0x00000007,0x00000580, + 0x00000007,0x0004003b,0x00000007,0x00000583,0x00000007,0x0004003b,0x00000007,0x00000585, + 0x00000007,0x0004003b,0x00000069,0x00000587,0x00000007,0x0004003b,0x00000007,0x00000588, + 0x00000007,0x0004003b,0x00000007,0x0000058a,0x00000007,0x0004003b,0x00000007,0x0000058b, + 0x00000007,0x0004003b,0x00000007,0x0000058d,0x00000007,0x0004003d,0x00000006,0x00000538, + 0x000000c5,0x00050089,0x00000006,0x00000539,0x00000538,0x00000235,0x0003003e,0x0000053a, + 0x00000539,0x00050039,0x00000013,0x0000053b,0x00000016,0x0000053a,0x0003003e,0x00000537, + 0x0000053b,0x00050041,0x00000007,0x0000053d,0x00000537,0x0000010f,0x0004003d,0x00000006, + 0x0000053e,0x0000053d,0x0004003d,0x00000006,0x0000053f,0x000000c5,0x000500c2,0x00000006, + 0x00000541,0x0000053f,0x00000540,0x00050089,0x00000006,0x00000542,0x00000541,0x000000e1, + 0x00050084,0x00000006,0x00000543,0x0000031f,0x00000542,0x00050080,0x00000006,0x00000544, + 0x0000053e,0x00000543,0x0003003e,0x0000053c,0x00000544,0x00050041,0x00000007,0x00000546, + 0x00000537,0x000000e8,0x0004003d,0x00000006,0x00000547,0x00000546,0x0004003d,0x00000006, + 0x00000548,0x000000c5,0x000500c2,0x00000006,0x0000054a,0x00000548,0x00000549,0x00050084, + 0x00000006,0x0000054b,0x0000031f,0x0000054a,0x00050080,0x00000006,0x0000054c,0x00000547, + 0x0000054b,0x0003003e,0x00000545,0x0000054c,0x0004003d,0x00000006,0x0000054e,0x0000053c, + 0x0003003e,0x0000054d,0x0000054e,0x0004003d,0x00000006,0x00000550,0x00000545,0x0003003e, + 0x0000054f,0x00000550,0x0004003d,0x00000013,0x00000552,0x000000c4,0x0003003e,0x00000551, + 0x00000552,0x0004003d,0x00000006,0x00000554,0x000000c5,0x0003003e,0x00000553,0x00000554, + 0x0004003d,0x00000006,0x00000556,0x000000c6,0x0003003e,0x00000555,0x00000556,0x0004003d, + 0x00000006,0x00000558,0x000000c8,0x0003003e,0x00000557,0x00000558,0x000a0039,0x00000002, + 0x00000559,0x00000091,0x0000054d,0x0000054f,0x00000551,0x00000553,0x00000555,0x00000557, + 0x0004003d,0x00000006,0x0000055b,0x0000053c,0x0003003e,0x0000055a,0x0000055b,0x0004003d, + 0x00000006,0x0000055d,0x00000545,0x0003003e,0x0000055c,0x0000055d,0x0004003d,0x00000013, + 0x0000055f,0x000000c4,0x0003003e,0x0000055e,0x0000055f,0x0004003d,0x00000006,0x00000561, + 0x000000c5,0x0003003e,0x00000560,0x00000561,0x0003003e,0x00000562,0x000000e1,0x0004003d, + 0x00000006,0x00000564,0x000000c6,0x0003003e,0x00000563,0x00000564,0x0004003d,0x00000006, + 0x00000566,0x000000c8,0x0003003e,0x00000565,0x00000566,0x000b0039,0x00000002,0x00000567, + 0x000000c1,0x0000055a,0x0000055c,0x0000055e,0x00000560,0x00000562,0x00000563,0x00000565, + 0x0004003d,0x00000006,0x00000568,0x000000c6,0x000500b2,0x0000005e,0x00000569,0x00000568, + 0x00000456,0x000300f7,0x0000056b,0x00000000,0x000400fa,0x00000569,0x0000056a,0x0000056b, + 0x000200f8,0x0000056a,0x000100fd,0x000200f8,0x0000056b,0x0004003d,0x00000006,0x0000056e, + 0x000000c7,0x0003003e,0x0000056d,0x0000056e,0x0004003d,0x00000006,0x00000570,0x000000c5, + 0x0003003e,0x0000056f,0x00000570,0x0004003d,0x00000006,0x00000572,0x000000c8,0x0003003e, + 0x00000571,0x00000572,0x00070039,0x0000005e,0x00000573,0x00000063,0x0000056d,0x0000056f, + 0x00000571,0x000300f7,0x00000575,0x00000000,0x000400fa,0x00000573,0x00000574,0x00000575, + 0x000200f8,0x00000574,0x000100fd,0x000200f8,0x00000575,0x0004003d,0x00000006,0x00000578, + 0x000000c8,0x0003003e,0x00000577,0x00000578,0x00050039,0x00000002,0x00000579,0x00000048, + 0x00000577,0x0004003d,0x00000006,0x0000057b,0x0000053c,0x0003003e,0x0000057a,0x0000057b, + 0x0004003d,0x00000006,0x0000057d,0x00000545,0x0003003e,0x0000057c,0x0000057d,0x0004003d, + 0x00000006,0x0000057f,0x000000c6,0x0003003e,0x0000057e,0x0000057f,0x0004003d,0x00000006, + 0x00000581,0x000000c8,0x0003003e,0x00000580,0x00000581,0x00080039,0x00000002,0x00000582, + 0x000000b7,0x0000057a,0x0000057c,0x0000057e,0x00000580,0x0004003d,0x00000006,0x00000584, + 0x0000053c,0x0003003e,0x00000583,0x00000584,0x0004003d,0x00000006,0x00000586,0x00000545, + 0x0003003e,0x00000585,0x00000586,0x0003003e,0x00000587,0x000001e3,0x0004003d,0x00000006, + 0x00000589,0x000000c5,0x0003003e,0x00000588,0x00000589,0x0003003e,0x0000058a,0x0000031f, + 0x0004003d,0x00000006,0x0000058c,0x000000c6,0x0003003e,0x0000058b,0x0000058c,0x0004003d, + 0x00000006,0x0000058e,0x000000c8,0x0003003e,0x0000058d,0x0000058e,0x000b0039,0x00000002, + 0x0000058f,0x000000c1,0x00000583,0x00000585,0x00000587,0x00000588,0x0000058a,0x0000058b, + 0x0000058d,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000cf,0x00000000,0x000000cc, + 0x00030037,0x0000001d,0x000000cd,0x00030037,0x000000cb,0x000000ce,0x000200f8,0x000000d0, + 0x0004003b,0x00000069,0x00000595,0x00000007,0x0004003b,0x00000007,0x00000596,0x00000007, + 0x0004003b,0x00000007,0x00000597,0x00000007,0x0004003b,0x00000007,0x00000598,0x00000007, + 0x0004003b,0x00000007,0x00000599,0x00000007,0x0004003d,0x0000001c,0x00000590,0x000000cd, + 0x0004007c,0x00000013,0x00000591,0x00000590,0x0004003d,0x0000001b,0x00000592,0x000000ce, + 0x0004007c,0x00000006,0x00000593,0x00000592,0x00040039,0x00000006,0x00000594,0x00000019, + 0x0003003e,0x00000595,0x00000591,0x0003003e,0x00000596,0x00000593,0x0003003e,0x00000597, + 0x00000456,0x0003003e,0x00000598,0x00000594,0x0003003e,0x00000599,0x000000e8,0x00090039, + 0x00000002,0x0000059a,0x000000c9,0x00000595,0x00000596,0x00000597,0x00000598,0x00000599, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h b/gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h new file mode 100644 index 000000000..a9508a90f --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_prepare_luma_comp_spv.h @@ -0,0 +1,302 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_PREPARE_LUMA_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000017a,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000016a, + 0x0000016f,0x00060010,0x00000004,0x00000011,0x00000010,0x00000010,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000b, + 0x42786666,0x64616f72,0x74736163,0x31662833,0x0000003b,0x00040005,0x0000000a,0x756c6176, + 0x00000065,0x00070005,0x00000010,0x53786666,0x72757461,0x28657461,0x3b336676,0x00000000, + 0x00030005,0x0000000f,0x00000078,0x00060005,0x00000015,0x50786666,0x6628776f,0x31663b31, + 0x0000003b,0x00030005,0x00000013,0x00000078,0x00030005,0x00000014,0x00000079,0x00080005, + 0x00000018,0x4c786666,0x61656e69,0x6f724672,0x2851506d,0x3b336676,0x00000000,0x00040005, + 0x00000017,0x756c6176,0x00000065,0x00090005,0x0000001c,0x6b636142,0x66667562,0x72547265, + 0x66736e61,0x75467265,0x6974636e,0x00286e6f,0x00070005,0x00000020,0x4d6e694d,0x754c7861, + 0x616e696d,0x2865636e,0x00000000,0x00070005,0x00000027,0x64616f4c,0x75706e49,0x6c6f4374, + 0x7628726f,0x003b3275,0x00050005,0x00000026,0x48785069,0x6f747369,0x00007972,0x000a0005, + 0x00000030,0x726f7453,0x74704f65,0x6c616369,0x776f6c46,0x75706e49,0x69762874,0x31753b32, + 0x0000003b,0x00040005,0x0000002e,0x50785069,0x0000736f,0x00040005,0x0000002f,0x6d754c66, + 0x00000061,0x000b0005,0x00000034,0x696d754c,0x636e616e,0x506f5465,0x65637265,0x64657669, + 0x696d754c,0x636e616e,0x31662865,0x0000003b,0x00050005,0x00000033,0x6d754c66,0x6e616e69, + 0x00006563,0x00090005,0x00000038,0x656e694c,0x644c7261,0x4c6f5472,0x6e696d75,0x65636e61, + 0x33667628,0x0000003b,0x00060005,0x00000037,0x656e696c,0x65527261,0x39303763,0x00424752, + 0x000a0005,0x0000003b,0x656e694c,0x65527261,0x32303263,0x4c6f5430,0x6e696d75,0x65636e61, + 0x33667628,0x0000003b,0x00070005,0x0000003a,0x656e696c,0x65527261,0x32303263,0x42475230, + 0x00000000,0x000b0005,0x00000040,0x6f435150,0x63657272,0x48646574,0x6f547264,0x696d754c, + 0x636e616e,0x66762865,0x31663b33,0x0000003b,0x00030005,0x0000003e,0x00007170,0x00060005, + 0x0000003f,0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x00090005,0x00000046,0x73786666, + 0x42475263,0x694c6f54,0x7261656e,0x33667628,0x3b31663b,0x003b3166,0x00040005,0x00000043, + 0x756c6176,0x00000065,0x00060005,0x00000044,0x4c6e696d,0x6e696d75,0x65636e61,0x00000000, + 0x00060005,0x00000045,0x4c78616d,0x6e696d75,0x65636e61,0x00000000,0x000c0005,0x0000004c, + 0x47524353,0x726f4342,0x74636572,0x64486465,0x4c6f5472,0x6e696d75,0x65636e61,0x33667628, + 0x3b31663b,0x003b3166,0x00040005,0x00000049,0x47526373,0x00000042,0x00060005,0x0000004a, + 0x4c6e696d,0x6e696d75,0x65636e61,0x00000000,0x00060005,0x0000004b,0x4c78616d,0x6e696d75, + 0x65636e61,0x00000000,0x00070005,0x00000052,0x70657250,0x4c657261,0x28616d75,0x3b326976, + 0x003b3169,0x00050005,0x00000050,0x6f6c4769,0x496c6162,0x00000064,0x00050005,0x00000051, + 0x636f4c69,0x6e496c61,0x00786564,0x00040005,0x0000005a,0x61726170,0x0000006d,0x00040005, + 0x0000005d,0x61726170,0x0000006d,0x00030005,0x00000067,0x00000070,0x00040005,0x0000006a, + 0x61726170,0x0000006d,0x00040005,0x0000006f,0x61726170,0x0000006d,0x00040005,0x00000072, + 0x61726170,0x0000006d,0x00040005,0x00000075,0x61726170,0x0000006d,0x00040005,0x00000078, + 0x61726170,0x0000006d,0x00040005,0x0000007f,0x61726170,0x0000006d,0x00040005,0x00000084, + 0x464f6263,0x0000745f,0x00090006,0x00000084,0x00000000,0x706e4969,0x754c7475,0x6552616d, + 0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x00000084,0x00000001,0x74704f75,0x6c616369, + 0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000,0x000b0006,0x00000084,0x00000002, + 0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x6e756f43,0x00000074, + 0x00060006,0x00000084,0x00000003,0x61724669,0x6e49656d,0x00786564,0x000a0006,0x00000084, + 0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265,0x6974636e,0x00006e6f, + 0x00070006,0x00000084,0x00000005,0x4d6e696d,0x754c7861,0x616e696d,0x0065636e,0x00040005, + 0x00000086,0x464f6263,0x00000000,0x00060005,0x00000095,0x6e695f72,0x5f747570,0x6f6c6f63, + 0x00000072,0x00080005,0x0000009f,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x75706e69, + 0x00000074,0x00070005,0x000000a6,0x72655066,0x76656963,0x754c6465,0x616e696d,0x0065636e, + 0x00040005,0x000000b2,0x61726170,0x0000006d,0x00040005,0x000000b4,0x61726170,0x0000006d, + 0x00030005,0x000000bf,0x00005966,0x00030005,0x000000d3,0x00005966,0x00030005,0x000000e5, + 0x00005966,0x00040005,0x000000e6,0x61726170,0x0000006d,0x00040005,0x000000ed,0x61726170, + 0x0000006d,0x00030005,0x000000f2,0x00000070,0x00040005,0x000000f7,0x61726170,0x0000006d, + 0x00040005,0x000000ff,0x61726170,0x0000006d,0x00030005,0x00000104,0x00005966,0x00040005, + 0x00000105,0x61726170,0x0000006d,0x00040005,0x00000107,0x61726170,0x0000006d,0x00040005, + 0x00000109,0x61726170,0x0000006d,0x00040005,0x0000010c,0x61726170,0x0000006d,0x00030005, + 0x00000111,0x00000079,0x00030005,0x0000011a,0x00000078,0x00030005,0x00000122,0x00736f70, + 0x00050005,0x0000012a,0x48785069,0x736f5072,0x00000000,0x00030005,0x0000012c,0x00005966, + 0x00050005,0x0000012d,0x75706e69,0x6c6f4374,0x0000726f,0x00040005,0x00000130,0x61726170, + 0x0000006d,0x00090005,0x00000133,0x6b636162,0x66667562,0x72547265,0x66736e61,0x75467265, + 0x6974636e,0x00006e6f,0x00040005,0x00000139,0x61726170,0x0000006d,0x00040005,0x00000142, + 0x61726170,0x0000006d,0x00040005,0x00000144,0x61726170,0x0000006d,0x00040005,0x00000147, + 0x61726170,0x0000006d,0x00040005,0x00000151,0x61726170,0x0000006d,0x00040005,0x00000153, + 0x61726170,0x0000006d,0x00040005,0x00000155,0x61726170,0x0000006d,0x00040005,0x00000158, + 0x61726170,0x0000006d,0x00040005,0x0000015f,0x61726170,0x0000006d,0x00040005,0x00000161, + 0x61726170,0x0000006d,0x00080005,0x0000016a,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00080005,0x0000016f,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163, + 0x6e496e6f,0x00786564,0x00040005,0x00000172,0x61726170,0x0000006d,0x00040005,0x00000173, + 0x61726170,0x0000006d,0x00030047,0x00000084,0x00000002,0x00050048,0x00000084,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000084,0x00000001,0x00000023,0x00000008,0x00050048, + 0x00000084,0x00000002,0x00000023,0x0000000c,0x00050048,0x00000084,0x00000003,0x00000023, + 0x00000010,0x00050048,0x00000084,0x00000004,0x00000023,0x00000014,0x00050048,0x00000084, + 0x00000005,0x00000023,0x00000018,0x00040047,0x00000086,0x00000021,0x00000002,0x00040047, + 0x00000086,0x00000022,0x00000000,0x00040047,0x00000095,0x00000021,0x00000000,0x00040047, + 0x00000095,0x00000022,0x00000000,0x00040047,0x0000009f,0x00000021,0x00000001,0x00040047, + 0x0000009f,0x00000022,0x00000000,0x00040047,0x0000016a,0x0000000b,0x0000001c,0x00040047, + 0x0000016f,0x0000000b,0x0000001d,0x00040047,0x00000179,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020, + 0x00000007,0x00000007,0x00000006,0x00040017,0x00000008,0x00000006,0x00000003,0x00040021, + 0x00000009,0x00000008,0x00000007,0x00040020,0x0000000d,0x00000007,0x00000008,0x00040021, + 0x0000000e,0x00000008,0x0000000d,0x00050021,0x00000012,0x00000006,0x00000007,0x00000007, + 0x00040015,0x0000001a,0x00000020,0x00000000,0x00030021,0x0000001b,0x0000001a,0x00040017, + 0x0000001e,0x00000006,0x00000002,0x00030021,0x0000001f,0x0000001e,0x00040017,0x00000022, + 0x0000001a,0x00000002,0x00040020,0x00000023,0x00000007,0x00000022,0x00040017,0x00000024, + 0x00000006,0x00000004,0x00040021,0x00000025,0x00000024,0x00000023,0x00040015,0x00000029, + 0x00000020,0x00000001,0x00040017,0x0000002a,0x00000029,0x00000002,0x00040020,0x0000002b, + 0x00000007,0x0000002a,0x00040020,0x0000002c,0x00000007,0x0000001a,0x00050021,0x0000002d, + 0x00000002,0x0000002b,0x0000002c,0x00040021,0x00000032,0x00000006,0x00000007,0x00040021, + 0x00000036,0x00000006,0x0000000d,0x00050021,0x0000003d,0x00000006,0x0000000d,0x00000007, + 0x00060021,0x00000042,0x00000008,0x0000000d,0x00000007,0x00000007,0x00060021,0x00000048, + 0x00000006,0x0000000d,0x00000007,0x00000007,0x00040020,0x0000004e,0x00000007,0x00000029, + 0x00050021,0x0000004f,0x00000002,0x0000002b,0x0000004e,0x0004002b,0x00000006,0x00000059, + 0x00000000,0x0004002b,0x00000006,0x0000005c,0x3f800000,0x0004002b,0x00000006,0x00000069, + 0x3c4fcd9e,0x0004002b,0x00000006,0x0000006e,0x3f560008,0x0004002b,0x00000006,0x00000074, + 0x4196d014,0x0004002b,0x00000006,0x00000077,0x41958000,0x0004002b,0x00000006,0x0000007e, + 0x40c8e061,0x0008001e,0x00000084,0x0000002a,0x0000001a,0x0000001a,0x0000001a,0x0000001a, + 0x0000001e,0x00040020,0x00000085,0x00000002,0x00000084,0x0004003b,0x00000085,0x00000086, + 0x00000002,0x0004002b,0x00000029,0x00000087,0x00000004,0x00040020,0x00000088,0x00000002, + 0x0000001a,0x0004002b,0x00000029,0x0000008d,0x00000005,0x00040020,0x0000008e,0x00000002, + 0x0000001e,0x00090019,0x00000093,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x00000094,0x00000000,0x00000093,0x0004003b,0x00000094, + 0x00000095,0x00000000,0x0004002b,0x00000029,0x00000099,0x00000000,0x00090019,0x0000009d, + 0x0000001a,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000027,0x00040020, + 0x0000009e,0x00000000,0x0000009d,0x0004003b,0x0000009e,0x0000009f,0x00000000,0x0004002b, + 0x0000001a,0x000000a3,0x00000000,0x00040017,0x000000a4,0x0000001a,0x00000004,0x0004002b, + 0x00000006,0x000000a8,0x3c111aa7,0x00020014,0x000000a9,0x0004002b,0x00000006,0x000000ae, + 0x4461d2f7,0x0004002b,0x00000006,0x000000b1,0x3eaaaaab,0x0004002b,0x00000006,0x000000b6, + 0x42e80000,0x0004002b,0x00000006,0x000000b8,0x41800000,0x0004002b,0x00000006,0x000000bb, + 0x3c23d70a,0x0004002b,0x00000006,0x000000c0,0x3e59b3d0,0x0004002b,0x00000006,0x000000c4, + 0x3f371759,0x0004002b,0x0000001a,0x000000c5,0x00000001,0x0004002b,0x00000006,0x000000ca, + 0x3d93dd98,0x0004002b,0x0000001a,0x000000cb,0x00000002,0x0004002b,0x00000006,0x000000d4, + 0x3e86809d,0x0004002b,0x00000006,0x000000d8,0x3f2d9168,0x0004002b,0x00000006,0x000000dd, + 0x3d72e48f,0x0004002b,0x00000006,0x000000e9,0x461c4000,0x0004002b,0x00000006,0x000000f5, + 0x42a00000,0x0004002b,0x00000029,0x00000118,0x00000002,0x0005002c,0x0000002a,0x00000124, + 0x00000118,0x00000118,0x0004002b,0x00000006,0x0000015c,0x437f0000,0x0004002b,0x00000029, + 0x00000164,0x00000001,0x00040017,0x00000168,0x0000001a,0x00000003,0x00040020,0x00000169, + 0x00000001,0x00000168,0x0004003b,0x00000169,0x0000016a,0x00000001,0x00040020,0x0000016e, + 0x00000001,0x0000001a,0x0004003b,0x0000016e,0x0000016f,0x00000001,0x0004002b,0x00000006, + 0x00000175,0x387fda40,0x0004002b,0x00000006,0x00000176,0x477fe000,0x0004002b,0x00000006, + 0x00000177,0x37801002,0x0004002b,0x0000001a,0x00000178,0x00000010,0x0006002c,0x00000168, + 0x00000179,0x00000178,0x00000178,0x000000c5,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000002b,0x00000172,0x00000007,0x0004003b, + 0x0000004e,0x00000173,0x00000007,0x0004003d,0x00000168,0x0000016b,0x0000016a,0x0007004f, + 0x00000022,0x0000016c,0x0000016b,0x0000016b,0x00000000,0x00000001,0x0004007c,0x0000002a, + 0x0000016d,0x0000016c,0x0004003d,0x0000001a,0x00000170,0x0000016f,0x0004007c,0x00000029, + 0x00000171,0x00000170,0x0003003e,0x00000172,0x0000016d,0x0003003e,0x00000173,0x00000171, + 0x00060039,0x00000002,0x00000174,0x00000052,0x00000172,0x00000173,0x000100fd,0x00010038, + 0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009,0x00030037,0x00000007,0x0000000a, + 0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000054,0x0000000a,0x00060050,0x00000008, + 0x00000055,0x00000054,0x00000054,0x00000054,0x000200fe,0x00000055,0x00010038,0x00050036, + 0x00000008,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f,0x000200f8, + 0x00000011,0x0004003b,0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x0000005d, + 0x00000007,0x0004003d,0x00000008,0x00000058,0x0000000f,0x0003003e,0x0000005a,0x00000059, + 0x00050039,0x00000008,0x0000005b,0x0000000b,0x0000005a,0x0003003e,0x0000005d,0x0000005c, + 0x00050039,0x00000008,0x0000005e,0x0000000b,0x0000005d,0x0008000c,0x00000008,0x0000005f, + 0x00000001,0x0000002b,0x00000058,0x0000005b,0x0000005e,0x000200fe,0x0000005f,0x00010038, + 0x00050036,0x00000006,0x00000015,0x00000000,0x00000012,0x00030037,0x00000007,0x00000013, + 0x00030037,0x00000007,0x00000014,0x000200f8,0x00000016,0x0004003d,0x00000006,0x00000062, + 0x00000013,0x0004003d,0x00000006,0x00000063,0x00000014,0x0007000c,0x00000006,0x00000064, + 0x00000001,0x0000001a,0x00000062,0x00000063,0x000200fe,0x00000064,0x00010038,0x00050036, + 0x00000008,0x00000018,0x00000000,0x0000000e,0x00030037,0x0000000d,0x00000017,0x000200f8, + 0x00000019,0x0004003b,0x0000000d,0x00000067,0x00000007,0x0004003b,0x00000007,0x0000006a, + 0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x0000000d,0x00000072, + 0x00000007,0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,0x00000078, + 0x00000007,0x0004003b,0x00000007,0x0000007f,0x00000007,0x0004003d,0x00000008,0x00000068, + 0x00000017,0x0003003e,0x0000006a,0x00000069,0x00050039,0x00000008,0x0000006b,0x0000000b, + 0x0000006a,0x0007000c,0x00000008,0x0000006c,0x00000001,0x0000001a,0x00000068,0x0000006b, + 0x0003003e,0x00000067,0x0000006c,0x0004003d,0x00000008,0x0000006d,0x00000067,0x0003003e, + 0x0000006f,0x0000006e,0x00050039,0x00000008,0x00000070,0x0000000b,0x0000006f,0x00050083, + 0x00000008,0x00000071,0x0000006d,0x00000070,0x0003003e,0x00000072,0x00000071,0x00050039, + 0x00000008,0x00000073,0x00000010,0x00000072,0x0003003e,0x00000075,0x00000074,0x00050039, + 0x00000008,0x00000076,0x0000000b,0x00000075,0x0003003e,0x00000078,0x00000077,0x00050039, + 0x00000008,0x00000079,0x0000000b,0x00000078,0x0004003d,0x00000008,0x0000007a,0x00000067, + 0x00050085,0x00000008,0x0000007b,0x00000079,0x0000007a,0x00050083,0x00000008,0x0000007c, + 0x00000076,0x0000007b,0x00050088,0x00000008,0x0000007d,0x00000073,0x0000007c,0x0003003e, + 0x0000007f,0x0000007e,0x00050039,0x00000008,0x00000080,0x0000000b,0x0000007f,0x0007000c, + 0x00000008,0x00000081,0x00000001,0x0000001a,0x0000007d,0x00000080,0x000200fe,0x00000081, + 0x00010038,0x00050036,0x0000001a,0x0000001c,0x00000000,0x0000001b,0x000200f8,0x0000001d, + 0x00050041,0x00000088,0x00000089,0x00000086,0x00000087,0x0004003d,0x0000001a,0x0000008a, + 0x00000089,0x000200fe,0x0000008a,0x00010038,0x00050036,0x0000001e,0x00000020,0x00000000, + 0x0000001f,0x000200f8,0x00000021,0x00050041,0x0000008e,0x0000008f,0x00000086,0x0000008d, + 0x0004003d,0x0000001e,0x00000090,0x0000008f,0x000200fe,0x00000090,0x00010038,0x00050036, + 0x00000024,0x00000027,0x00000000,0x00000025,0x00030037,0x00000023,0x00000026,0x000200f8, + 0x00000028,0x0004003d,0x00000093,0x00000096,0x00000095,0x0004003d,0x00000022,0x00000097, + 0x00000026,0x0004007c,0x0000002a,0x00000098,0x00000097,0x0007005f,0x00000024,0x0000009a, + 0x00000096,0x00000098,0x00000002,0x00000099,0x000200fe,0x0000009a,0x00010038,0x00050036, + 0x00000002,0x00000030,0x00000000,0x0000002d,0x00030037,0x0000002b,0x0000002e,0x00030037, + 0x0000002c,0x0000002f,0x000200f8,0x00000031,0x0004003d,0x0000009d,0x000000a0,0x0000009f, + 0x0004003d,0x0000002a,0x000000a1,0x0000002e,0x0004003d,0x0000001a,0x000000a2,0x0000002f, + 0x00070050,0x000000a4,0x000000a5,0x000000a2,0x000000a3,0x000000a3,0x000000a3,0x00040063, + 0x000000a0,0x000000a1,0x000000a5,0x000100fd,0x00010038,0x00050036,0x00000006,0x00000034, + 0x00000000,0x00000032,0x00030037,0x00000007,0x00000033,0x000200f8,0x00000035,0x0004003b, + 0x00000007,0x000000a6,0x00000007,0x0004003b,0x00000007,0x000000b2,0x00000007,0x0004003b, + 0x00000007,0x000000b4,0x00000007,0x0003003e,0x000000a6,0x00000059,0x0004003d,0x00000006, + 0x000000a7,0x00000033,0x000500bc,0x000000a9,0x000000aa,0x000000a7,0x000000a8,0x000300f7, + 0x000000ac,0x00000000,0x000400fa,0x000000aa,0x000000ab,0x000000b0,0x000200f8,0x000000ab, + 0x0004003d,0x00000006,0x000000ad,0x00000033,0x00050085,0x00000006,0x000000af,0x000000ad, + 0x000000ae,0x0003003e,0x000000a6,0x000000af,0x000200f9,0x000000ac,0x000200f8,0x000000b0, + 0x0004003d,0x00000006,0x000000b3,0x00000033,0x0003003e,0x000000b2,0x000000b3,0x0003003e, + 0x000000b4,0x000000b1,0x00060039,0x00000006,0x000000b5,0x00000015,0x000000b2,0x000000b4, + 0x00050085,0x00000006,0x000000b7,0x000000b5,0x000000b6,0x00050083,0x00000006,0x000000b9, + 0x000000b7,0x000000b8,0x0003003e,0x000000a6,0x000000b9,0x000200f9,0x000000ac,0x000200f8, + 0x000000ac,0x0004003d,0x00000006,0x000000ba,0x000000a6,0x00050085,0x00000006,0x000000bc, + 0x000000ba,0x000000bb,0x000200fe,0x000000bc,0x00010038,0x00050036,0x00000006,0x00000038, + 0x00000000,0x00000036,0x00030037,0x0000000d,0x00000037,0x000200f8,0x00000039,0x0004003b, + 0x00000007,0x000000bf,0x00000007,0x00050041,0x00000007,0x000000c1,0x00000037,0x000000a3, + 0x0004003d,0x00000006,0x000000c2,0x000000c1,0x00050085,0x00000006,0x000000c3,0x000000c0, + 0x000000c2,0x00050041,0x00000007,0x000000c6,0x00000037,0x000000c5,0x0004003d,0x00000006, + 0x000000c7,0x000000c6,0x00050085,0x00000006,0x000000c8,0x000000c4,0x000000c7,0x00050081, + 0x00000006,0x000000c9,0x000000c3,0x000000c8,0x00050041,0x00000007,0x000000cc,0x00000037, + 0x000000cb,0x0004003d,0x00000006,0x000000cd,0x000000cc,0x00050085,0x00000006,0x000000ce, + 0x000000ca,0x000000cd,0x00050081,0x00000006,0x000000cf,0x000000c9,0x000000ce,0x0003003e, + 0x000000bf,0x000000cf,0x0004003d,0x00000006,0x000000d0,0x000000bf,0x000200fe,0x000000d0, + 0x00010038,0x00050036,0x00000006,0x0000003b,0x00000000,0x00000036,0x00030037,0x0000000d, + 0x0000003a,0x000200f8,0x0000003c,0x0004003b,0x00000007,0x000000d3,0x00000007,0x00050041, + 0x00000007,0x000000d5,0x0000003a,0x000000a3,0x0004003d,0x00000006,0x000000d6,0x000000d5, + 0x00050085,0x00000006,0x000000d7,0x000000d4,0x000000d6,0x00050041,0x00000007,0x000000d9, + 0x0000003a,0x000000c5,0x0004003d,0x00000006,0x000000da,0x000000d9,0x00050085,0x00000006, + 0x000000db,0x000000d8,0x000000da,0x00050081,0x00000006,0x000000dc,0x000000d7,0x000000db, + 0x00050041,0x00000007,0x000000de,0x0000003a,0x000000cb,0x0004003d,0x00000006,0x000000df, + 0x000000de,0x00050085,0x00000006,0x000000e0,0x000000dd,0x000000df,0x00050081,0x00000006, + 0x000000e1,0x000000dc,0x000000e0,0x0003003e,0x000000d3,0x000000e1,0x0004003d,0x00000006, + 0x000000e2,0x000000d3,0x000200fe,0x000000e2,0x00010038,0x00050036,0x00000006,0x00000040, + 0x00000000,0x0000003d,0x00030037,0x0000000d,0x0000003e,0x00030037,0x00000007,0x0000003f, + 0x000200f8,0x00000041,0x0004003b,0x00000007,0x000000e5,0x00000007,0x0004003b,0x0000000d, + 0x000000e6,0x00000007,0x0004003b,0x0000000d,0x000000ed,0x00000007,0x0004003d,0x00000008, + 0x000000e7,0x0000003e,0x0003003e,0x000000e6,0x000000e7,0x00050039,0x00000008,0x000000e8, + 0x00000018,0x000000e6,0x0004003d,0x00000006,0x000000ea,0x0000003f,0x00050088,0x00000006, + 0x000000eb,0x000000e9,0x000000ea,0x0005008e,0x00000008,0x000000ec,0x000000e8,0x000000eb, + 0x0003003e,0x000000ed,0x000000ec,0x00050039,0x00000006,0x000000ee,0x0000003b,0x000000ed, + 0x0003003e,0x000000e5,0x000000ee,0x0004003d,0x00000006,0x000000ef,0x000000e5,0x000200fe, + 0x000000ef,0x00010038,0x00050036,0x00000008,0x00000046,0x00000000,0x00000042,0x00030037, + 0x0000000d,0x00000043,0x00030037,0x00000007,0x00000044,0x00030037,0x00000007,0x00000045, + 0x000200f8,0x00000047,0x0004003b,0x0000000d,0x000000f2,0x00000007,0x0004003b,0x00000007, + 0x000000f7,0x00000007,0x0004003b,0x00000007,0x000000ff,0x00000007,0x0004003d,0x00000008, + 0x000000f3,0x00000043,0x0004003d,0x00000006,0x000000f4,0x00000044,0x00050088,0x00000006, + 0x000000f6,0x000000f4,0x000000f5,0x0003003e,0x000000f7,0x000000f6,0x00050039,0x00000008, + 0x000000f8,0x0000000b,0x000000f7,0x00050083,0x00000008,0x000000f9,0x000000f3,0x000000f8, + 0x0003003e,0x000000f2,0x000000f9,0x0004003d,0x00000008,0x000000fa,0x000000f2,0x0004003d, + 0x00000006,0x000000fb,0x00000045,0x0004003d,0x00000006,0x000000fc,0x00000044,0x00050083, + 0x00000006,0x000000fd,0x000000fb,0x000000fc,0x00050088,0x00000006,0x000000fe,0x000000fd, + 0x000000f5,0x0003003e,0x000000ff,0x000000fe,0x00050039,0x00000008,0x00000100,0x0000000b, + 0x000000ff,0x00050088,0x00000008,0x00000101,0x000000fa,0x00000100,0x000200fe,0x00000101, + 0x00010038,0x00050036,0x00000006,0x0000004c,0x00000000,0x00000048,0x00030037,0x0000000d, + 0x00000049,0x00030037,0x00000007,0x0000004a,0x00030037,0x00000007,0x0000004b,0x000200f8, + 0x0000004d,0x0004003b,0x00000007,0x00000104,0x00000007,0x0004003b,0x0000000d,0x00000105, + 0x00000007,0x0004003b,0x00000007,0x00000107,0x00000007,0x0004003b,0x00000007,0x00000109, + 0x00000007,0x0004003b,0x0000000d,0x0000010c,0x00000007,0x0004003d,0x00000008,0x00000106, + 0x00000049,0x0003003e,0x00000105,0x00000106,0x0004003d,0x00000006,0x00000108,0x0000004a, + 0x0003003e,0x00000107,0x00000108,0x0004003d,0x00000006,0x0000010a,0x0000004b,0x0003003e, + 0x00000109,0x0000010a,0x00070039,0x00000008,0x0000010b,0x00000046,0x00000105,0x00000107, + 0x00000109,0x0003003e,0x0000010c,0x0000010b,0x00050039,0x00000006,0x0000010d,0x00000038, + 0x0000010c,0x0003003e,0x00000104,0x0000010d,0x0004003d,0x00000006,0x0000010e,0x00000104, + 0x000200fe,0x0000010e,0x00010038,0x00050036,0x00000002,0x00000052,0x00000000,0x0000004f, + 0x00030037,0x0000002b,0x00000050,0x00030037,0x0000004e,0x00000051,0x000200f8,0x00000053, + 0x0004003b,0x0000004e,0x00000111,0x00000007,0x0004003b,0x0000004e,0x0000011a,0x00000007, + 0x0004003b,0x0000002b,0x00000122,0x00000007,0x0004003b,0x0000002b,0x0000012a,0x00000007, + 0x0004003b,0x00000007,0x0000012c,0x00000007,0x0004003b,0x0000000d,0x0000012d,0x00000007, + 0x0004003b,0x00000023,0x00000130,0x00000007,0x0004003b,0x0000002c,0x00000133,0x00000007, + 0x0004003b,0x0000000d,0x00000139,0x00000007,0x0004003b,0x0000000d,0x00000142,0x00000007, + 0x0004003b,0x00000007,0x00000144,0x00000007,0x0004003b,0x00000007,0x00000147,0x00000007, + 0x0004003b,0x0000000d,0x00000151,0x00000007,0x0004003b,0x00000007,0x00000153,0x00000007, + 0x0004003b,0x00000007,0x00000155,0x00000007,0x0004003b,0x00000007,0x00000158,0x00000007, + 0x0004003b,0x0000002b,0x0000015f,0x00000007,0x0004003b,0x0000002c,0x00000161,0x00000007, + 0x0003003e,0x00000111,0x00000099,0x000200f9,0x00000112,0x000200f8,0x00000112,0x000400f6, + 0x00000114,0x00000115,0x00000000,0x000200f9,0x00000116,0x000200f8,0x00000116,0x0004003d, + 0x00000029,0x00000117,0x00000111,0x000500b1,0x000000a9,0x00000119,0x00000117,0x00000118, + 0x000400fa,0x00000119,0x00000113,0x00000114,0x000200f8,0x00000113,0x0003003e,0x0000011a, + 0x00000099,0x000200f9,0x0000011b,0x000200f8,0x0000011b,0x000400f6,0x0000011d,0x0000011e, + 0x00000000,0x000200f9,0x0000011f,0x000200f8,0x0000011f,0x0004003d,0x00000029,0x00000120, + 0x0000011a,0x000500b1,0x000000a9,0x00000121,0x00000120,0x00000118,0x000400fa,0x00000121, + 0x0000011c,0x0000011d,0x000200f8,0x0000011c,0x0004003d,0x0000002a,0x00000123,0x00000050, + 0x00050084,0x0000002a,0x00000125,0x00000123,0x00000124,0x0004003d,0x00000029,0x00000126, + 0x0000011a,0x0004003d,0x00000029,0x00000127,0x00000111,0x00050050,0x0000002a,0x00000128, + 0x00000126,0x00000127,0x00050080,0x0000002a,0x00000129,0x00000125,0x00000128,0x0003003e, + 0x00000122,0x00000129,0x0004003d,0x0000002a,0x0000012b,0x00000122,0x0003003e,0x0000012a, + 0x0000012b,0x0003003e,0x0000012c,0x00000059,0x0004003d,0x0000002a,0x0000012e,0x0000012a, + 0x0004007c,0x00000022,0x0000012f,0x0000012e,0x0003003e,0x00000130,0x0000012f,0x00050039, + 0x00000024,0x00000131,0x00000027,0x00000130,0x0008004f,0x00000008,0x00000132,0x00000131, + 0x00000131,0x00000000,0x00000001,0x00000002,0x0003003e,0x0000012d,0x00000132,0x00040039, + 0x0000001a,0x00000134,0x0000001c,0x0003003e,0x00000133,0x00000134,0x0004003d,0x0000001a, + 0x00000135,0x00000133,0x000500aa,0x000000a9,0x00000136,0x00000135,0x000000a3,0x000300f7, + 0x00000138,0x00000000,0x000400fa,0x00000136,0x00000137,0x0000013c,0x000200f8,0x00000137, + 0x0004003d,0x00000008,0x0000013a,0x0000012d,0x0003003e,0x00000139,0x0000013a,0x00050039, + 0x00000006,0x0000013b,0x00000038,0x00000139,0x0003003e,0x0000012c,0x0000013b,0x000200f9, + 0x00000138,0x000200f8,0x0000013c,0x0004003d,0x0000001a,0x0000013d,0x00000133,0x000500aa, + 0x000000a9,0x0000013e,0x0000013d,0x000000c5,0x000300f7,0x00000140,0x00000000,0x000400fa, + 0x0000013e,0x0000013f,0x0000014a,0x000200f8,0x0000013f,0x00040039,0x0000001e,0x00000141, + 0x00000020,0x0004003d,0x00000008,0x00000143,0x0000012d,0x0003003e,0x00000142,0x00000143, + 0x00050051,0x00000006,0x00000145,0x00000141,0x00000001,0x0003003e,0x00000144,0x00000145, + 0x00060039,0x00000006,0x00000146,0x00000040,0x00000142,0x00000144,0x0003003e,0x0000012c, + 0x00000146,0x0004003d,0x00000006,0x00000148,0x0000012c,0x0003003e,0x00000147,0x00000148, + 0x00050039,0x00000006,0x00000149,0x00000034,0x00000147,0x0003003e,0x0000012c,0x00000149, + 0x000200f9,0x00000140,0x000200f8,0x0000014a,0x0004003d,0x0000001a,0x0000014b,0x00000133, + 0x000500aa,0x000000a9,0x0000014c,0x0000014b,0x000000cb,0x000300f7,0x0000014e,0x00000000, + 0x000400fa,0x0000014c,0x0000014d,0x0000014e,0x000200f8,0x0000014d,0x00040039,0x0000001e, + 0x0000014f,0x00000020,0x00040039,0x0000001e,0x00000150,0x00000020,0x0004003d,0x00000008, + 0x00000152,0x0000012d,0x0003003e,0x00000151,0x00000152,0x00050051,0x00000006,0x00000154, + 0x0000014f,0x00000000,0x0003003e,0x00000153,0x00000154,0x00050051,0x00000006,0x00000156, + 0x00000150,0x00000001,0x0003003e,0x00000155,0x00000156,0x00070039,0x00000006,0x00000157, + 0x0000004c,0x00000151,0x00000153,0x00000155,0x0003003e,0x0000012c,0x00000157,0x0004003d, + 0x00000006,0x00000159,0x0000012c,0x0003003e,0x00000158,0x00000159,0x00050039,0x00000006, + 0x0000015a,0x00000034,0x00000158,0x0003003e,0x0000012c,0x0000015a,0x000200f9,0x0000014e, + 0x000200f8,0x0000014e,0x000200f9,0x00000140,0x000200f8,0x00000140,0x000200f9,0x00000138, + 0x000200f8,0x00000138,0x0004003d,0x00000006,0x0000015b,0x0000012c,0x00050085,0x00000006, + 0x0000015d,0x0000015b,0x0000015c,0x0004006d,0x0000001a,0x0000015e,0x0000015d,0x0004003d, + 0x0000002a,0x00000160,0x00000122,0x0003003e,0x0000015f,0x00000160,0x0003003e,0x00000161, + 0x0000015e,0x00060039,0x00000002,0x00000162,0x00000030,0x0000015f,0x00000161,0x000200f9, + 0x0000011e,0x000200f8,0x0000011e,0x0004003d,0x00000029,0x00000163,0x0000011a,0x00050080, + 0x00000029,0x00000165,0x00000163,0x00000164,0x0003003e,0x0000011a,0x00000165,0x000200f9, + 0x0000011b,0x000200f8,0x0000011d,0x000200f9,0x00000115,0x000200f8,0x00000115,0x0004003d, + 0x00000029,0x00000166,0x00000111,0x00050080,0x00000029,0x00000167,0x00000166,0x00000164, + 0x0003003e,0x00000111,0x00000167,0x000200f9,0x00000112,0x000200f8,0x00000114,0x000100fd, + 0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h b/gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h new file mode 100644 index 000000000..dcd4c90e7 --- /dev/null +++ b/gpu/vk/shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h @@ -0,0 +1,522 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_OF_SCALE_OPTICAL_FLOW_V5_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x000002a7,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000029a, + 0x0000029d,0x00060010,0x00000004,0x00000011,0x00000004,0x00000004,0x00000004,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000b, + 0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x00000009,0x00000078,0x00030005, + 0x0000000a,0x00000079,0x00060005,0x0000000f,0x4d786666,0x69287861,0x31693b31,0x0000003b, + 0x00030005,0x0000000d,0x00000078,0x00030005,0x0000000e,0x00000079,0x000b0005,0x0000001a, + 0x50746547,0x656b6361,0x6d754c64,0x31692861,0x3b31693b,0x753b3175,0x31753b31,0x3b31753b, + 0x00000000,0x00040005,0x00000014,0x74646977,0x00000068,0x00030005,0x00000015,0x00000078, + 0x00040005,0x00000016,0x616d756c,0x00000030,0x00040005,0x00000017,0x616d756c,0x00000031, + 0x00040005,0x00000018,0x616d756c,0x00000032,0x00040005,0x00000019,0x616d756c,0x00000033, + 0x00050005,0x0000001f,0x28646153,0x753b3175,0x00003b31,0x00030005,0x0000001d,0x00000061, + 0x00030005,0x0000001e,0x00000062,0x00060005,0x00000023,0x70736944,0x5379616c,0x28657a69, + 0x00000000,0x00050005,0x00000026,0x6d617246,0x646e4965,0x00287865,0x00090005,0x00000028, + 0x6974704f,0x466c6163,0x50776f6c,0x6d617279,0x654c6469,0x286c6576,0x00000000,0x00090005, + 0x0000002d,0x64616f4c,0x6974704f,0x466c6163,0x49776f6c,0x7475706e,0x32697628,0x0000003b, + 0x00040005,0x0000002c,0x50785069,0x0000736f,0x000b0005,0x00000030,0x64616f4c,0x6974704f, + 0x466c6163,0x50776f6c,0x69766572,0x4973756f,0x7475706e,0x32697628,0x0000003b,0x00040005, + 0x0000002f,0x50785069,0x0000736f,0x00080005,0x00000034,0x64616f4c,0x6974704f,0x466c6163, + 0x28776f6c,0x3b326976,0x00000000,0x00040005,0x00000033,0x50785069,0x0000736f,0x000b0005, + 0x00000039,0x726f7453,0x74704f65,0x6c616369,0x776f6c46,0x7478654e,0x6576654c,0x6976286c, + 0x69763b32,0x00003b32,0x00040005,0x00000037,0x50785069,0x0000736f,0x00060005,0x00000038, + 0x69746f6d,0x65566e6f,0x726f7463,0x00000000,0x00070005,0x0000003d,0x64616f4c,0x43537752, + 0x74754f44,0x28747570,0x003b3169,0x00040005,0x0000003c,0x646e4969,0x00007865,0x00060005, + 0x00000041,0x63537349,0x43656e65,0x676e6168,0x00286465,0x000a0005,0x00000044,0x64616f4c, + 0x73726946,0x616d4974,0x61506567,0x64656b63,0x616d754c,0x32697628,0x0000003b,0x00040005, + 0x00000043,0x50785069,0x0000736f,0x000a0005,0x00000047,0x64616f4c,0x6f636553,0x6d49646e, + 0x50656761,0x656b6361,0x6d754c64,0x69762861,0x00003b32,0x00040005,0x00000046,0x50785069, + 0x0000736f,0x000b0005,0x0000004e,0x6c616353,0x74704f65,0x6c616369,0x776f6c46,0x61766441, + 0x6465636e,0x33697628,0x3369763b,0x0000003b,0x00050005,0x0000004c,0x6f6c4769,0x496c6162, + 0x00000064,0x00050005,0x0000004d,0x636f4c69,0x64496c61,0x00000000,0x00050005,0x0000005a, + 0x6b636170,0x754c6465,0x0000616d,0x00070005,0x0000006d,0x4f74756f,0x72635366,0x466e6565, + 0x656c6c69,0x00000072,0x00070005,0x00000094,0x4f74756f,0x72635366,0x466e6565,0x656c6c69, + 0x00000072,0x00040005,0x000000ec,0x464f6263,0x0000745f,0x00090006,0x000000ec,0x00000000, + 0x706e4969,0x754c7475,0x6552616d,0x756c6f73,0x6e6f6974,0x00000000,0x000a0006,0x000000ec, + 0x00000001,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d,0x6c657665,0x00000000, + 0x000b0006,0x000000ec,0x00000002,0x74704f75,0x6c616369,0x776f6c46,0x61727950,0x4c64696d, + 0x6c657665,0x6e756f43,0x00000074,0x00060006,0x000000ec,0x00000003,0x61724669,0x6e49656d, + 0x00786564,0x000a0006,0x000000ec,0x00000004,0x6b636162,0x66667562,0x72547265,0x66736e61, + 0x75467265,0x6974636e,0x00006e6f,0x00070006,0x000000ec,0x00000005,0x4d6e696d,0x754c7861, + 0x616e696d,0x0065636e,0x00040005,0x000000ee,0x464f6263,0x00000000,0x00080005,0x000000ff, + 0x706f5f72,0x61636974,0x6c665f6c,0x695f776f,0x7475706e,0x00000000,0x000a0005,0x00000108, + 0x706f5f72,0x61636974,0x6c665f6c,0x705f776f,0x69766572,0x5f73756f,0x75706e69,0x00000074, + 0x00060005,0x00000111,0x706f5f72,0x61636974,0x6c665f6c,0x0000776f,0x00090005,0x0000011b, + 0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x7478656e,0x76656c5f,0x00006c65,0x00090005, + 0x00000124,0x6f5f7772,0x63697470,0x665f6c61,0x5f776f6c,0x5f646373,0x7074756f,0x00007475, + 0x00040005,0x00000134,0x61726170,0x0000006d,0x00070005,0x0000013b,0x616d756c,0x74786554, + 0x57657275,0x68746469,0x00000000,0x00070005,0x00000140,0x616d756c,0x74786554,0x48657275, + 0x68676965,0x00000074,0x00050005,0x00000146,0x756a6461,0x64657473,0x00736f50,0x00040005, + 0x00000149,0x61726170,0x0000006d,0x00040005,0x0000014a,0x61726170,0x0000006d,0x00040005, + 0x0000014e,0x61726170,0x0000006d,0x00040005,0x0000014f,0x61726170,0x0000006d,0x00040005, + 0x00000153,0x61726170,0x0000006d,0x00040005,0x00000154,0x61726170,0x0000006d,0x00040005, + 0x00000158,0x61726170,0x0000006d,0x00040005,0x00000159,0x61726170,0x0000006d,0x00040005, + 0x0000015c,0x616d756c,0x00000030,0x00040005,0x00000160,0x61726170,0x0000006d,0x00040005, + 0x00000162,0x616d756c,0x00000031,0x00040005,0x00000166,0x61726170,0x0000006d,0x00040005, + 0x00000168,0x616d756c,0x00000032,0x00040005,0x0000016c,0x61726170,0x0000006d,0x00040005, + 0x0000016e,0x616d756c,0x00000033,0x00040005,0x00000172,0x61726170,0x0000006d,0x00040005, + 0x00000174,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005, + 0x00000179,0x61726170,0x0000006d,0x00040005,0x0000017b,0x61726170,0x0000006d,0x00040005, + 0x0000017d,0x61726170,0x0000006d,0x00040005,0x0000017f,0x61726170,0x0000006d,0x00070005, + 0x00000184,0x616d756c,0x74786554,0x57657275,0x68746469,0x00000000,0x00070005,0x00000189, + 0x616d756c,0x74786554,0x48657275,0x68676965,0x00000074,0x00050005,0x0000018e,0x756a6461, + 0x64657473,0x00736f50,0x00040005,0x00000191,0x61726170,0x0000006d,0x00040005,0x00000192, + 0x61726170,0x0000006d,0x00040005,0x00000196,0x61726170,0x0000006d,0x00040005,0x00000197, + 0x61726170,0x0000006d,0x00040005,0x0000019b,0x61726170,0x0000006d,0x00040005,0x0000019c, + 0x61726170,0x0000006d,0x00040005,0x000001a0,0x61726170,0x0000006d,0x00040005,0x000001a1, + 0x61726170,0x0000006d,0x00040005,0x000001a4,0x616d756c,0x00000030,0x00040005,0x000001a7, + 0x61726170,0x0000006d,0x00040005,0x000001a9,0x616d756c,0x00000031,0x00040005,0x000001ac, + 0x61726170,0x0000006d,0x00040005,0x000001ae,0x616d756c,0x00000032,0x00040005,0x000001b1, + 0x61726170,0x0000006d,0x00040005,0x000001b3,0x616d756c,0x00000033,0x00040005,0x000001b6, + 0x61726170,0x0000006d,0x00040005,0x000001b8,0x61726170,0x0000006d,0x00040005,0x000001ba, + 0x61726170,0x0000006d,0x00040005,0x000001bd,0x61726170,0x0000006d,0x00040005,0x000001bf, + 0x61726170,0x0000006d,0x00040005,0x000001c1,0x61726170,0x0000006d,0x00040005,0x000001c3, + 0x61726170,0x0000006d,0x00040005,0x000001cb,0x61726170,0x0000006d,0x00040005,0x000001ce, + 0x61726170,0x0000006d,0x00040005,0x000001d1,0x66664f78,0x00746573,0x00040005,0x000001db, + 0x66664f79,0x00746573,0x00050005,0x000001e4,0x4f637273,0x736f5046,0x00000000,0x00060005, + 0x000001f0,0x7261656e,0x56747365,0x6f746365,0x00000072,0x00040005,0x000001f1,0x61726170, + 0x0000006d,0x00060005,0x000001f9,0x7261656e,0x56747365,0x6f746365,0x00007372,0x00040005, + 0x00000205,0x5978616d,0x00000000,0x00030005,0x00000206,0x0000006e,0x00040005,0x00000211, + 0x616d756c,0x00736f50,0x00050005,0x0000021c,0x73726966,0x78695074,0x00006c65,0x00040005, + 0x0000021d,0x61726170,0x0000006d,0x00050005,0x00000224,0x61636f6c,0x6765526c,0x006e6f69, + 0x00030005,0x00000231,0x00646173,0x00030005,0x00000232,0x0000006e,0x00040005,0x0000023b, + 0x616d756c,0x00736f50,0x00050005,0x00000248,0x6f636573,0x6950646e,0x006c6578,0x00040005, + 0x00000249,0x61726170,0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005, + 0x00000254,0x61726170,0x0000006d,0x00040005,0x0000025b,0x73646173,0x00000000,0x00040005, + 0x00000269,0x74736562,0x00646153,0x00040005,0x0000026b,0x74736562,0x00006449,0x00030005, + 0x0000026c,0x0000006e,0x00060005,0x0000028a,0x7074756f,0x65567475,0x726f7463,0x00000000, + 0x00040005,0x00000292,0x61726170,0x0000006d,0x00040005,0x00000295,0x61726170,0x0000006d, + 0x00080005,0x0000029a,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044, + 0x00080005,0x0000029d,0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000, + 0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005,0x000002a1,0x61726170,0x0000006d, + 0x00030047,0x000000ec,0x00000002,0x00050048,0x000000ec,0x00000000,0x00000023,0x00000000, + 0x00050048,0x000000ec,0x00000001,0x00000023,0x00000008,0x00050048,0x000000ec,0x00000002, + 0x00000023,0x0000000c,0x00050048,0x000000ec,0x00000003,0x00000023,0x00000010,0x00050048, + 0x000000ec,0x00000004,0x00000023,0x00000014,0x00050048,0x000000ec,0x00000005,0x00000023, + 0x00000018,0x00040047,0x000000ee,0x00000021,0x00000005,0x00040047,0x000000ee,0x00000022, + 0x00000000,0x00040047,0x000000ff,0x00000021,0x00000000,0x00040047,0x000000ff,0x00000022, + 0x00000000,0x00040047,0x00000108,0x00000021,0x00000001,0x00040047,0x00000108,0x00000022, + 0x00000000,0x00040047,0x00000111,0x00000021,0x00000002,0x00040047,0x00000111,0x00000022, + 0x00000000,0x00040047,0x0000011b,0x00000021,0x00000003,0x00040047,0x0000011b,0x00000022, + 0x00000000,0x00040047,0x00000124,0x00000021,0x00000004,0x00040047,0x00000124,0x00000022, + 0x00000000,0x00040047,0x0000029a,0x0000000b,0x0000001c,0x00040047,0x0000029d,0x0000000b, + 0x0000001b,0x00040047,0x000002a6,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040020,0x00000007, + 0x00000007,0x00000006,0x00050021,0x00000008,0x00000006,0x00000007,0x00000007,0x00040015, + 0x00000011,0x00000020,0x00000000,0x00040020,0x00000012,0x00000007,0x00000011,0x00090021, + 0x00000013,0x00000011,0x00000007,0x00000007,0x00000012,0x00000012,0x00000012,0x00000012, + 0x00050021,0x0000001c,0x00000011,0x00000012,0x00000012,0x00040017,0x00000021,0x00000006, + 0x00000002,0x00030021,0x00000022,0x00000021,0x00030021,0x00000025,0x00000011,0x00040020, + 0x0000002a,0x00000007,0x00000021,0x00040021,0x0000002b,0x00000011,0x0000002a,0x00040021, + 0x00000032,0x00000021,0x0000002a,0x00050021,0x00000036,0x00000002,0x0000002a,0x0000002a, + 0x00040021,0x0000003b,0x00000011,0x00000007,0x00020014,0x0000003f,0x00030021,0x00000040, + 0x0000003f,0x00040017,0x00000049,0x00000006,0x00000003,0x00040020,0x0000004a,0x00000007, + 0x00000049,0x00050021,0x0000004b,0x00000002,0x0000004a,0x0000004a,0x0004002b,0x00000006, + 0x0000005d,0x00000008,0x0004002b,0x00000006,0x00000061,0x00000010,0x0004002b,0x00000006, + 0x00000065,0x00000018,0x0004002b,0x00000006,0x00000069,0x00000000,0x0004002b,0x00000011, + 0x0000006f,0x000000ff,0x0004002b,0x00000006,0x00000072,0xffffffff,0x0004002b,0x00000006, + 0x0000007b,0xfffffffe,0x0004002b,0x00000006,0x00000084,0xfffffffd,0x0004002b,0x00000006, + 0x0000008f,0x00000004,0x0004002b,0x00000011,0x00000096,0xff000000,0x0004002b,0x00000006, + 0x0000009a,0x00000003,0x0004002b,0x00000006,0x000000a5,0x00000002,0x0004002b,0x00000006, + 0x000000b0,0x00000001,0x00030016,0x000000ea,0x00000020,0x00040017,0x000000eb,0x000000ea, + 0x00000002,0x0008001e,0x000000ec,0x00000021,0x00000011,0x00000011,0x00000011,0x00000011, + 0x000000eb,0x00040020,0x000000ed,0x00000002,0x000000ec,0x0004003b,0x000000ed,0x000000ee, + 0x00000002,0x00040020,0x000000ef,0x00000002,0x00000021,0x00040020,0x000000f4,0x00000002, + 0x00000011,0x00090019,0x000000fd,0x00000011,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x00040020,0x000000fe,0x00000000,0x000000fd,0x0004003b,0x000000fe, + 0x000000ff,0x00000000,0x00040017,0x00000102,0x00000011,0x00000004,0x0004002b,0x00000011, + 0x00000104,0x00000000,0x0004003b,0x000000fe,0x00000108,0x00000000,0x00090019,0x0000010f, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x00000110,0x00000000,0x0000010f,0x0004003b,0x00000110,0x00000111,0x00000000,0x00040017, + 0x00000114,0x00000006,0x00000004,0x00090019,0x00000119,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x0000001a,0x00040020,0x0000011a,0x00000000,0x00000119, + 0x0004003b,0x0000011a,0x0000011b,0x00000000,0x00090019,0x00000122,0x00000011,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x00000021,0x00040020,0x00000123,0x00000000, + 0x00000122,0x0004003b,0x00000123,0x00000124,0x00000000,0x0004002b,0x00000011,0x0000012d, + 0x00000005,0x00030029,0x0000003f,0x00000131,0x0004002b,0x00000011,0x00000136,0x0000000f, + 0x0004002b,0x00000011,0x00000142,0x00000001,0x0005002c,0x00000021,0x0000015e,0x00000069, + 0x00000069,0x0005002c,0x00000021,0x00000164,0x000000b0,0x00000069,0x0005002c,0x00000021, + 0x0000016a,0x000000a5,0x00000069,0x0005002c,0x00000021,0x00000170,0x0000009a,0x00000069, + 0x0004002b,0x00000011,0x000001d2,0x00000002,0x0004002b,0x00000011,0x000001f4,0x00000004, + 0x0004001c,0x000001f5,0x00000021,0x000001f4,0x0004001c,0x000001f6,0x000001f5,0x000001f4, + 0x0004001c,0x000001f7,0x000001f6,0x000001f4,0x00040020,0x000001f8,0x00000004,0x000001f7, + 0x0004003b,0x000001f8,0x000001f9,0x00000004,0x00040020,0x00000203,0x00000004,0x00000021, + 0x0004001c,0x00000220,0x00000011,0x000001f4,0x0004001c,0x00000221,0x00000220,0x000001f4, + 0x0004001c,0x00000222,0x00000221,0x000001f4,0x00040020,0x00000223,0x00000004,0x00000222, + 0x0004003b,0x00000223,0x00000224,0x00000004,0x00040020,0x0000022b,0x00000004,0x00000011, + 0x0004002b,0x00000011,0x0000022f,0x00000d48,0x0004002b,0x00000011,0x00000230,0x00000108, + 0x0004003b,0x00000223,0x0000025b,0x00000004,0x0004002b,0x00000011,0x0000026a,0xffffffff, + 0x00040017,0x00000298,0x00000011,0x00000003,0x00040020,0x00000299,0x00000001,0x00000298, + 0x0004003b,0x00000299,0x0000029a,0x00000001,0x0004003b,0x00000299,0x0000029d,0x00000001, + 0x0004002b,0x000000ea,0x000002a3,0x387fda40,0x0004002b,0x000000ea,0x000002a4,0x477fe000, + 0x0004002b,0x000000ea,0x000002a5,0x37801002,0x0006002c,0x00000298,0x000002a6,0x000001f4, + 0x000001f4,0x000001f4,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x0000004a,0x000002a0,0x00000007,0x0004003b,0x0000004a,0x000002a1, + 0x00000007,0x0004003d,0x00000298,0x0000029b,0x0000029a,0x0004007c,0x00000049,0x0000029c, + 0x0000029b,0x0004003d,0x00000298,0x0000029e,0x0000029d,0x0004007c,0x00000049,0x0000029f, + 0x0000029e,0x0003003e,0x000002a0,0x0000029c,0x0003003e,0x000002a1,0x0000029f,0x00060039, + 0x00000002,0x000002a2,0x0000004e,0x000002a0,0x000002a1,0x000100fd,0x00010038,0x00050036, + 0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,0x00030037, + 0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000050,0x00000009, + 0x0004003d,0x00000006,0x00000051,0x0000000a,0x0007000c,0x00000006,0x00000052,0x00000001, + 0x00000027,0x00000050,0x00000051,0x000200fe,0x00000052,0x00010038,0x00050036,0x00000006, + 0x0000000f,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007, + 0x0000000e,0x000200f8,0x00000010,0x0004003d,0x00000006,0x00000055,0x0000000d,0x0004003d, + 0x00000006,0x00000056,0x0000000e,0x0007000c,0x00000006,0x00000057,0x00000001,0x0000002a, + 0x00000055,0x00000056,0x000200fe,0x00000057,0x00010038,0x00050036,0x00000011,0x0000001a, + 0x00000000,0x00000013,0x00030037,0x00000007,0x00000014,0x00030037,0x00000007,0x00000015, + 0x00030037,0x00000012,0x00000016,0x00030037,0x00000012,0x00000017,0x00030037,0x00000012, + 0x00000018,0x00030037,0x00000012,0x00000019,0x000200f8,0x0000001b,0x0004003b,0x00000012, + 0x0000005a,0x00000007,0x0004003b,0x00000012,0x0000006d,0x00000007,0x0004003b,0x00000012, + 0x00000094,0x00000007,0x0004003d,0x00000011,0x0000005b,0x00000016,0x0004003d,0x00000011, + 0x0000005c,0x00000017,0x000500c4,0x00000011,0x0000005e,0x0000005c,0x0000005d,0x000500c5, + 0x00000011,0x0000005f,0x0000005b,0x0000005e,0x0004003d,0x00000011,0x00000060,0x00000018, + 0x000500c4,0x00000011,0x00000062,0x00000060,0x00000061,0x000500c5,0x00000011,0x00000063, + 0x0000005f,0x00000062,0x0004003d,0x00000011,0x00000064,0x00000019,0x000500c4,0x00000011, + 0x00000066,0x00000064,0x00000065,0x000500c5,0x00000011,0x00000067,0x00000063,0x00000066, + 0x0003003e,0x0000005a,0x00000067,0x0004003d,0x00000006,0x00000068,0x00000015,0x000500b1, + 0x0000003f,0x0000006a,0x00000068,0x00000069,0x000300f7,0x0000006c,0x00000000,0x000400fa, + 0x0000006a,0x0000006b,0x0000008c,0x000200f8,0x0000006b,0x0004003d,0x00000011,0x0000006e, + 0x0000005a,0x000500c7,0x00000011,0x00000070,0x0000006e,0x0000006f,0x0003003e,0x0000006d, + 0x00000070,0x0004003d,0x00000006,0x00000071,0x00000015,0x000500b3,0x0000003f,0x00000073, + 0x00000071,0x00000072,0x000300f7,0x00000075,0x00000000,0x000400fa,0x00000073,0x00000074, + 0x00000075,0x000200f8,0x00000074,0x0004003d,0x00000011,0x00000076,0x0000005a,0x000500c4, + 0x00000011,0x00000077,0x00000076,0x0000005d,0x0004003d,0x00000011,0x00000078,0x0000006d, + 0x000500c5,0x00000011,0x00000079,0x00000077,0x00000078,0x0003003e,0x0000005a,0x00000079, + 0x000200f9,0x00000075,0x000200f8,0x00000075,0x0004003d,0x00000006,0x0000007a,0x00000015, + 0x000500b3,0x0000003f,0x0000007c,0x0000007a,0x0000007b,0x000300f7,0x0000007e,0x00000000, + 0x000400fa,0x0000007c,0x0000007d,0x0000007e,0x000200f8,0x0000007d,0x0004003d,0x00000011, + 0x0000007f,0x0000005a,0x000500c4,0x00000011,0x00000080,0x0000007f,0x0000005d,0x0004003d, + 0x00000011,0x00000081,0x0000006d,0x000500c5,0x00000011,0x00000082,0x00000080,0x00000081, + 0x0003003e,0x0000005a,0x00000082,0x000200f9,0x0000007e,0x000200f8,0x0000007e,0x0004003d, + 0x00000006,0x00000083,0x00000015,0x000500b3,0x0000003f,0x00000085,0x00000083,0x00000084, + 0x000300f7,0x00000087,0x00000000,0x000400fa,0x00000085,0x00000086,0x00000087,0x000200f8, + 0x00000086,0x0004003d,0x00000011,0x00000088,0x0000005a,0x000500c4,0x00000011,0x00000089, + 0x00000088,0x0000005d,0x0004003d,0x00000011,0x0000008a,0x0000006d,0x000500c5,0x00000011, + 0x0000008b,0x00000089,0x0000008a,0x0003003e,0x0000005a,0x0000008b,0x000200f9,0x00000087, + 0x000200f8,0x00000087,0x000200f9,0x0000006c,0x000200f8,0x0000008c,0x0004003d,0x00000006, + 0x0000008d,0x00000015,0x0004003d,0x00000006,0x0000008e,0x00000014,0x00050082,0x00000006, + 0x00000090,0x0000008e,0x0000008f,0x000500ad,0x0000003f,0x00000091,0x0000008d,0x00000090, + 0x000300f7,0x00000093,0x00000000,0x000400fa,0x00000091,0x00000092,0x00000093,0x000200f8, + 0x00000092,0x0004003d,0x00000011,0x00000095,0x0000005a,0x000500c7,0x00000011,0x00000097, + 0x00000095,0x00000096,0x0003003e,0x00000094,0x00000097,0x0004003d,0x00000006,0x00000098, + 0x00000015,0x0004003d,0x00000006,0x00000099,0x00000014,0x00050082,0x00000006,0x0000009b, + 0x00000099,0x0000009a,0x000500af,0x0000003f,0x0000009c,0x00000098,0x0000009b,0x000300f7, + 0x0000009e,0x00000000,0x000400fa,0x0000009c,0x0000009d,0x0000009e,0x000200f8,0x0000009d, + 0x0004003d,0x00000011,0x0000009f,0x0000005a,0x000500c2,0x00000011,0x000000a0,0x0000009f, + 0x0000005d,0x0004003d,0x00000011,0x000000a1,0x00000094,0x000500c5,0x00000011,0x000000a2, + 0x000000a0,0x000000a1,0x0003003e,0x0000005a,0x000000a2,0x000200f9,0x0000009e,0x000200f8, + 0x0000009e,0x0004003d,0x00000006,0x000000a3,0x00000015,0x0004003d,0x00000006,0x000000a4, + 0x00000014,0x00050082,0x00000006,0x000000a6,0x000000a4,0x000000a5,0x000500af,0x0000003f, + 0x000000a7,0x000000a3,0x000000a6,0x000300f7,0x000000a9,0x00000000,0x000400fa,0x000000a7, + 0x000000a8,0x000000a9,0x000200f8,0x000000a8,0x0004003d,0x00000011,0x000000aa,0x0000005a, + 0x000500c2,0x00000011,0x000000ab,0x000000aa,0x0000005d,0x0004003d,0x00000011,0x000000ac, + 0x00000094,0x000500c5,0x00000011,0x000000ad,0x000000ab,0x000000ac,0x0003003e,0x0000005a, + 0x000000ad,0x000200f9,0x000000a9,0x000200f8,0x000000a9,0x0004003d,0x00000006,0x000000ae, + 0x00000015,0x0004003d,0x00000006,0x000000af,0x00000014,0x00050082,0x00000006,0x000000b1, + 0x000000af,0x000000b0,0x000500af,0x0000003f,0x000000b2,0x000000ae,0x000000b1,0x000300f7, + 0x000000b4,0x00000000,0x000400fa,0x000000b2,0x000000b3,0x000000b4,0x000200f8,0x000000b3, + 0x0004003d,0x00000011,0x000000b5,0x0000005a,0x000500c2,0x00000011,0x000000b6,0x000000b5, + 0x0000005d,0x0004003d,0x00000011,0x000000b7,0x00000094,0x000500c5,0x00000011,0x000000b8, + 0x000000b6,0x000000b7,0x0003003e,0x0000005a,0x000000b8,0x000200f9,0x000000b4,0x000200f8, + 0x000000b4,0x000200f9,0x00000093,0x000200f8,0x00000093,0x000200f9,0x0000006c,0x000200f8, + 0x0000006c,0x0004003d,0x00000011,0x000000b9,0x0000005a,0x000200fe,0x000000b9,0x00010038, + 0x00050036,0x00000011,0x0000001f,0x00000000,0x0000001c,0x00030037,0x00000012,0x0000001d, + 0x00030037,0x00000012,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x00000011,0x000000bc, + 0x0000001d,0x000500c2,0x00000011,0x000000bd,0x000000bc,0x00000069,0x000500c7,0x00000011, + 0x000000be,0x000000bd,0x0000006f,0x0004007c,0x00000006,0x000000bf,0x000000be,0x0004003d, + 0x00000011,0x000000c0,0x0000001e,0x000500c2,0x00000011,0x000000c1,0x000000c0,0x00000069, + 0x000500c7,0x00000011,0x000000c2,0x000000c1,0x0000006f,0x0004007c,0x00000006,0x000000c3, + 0x000000c2,0x00050082,0x00000006,0x000000c4,0x000000bf,0x000000c3,0x0006000c,0x00000006, + 0x000000c5,0x00000001,0x00000005,0x000000c4,0x0004003d,0x00000011,0x000000c6,0x0000001d, + 0x000500c2,0x00000011,0x000000c7,0x000000c6,0x0000005d,0x000500c7,0x00000011,0x000000c8, + 0x000000c7,0x0000006f,0x0004007c,0x00000006,0x000000c9,0x000000c8,0x0004003d,0x00000011, + 0x000000ca,0x0000001e,0x000500c2,0x00000011,0x000000cb,0x000000ca,0x0000005d,0x000500c7, + 0x00000011,0x000000cc,0x000000cb,0x0000006f,0x0004007c,0x00000006,0x000000cd,0x000000cc, + 0x00050082,0x00000006,0x000000ce,0x000000c9,0x000000cd,0x0006000c,0x00000006,0x000000cf, + 0x00000001,0x00000005,0x000000ce,0x00050080,0x00000006,0x000000d0,0x000000c5,0x000000cf, + 0x0004003d,0x00000011,0x000000d1,0x0000001d,0x000500c2,0x00000011,0x000000d2,0x000000d1, + 0x00000061,0x000500c7,0x00000011,0x000000d3,0x000000d2,0x0000006f,0x0004007c,0x00000006, + 0x000000d4,0x000000d3,0x0004003d,0x00000011,0x000000d5,0x0000001e,0x000500c2,0x00000011, + 0x000000d6,0x000000d5,0x00000061,0x000500c7,0x00000011,0x000000d7,0x000000d6,0x0000006f, + 0x0004007c,0x00000006,0x000000d8,0x000000d7,0x00050082,0x00000006,0x000000d9,0x000000d4, + 0x000000d8,0x0006000c,0x00000006,0x000000da,0x00000001,0x00000005,0x000000d9,0x00050080, + 0x00000006,0x000000db,0x000000d0,0x000000da,0x0004003d,0x00000011,0x000000dc,0x0000001d, + 0x000500c2,0x00000011,0x000000dd,0x000000dc,0x00000065,0x000500c7,0x00000011,0x000000de, + 0x000000dd,0x0000006f,0x0004007c,0x00000006,0x000000df,0x000000de,0x0004003d,0x00000011, + 0x000000e0,0x0000001e,0x000500c2,0x00000011,0x000000e1,0x000000e0,0x00000065,0x000500c7, + 0x00000011,0x000000e2,0x000000e1,0x0000006f,0x0004007c,0x00000006,0x000000e3,0x000000e2, + 0x00050082,0x00000006,0x000000e4,0x000000df,0x000000e3,0x0006000c,0x00000006,0x000000e5, + 0x00000001,0x00000005,0x000000e4,0x00050080,0x00000006,0x000000e6,0x000000db,0x000000e5, + 0x0004007c,0x00000011,0x000000e7,0x000000e6,0x000200fe,0x000000e7,0x00010038,0x00050036, + 0x00000021,0x00000023,0x00000000,0x00000022,0x000200f8,0x00000024,0x00050041,0x000000ef, + 0x000000f0,0x000000ee,0x00000069,0x0004003d,0x00000021,0x000000f1,0x000000f0,0x000200fe, + 0x000000f1,0x00010038,0x00050036,0x00000011,0x00000026,0x00000000,0x00000025,0x000200f8, + 0x00000027,0x00050041,0x000000f4,0x000000f5,0x000000ee,0x0000009a,0x0004003d,0x00000011, + 0x000000f6,0x000000f5,0x000200fe,0x000000f6,0x00010038,0x00050036,0x00000011,0x00000028, + 0x00000000,0x00000025,0x000200f8,0x00000029,0x00050041,0x000000f4,0x000000f9,0x000000ee, + 0x000000b0,0x0004003d,0x00000011,0x000000fa,0x000000f9,0x000200fe,0x000000fa,0x00010038, + 0x00050036,0x00000011,0x0000002d,0x00000000,0x0000002b,0x00030037,0x0000002a,0x0000002c, + 0x000200f8,0x0000002e,0x0004003d,0x000000fd,0x00000100,0x000000ff,0x0004003d,0x00000021, + 0x00000101,0x0000002c,0x0007005f,0x00000102,0x00000103,0x00000100,0x00000101,0x00000002, + 0x00000069,0x00050051,0x00000011,0x00000105,0x00000103,0x00000000,0x000200fe,0x00000105, + 0x00010038,0x00050036,0x00000011,0x00000030,0x00000000,0x0000002b,0x00030037,0x0000002a, + 0x0000002f,0x000200f8,0x00000031,0x0004003d,0x000000fd,0x00000109,0x00000108,0x0004003d, + 0x00000021,0x0000010a,0x0000002f,0x0007005f,0x00000102,0x0000010b,0x00000109,0x0000010a, + 0x00000002,0x00000069,0x00050051,0x00000011,0x0000010c,0x0000010b,0x00000000,0x000200fe, + 0x0000010c,0x00010038,0x00050036,0x00000021,0x00000034,0x00000000,0x00000032,0x00030037, + 0x0000002a,0x00000033,0x000200f8,0x00000035,0x0004003d,0x0000010f,0x00000112,0x00000111, + 0x0004003d,0x00000021,0x00000113,0x00000033,0x0007005f,0x00000114,0x00000115,0x00000112, + 0x00000113,0x00000002,0x00000069,0x0007004f,0x00000021,0x00000116,0x00000115,0x00000115, + 0x00000000,0x00000001,0x000200fe,0x00000116,0x00010038,0x00050036,0x00000002,0x00000039, + 0x00000000,0x00000036,0x00030037,0x0000002a,0x00000037,0x00030037,0x0000002a,0x00000038, + 0x000200f8,0x0000003a,0x0004003d,0x00000119,0x0000011c,0x0000011b,0x0004003d,0x00000021, + 0x0000011d,0x00000037,0x0004003d,0x00000021,0x0000011e,0x00000038,0x00050051,0x00000006, + 0x0000011f,0x0000011e,0x00000000,0x00050051,0x00000006,0x00000120,0x0000011e,0x00000001, + 0x00070050,0x00000114,0x00000121,0x0000011f,0x00000120,0x00000069,0x00000069,0x00040063, + 0x0000011c,0x0000011d,0x00000121,0x000100fd,0x00010038,0x00050036,0x00000011,0x0000003d, + 0x00000000,0x0000003b,0x00030037,0x00000007,0x0000003c,0x000200f8,0x0000003e,0x0004003d, + 0x00000122,0x00000125,0x00000124,0x0004003d,0x00000006,0x00000126,0x0000003c,0x00050050, + 0x00000021,0x00000127,0x00000126,0x00000069,0x00050062,0x00000102,0x00000128,0x00000125, + 0x00000127,0x00050051,0x00000011,0x00000129,0x00000128,0x00000000,0x000200fe,0x00000129, + 0x00010038,0x00050036,0x0000003f,0x00000041,0x00000000,0x00000040,0x000200f8,0x00000042, + 0x0004003b,0x00000007,0x00000134,0x00000007,0x00040039,0x00000011,0x0000012c,0x00000026, + 0x000500b2,0x0000003f,0x0000012e,0x0000012c,0x0000012d,0x000300f7,0x00000130,0x00000000, + 0x000400fa,0x0000012e,0x0000012f,0x00000133,0x000200f8,0x0000012f,0x000200fe,0x00000131, + 0x000200f8,0x00000133,0x0003003e,0x00000134,0x000000b0,0x00050039,0x00000011,0x00000135, + 0x0000003d,0x00000134,0x000500c7,0x00000011,0x00000137,0x00000135,0x00000136,0x000500ab, + 0x0000003f,0x00000138,0x00000137,0x00000104,0x000200fe,0x00000138,0x000200f8,0x00000130, + 0x000100ff,0x00010038,0x00050036,0x00000011,0x00000044,0x00000000,0x0000002b,0x00030037, + 0x0000002a,0x00000043,0x000200f8,0x00000045,0x0004003b,0x00000007,0x0000013b,0x00000007, + 0x0004003b,0x00000007,0x00000140,0x00000007,0x0004003b,0x0000002a,0x00000146,0x00000007, + 0x0004003b,0x00000007,0x00000149,0x00000007,0x0004003b,0x00000007,0x0000014a,0x00000007, + 0x0004003b,0x00000007,0x0000014e,0x00000007,0x0004003b,0x00000007,0x0000014f,0x00000007, + 0x0004003b,0x00000007,0x00000153,0x00000007,0x0004003b,0x00000007,0x00000154,0x00000007, + 0x0004003b,0x00000007,0x00000158,0x00000007,0x0004003b,0x00000007,0x00000159,0x00000007, + 0x0004003b,0x00000012,0x0000015c,0x00000007,0x0004003b,0x0000002a,0x00000160,0x00000007, + 0x0004003b,0x00000012,0x00000162,0x00000007,0x0004003b,0x0000002a,0x00000166,0x00000007, + 0x0004003b,0x00000012,0x00000168,0x00000007,0x0004003b,0x0000002a,0x0000016c,0x00000007, + 0x0004003b,0x00000012,0x0000016e,0x00000007,0x0004003b,0x0000002a,0x00000172,0x00000007, + 0x0004003b,0x00000007,0x00000174,0x00000007,0x0004003b,0x00000007,0x00000176,0x00000007, + 0x0004003b,0x00000012,0x00000179,0x00000007,0x0004003b,0x00000012,0x0000017b,0x00000007, + 0x0004003b,0x00000012,0x0000017d,0x00000007,0x0004003b,0x00000012,0x0000017f,0x00000007, + 0x00040039,0x00000021,0x0000013c,0x00000023,0x00050051,0x00000006,0x0000013d,0x0000013c, + 0x00000000,0x00040039,0x00000011,0x0000013e,0x00000028,0x000500c3,0x00000006,0x0000013f, + 0x0000013d,0x0000013e,0x0003003e,0x0000013b,0x0000013f,0x00040039,0x00000021,0x00000141, + 0x00000023,0x00050051,0x00000006,0x00000143,0x00000141,0x00000001,0x00040039,0x00000011, + 0x00000144,0x00000028,0x000500c3,0x00000006,0x00000145,0x00000143,0x00000144,0x0003003e, + 0x00000140,0x00000145,0x0004003d,0x00000006,0x00000147,0x0000013b,0x00050082,0x00000006, + 0x00000148,0x00000147,0x0000008f,0x0003003e,0x00000149,0x00000148,0x00050041,0x00000007, + 0x0000014b,0x00000043,0x00000104,0x0004003d,0x00000006,0x0000014c,0x0000014b,0x0003003e, + 0x0000014a,0x0000014c,0x00060039,0x00000006,0x0000014d,0x0000000b,0x00000149,0x0000014a, + 0x0003003e,0x0000014e,0x00000069,0x0003003e,0x0000014f,0x0000014d,0x00060039,0x00000006, + 0x00000150,0x0000000f,0x0000014e,0x0000014f,0x0004003d,0x00000006,0x00000151,0x00000140, + 0x00050082,0x00000006,0x00000152,0x00000151,0x000000b0,0x0003003e,0x00000153,0x00000152, + 0x00050041,0x00000007,0x00000155,0x00000043,0x00000142,0x0004003d,0x00000006,0x00000156, + 0x00000155,0x0003003e,0x00000154,0x00000156,0x00060039,0x00000006,0x00000157,0x0000000b, + 0x00000153,0x00000154,0x0003003e,0x00000158,0x00000069,0x0003003e,0x00000159,0x00000157, + 0x00060039,0x00000006,0x0000015a,0x0000000f,0x00000158,0x00000159,0x00050050,0x00000021, + 0x0000015b,0x00000150,0x0000015a,0x0003003e,0x00000146,0x0000015b,0x0004003d,0x00000021, + 0x0000015d,0x00000146,0x00050080,0x00000021,0x0000015f,0x0000015d,0x0000015e,0x0003003e, + 0x00000160,0x0000015f,0x00050039,0x00000011,0x00000161,0x0000002d,0x00000160,0x0003003e, + 0x0000015c,0x00000161,0x0004003d,0x00000021,0x00000163,0x00000146,0x00050080,0x00000021, + 0x00000165,0x00000163,0x00000164,0x0003003e,0x00000166,0x00000165,0x00050039,0x00000011, + 0x00000167,0x0000002d,0x00000166,0x0003003e,0x00000162,0x00000167,0x0004003d,0x00000021, + 0x00000169,0x00000146,0x00050080,0x00000021,0x0000016b,0x00000169,0x0000016a,0x0003003e, + 0x0000016c,0x0000016b,0x00050039,0x00000011,0x0000016d,0x0000002d,0x0000016c,0x0003003e, + 0x00000168,0x0000016d,0x0004003d,0x00000021,0x0000016f,0x00000146,0x00050080,0x00000021, + 0x00000171,0x0000016f,0x00000170,0x0003003e,0x00000172,0x00000171,0x00050039,0x00000011, + 0x00000173,0x0000002d,0x00000172,0x0003003e,0x0000016e,0x00000173,0x0004003d,0x00000006, + 0x00000175,0x0000013b,0x0003003e,0x00000174,0x00000175,0x00050041,0x00000007,0x00000177, + 0x00000043,0x00000104,0x0004003d,0x00000006,0x00000178,0x00000177,0x0003003e,0x00000176, + 0x00000178,0x0004003d,0x00000011,0x0000017a,0x0000015c,0x0003003e,0x00000179,0x0000017a, + 0x0004003d,0x00000011,0x0000017c,0x00000162,0x0003003e,0x0000017b,0x0000017c,0x0004003d, + 0x00000011,0x0000017e,0x00000168,0x0003003e,0x0000017d,0x0000017e,0x0004003d,0x00000011, + 0x00000180,0x0000016e,0x0003003e,0x0000017f,0x00000180,0x000a0039,0x00000011,0x00000181, + 0x0000001a,0x00000174,0x00000176,0x00000179,0x0000017b,0x0000017d,0x0000017f,0x000200fe, + 0x00000181,0x00010038,0x00050036,0x00000011,0x00000047,0x00000000,0x0000002b,0x00030037, + 0x0000002a,0x00000046,0x000200f8,0x00000048,0x0004003b,0x00000007,0x00000184,0x00000007, + 0x0004003b,0x00000007,0x00000189,0x00000007,0x0004003b,0x0000002a,0x0000018e,0x00000007, + 0x0004003b,0x00000007,0x00000191,0x00000007,0x0004003b,0x00000007,0x00000192,0x00000007, + 0x0004003b,0x00000007,0x00000196,0x00000007,0x0004003b,0x00000007,0x00000197,0x00000007, + 0x0004003b,0x00000007,0x0000019b,0x00000007,0x0004003b,0x00000007,0x0000019c,0x00000007, + 0x0004003b,0x00000007,0x000001a0,0x00000007,0x0004003b,0x00000007,0x000001a1,0x00000007, + 0x0004003b,0x00000012,0x000001a4,0x00000007,0x0004003b,0x0000002a,0x000001a7,0x00000007, + 0x0004003b,0x00000012,0x000001a9,0x00000007,0x0004003b,0x0000002a,0x000001ac,0x00000007, + 0x0004003b,0x00000012,0x000001ae,0x00000007,0x0004003b,0x0000002a,0x000001b1,0x00000007, + 0x0004003b,0x00000012,0x000001b3,0x00000007,0x0004003b,0x0000002a,0x000001b6,0x00000007, + 0x0004003b,0x00000007,0x000001b8,0x00000007,0x0004003b,0x00000007,0x000001ba,0x00000007, + 0x0004003b,0x00000012,0x000001bd,0x00000007,0x0004003b,0x00000012,0x000001bf,0x00000007, + 0x0004003b,0x00000012,0x000001c1,0x00000007,0x0004003b,0x00000012,0x000001c3,0x00000007, + 0x00040039,0x00000021,0x00000185,0x00000023,0x00050051,0x00000006,0x00000186,0x00000185, + 0x00000000,0x00040039,0x00000011,0x00000187,0x00000028,0x000500c3,0x00000006,0x00000188, + 0x00000186,0x00000187,0x0003003e,0x00000184,0x00000188,0x00040039,0x00000021,0x0000018a, + 0x00000023,0x00050051,0x00000006,0x0000018b,0x0000018a,0x00000001,0x00040039,0x00000011, + 0x0000018c,0x00000028,0x000500c3,0x00000006,0x0000018d,0x0000018b,0x0000018c,0x0003003e, + 0x00000189,0x0000018d,0x0004003d,0x00000006,0x0000018f,0x00000184,0x00050082,0x00000006, + 0x00000190,0x0000018f,0x0000008f,0x0003003e,0x00000191,0x00000190,0x00050041,0x00000007, + 0x00000193,0x00000046,0x00000104,0x0004003d,0x00000006,0x00000194,0x00000193,0x0003003e, + 0x00000192,0x00000194,0x00060039,0x00000006,0x00000195,0x0000000b,0x00000191,0x00000192, + 0x0003003e,0x00000196,0x00000069,0x0003003e,0x00000197,0x00000195,0x00060039,0x00000006, + 0x00000198,0x0000000f,0x00000196,0x00000197,0x0004003d,0x00000006,0x00000199,0x00000189, + 0x00050082,0x00000006,0x0000019a,0x00000199,0x000000b0,0x0003003e,0x0000019b,0x0000019a, + 0x00050041,0x00000007,0x0000019d,0x00000046,0x00000142,0x0004003d,0x00000006,0x0000019e, + 0x0000019d,0x0003003e,0x0000019c,0x0000019e,0x00060039,0x00000006,0x0000019f,0x0000000b, + 0x0000019b,0x0000019c,0x0003003e,0x000001a0,0x00000069,0x0003003e,0x000001a1,0x0000019f, + 0x00060039,0x00000006,0x000001a2,0x0000000f,0x000001a0,0x000001a1,0x00050050,0x00000021, + 0x000001a3,0x00000198,0x000001a2,0x0003003e,0x0000018e,0x000001a3,0x0004003d,0x00000021, + 0x000001a5,0x0000018e,0x00050080,0x00000021,0x000001a6,0x000001a5,0x0000015e,0x0003003e, + 0x000001a7,0x000001a6,0x00050039,0x00000011,0x000001a8,0x00000030,0x000001a7,0x0003003e, + 0x000001a4,0x000001a8,0x0004003d,0x00000021,0x000001aa,0x0000018e,0x00050080,0x00000021, + 0x000001ab,0x000001aa,0x00000164,0x0003003e,0x000001ac,0x000001ab,0x00050039,0x00000011, + 0x000001ad,0x00000030,0x000001ac,0x0003003e,0x000001a9,0x000001ad,0x0004003d,0x00000021, + 0x000001af,0x0000018e,0x00050080,0x00000021,0x000001b0,0x000001af,0x0000016a,0x0003003e, + 0x000001b1,0x000001b0,0x00050039,0x00000011,0x000001b2,0x00000030,0x000001b1,0x0003003e, + 0x000001ae,0x000001b2,0x0004003d,0x00000021,0x000001b4,0x0000018e,0x00050080,0x00000021, + 0x000001b5,0x000001b4,0x00000170,0x0003003e,0x000001b6,0x000001b5,0x00050039,0x00000011, + 0x000001b7,0x00000030,0x000001b6,0x0003003e,0x000001b3,0x000001b7,0x0004003d,0x00000006, + 0x000001b9,0x00000184,0x0003003e,0x000001b8,0x000001b9,0x00050041,0x00000007,0x000001bb, + 0x00000046,0x00000104,0x0004003d,0x00000006,0x000001bc,0x000001bb,0x0003003e,0x000001ba, + 0x000001bc,0x0004003d,0x00000011,0x000001be,0x000001a4,0x0003003e,0x000001bd,0x000001be, + 0x0004003d,0x00000011,0x000001c0,0x000001a9,0x0003003e,0x000001bf,0x000001c0,0x0004003d, + 0x00000011,0x000001c2,0x000001ae,0x0003003e,0x000001c1,0x000001c2,0x0004003d,0x00000011, + 0x000001c4,0x000001b3,0x0003003e,0x000001c3,0x000001c4,0x000a0039,0x00000011,0x000001c5, + 0x0000001a,0x000001b8,0x000001ba,0x000001bd,0x000001bf,0x000001c1,0x000001c3,0x000200fe, + 0x000001c5,0x00010038,0x00050036,0x00000002,0x0000004e,0x00000000,0x0000004b,0x00030037, + 0x0000004a,0x0000004c,0x00030037,0x0000004a,0x0000004d,0x000200f8,0x0000004f,0x0004003b, + 0x0000002a,0x000001cb,0x00000007,0x0004003b,0x0000002a,0x000001ce,0x00000007,0x0004003b, + 0x00000007,0x000001d1,0x00000007,0x0004003b,0x00000007,0x000001db,0x00000007,0x0004003b, + 0x0000002a,0x000001e4,0x00000007,0x0004003b,0x0000002a,0x000001f0,0x00000007,0x0004003b, + 0x0000002a,0x000001f1,0x00000007,0x0004003b,0x00000007,0x00000205,0x00000007,0x0004003b, + 0x00000007,0x00000206,0x00000007,0x0004003b,0x0000002a,0x00000211,0x00000007,0x0004003b, + 0x00000012,0x0000021c,0x00000007,0x0004003b,0x0000002a,0x0000021d,0x00000007,0x0004003b, + 0x00000012,0x00000231,0x00000007,0x0004003b,0x00000007,0x00000232,0x00000007,0x0004003b, + 0x0000002a,0x0000023b,0x00000007,0x0004003b,0x00000012,0x00000248,0x00000007,0x0004003b, + 0x0000002a,0x00000249,0x00000007,0x0004003b,0x00000012,0x00000251,0x00000007,0x0004003b, + 0x00000012,0x00000254,0x00000007,0x0004003b,0x00000012,0x00000269,0x00000007,0x0004003b, + 0x00000012,0x0000026b,0x00000007,0x0004003b,0x00000007,0x0000026c,0x00000007,0x0004003b, + 0x0000002a,0x0000028a,0x00000007,0x0004003b,0x0000002a,0x00000292,0x00000007,0x0004003b, + 0x0000002a,0x00000295,0x00000007,0x00040039,0x0000003f,0x000001c8,0x00000041,0x000300f7, + 0x000001ca,0x00000000,0x000400fa,0x000001c8,0x000001c9,0x000001ca,0x000200f8,0x000001c9, + 0x0004003d,0x00000049,0x000001cc,0x0000004c,0x0007004f,0x00000021,0x000001cd,0x000001cc, + 0x000001cc,0x00000000,0x00000001,0x0003003e,0x000001cb,0x000001cd,0x0003003e,0x000001ce, + 0x0000015e,0x00060039,0x00000002,0x000001cf,0x00000039,0x000001cb,0x000001ce,0x000100fd, + 0x000200f8,0x000001ca,0x00050041,0x00000007,0x000001d3,0x0000004d,0x000001d2,0x0004003d, + 0x00000006,0x000001d4,0x000001d3,0x0005008b,0x00000006,0x000001d5,0x000001d4,0x000000a5, + 0x00050082,0x00000006,0x000001d6,0x000001d5,0x000000b0,0x00050041,0x00000007,0x000001d7, + 0x0000004c,0x00000104,0x0004003d,0x00000006,0x000001d8,0x000001d7,0x0005008b,0x00000006, + 0x000001d9,0x000001d8,0x000000a5,0x00050080,0x00000006,0x000001da,0x000001d6,0x000001d9, + 0x0003003e,0x000001d1,0x000001da,0x00050041,0x00000007,0x000001dc,0x0000004d,0x000001d2, + 0x0004003d,0x00000006,0x000001dd,0x000001dc,0x00050087,0x00000006,0x000001de,0x000001dd, + 0x000000a5,0x00050082,0x00000006,0x000001df,0x000001de,0x000000b0,0x00050041,0x00000007, + 0x000001e0,0x0000004c,0x00000142,0x0004003d,0x00000006,0x000001e1,0x000001e0,0x0005008b, + 0x00000006,0x000001e2,0x000001e1,0x000000a5,0x00050080,0x00000006,0x000001e3,0x000001df, + 0x000001e2,0x0003003e,0x000001db,0x000001e3,0x00050041,0x00000007,0x000001e5,0x0000004c, + 0x00000104,0x0004003d,0x00000006,0x000001e6,0x000001e5,0x00050087,0x00000006,0x000001e7, + 0x000001e6,0x000000a5,0x0004003d,0x00000006,0x000001e8,0x000001d1,0x00050080,0x00000006, + 0x000001e9,0x000001e7,0x000001e8,0x00050041,0x00000007,0x000001ea,0x0000004c,0x00000142, + 0x0004003d,0x00000006,0x000001eb,0x000001ea,0x00050087,0x00000006,0x000001ec,0x000001eb, + 0x000000a5,0x0004003d,0x00000006,0x000001ed,0x000001db,0x00050080,0x00000006,0x000001ee, + 0x000001ec,0x000001ed,0x00050050,0x00000021,0x000001ef,0x000001e9,0x000001ee,0x0003003e, + 0x000001e4,0x000001ef,0x0004003d,0x00000021,0x000001f2,0x000001e4,0x0003003e,0x000001f1, + 0x000001f2,0x00050039,0x00000021,0x000001f3,0x00000034,0x000001f1,0x0003003e,0x000001f0, + 0x000001f3,0x00050041,0x00000007,0x000001fa,0x0000004d,0x000001d2,0x0004003d,0x00000006, + 0x000001fb,0x000001fa,0x00050041,0x00000007,0x000001fc,0x0000004d,0x00000142,0x0004003d, + 0x00000006,0x000001fd,0x000001fc,0x00050041,0x00000007,0x000001fe,0x0000004d,0x00000104, + 0x0004003d,0x00000006,0x000001ff,0x000001fe,0x0004003d,0x00000021,0x00000200,0x000001f0, + 0x00050050,0x00000021,0x00000201,0x000000a5,0x000000a5,0x00050084,0x00000021,0x00000202, + 0x00000200,0x00000201,0x00070041,0x00000203,0x00000204,0x000001f9,0x000001fb,0x000001fd, + 0x000001ff,0x0003003e,0x00000204,0x00000202,0x0003003e,0x00000205,0x0000008f,0x00050041, + 0x00000007,0x00000207,0x0000004d,0x000001d2,0x0004003d,0x00000006,0x00000208,0x00000207, + 0x0003003e,0x00000206,0x00000208,0x000200f9,0x00000209,0x000200f8,0x00000209,0x000400f6, + 0x0000020b,0x0000020c,0x00000000,0x000200f9,0x0000020d,0x000200f8,0x0000020d,0x0004003d, + 0x00000006,0x0000020e,0x00000206,0x0004003d,0x00000006,0x0000020f,0x00000205,0x000500b1, + 0x0000003f,0x00000210,0x0000020e,0x0000020f,0x000400fa,0x00000210,0x0000020a,0x0000020b, + 0x000200f8,0x0000020a,0x00050041,0x00000007,0x00000212,0x0000004c,0x00000104,0x0004003d, + 0x00000006,0x00000213,0x00000212,0x00050084,0x00000006,0x00000214,0x00000213,0x0000008f, + 0x00050041,0x00000007,0x00000215,0x0000004c,0x00000142,0x0004003d,0x00000006,0x00000216, + 0x00000215,0x0004003d,0x00000006,0x00000217,0x00000205,0x00050084,0x00000006,0x00000218, + 0x00000216,0x00000217,0x0004003d,0x00000006,0x00000219,0x00000206,0x00050080,0x00000006, + 0x0000021a,0x00000218,0x00000219,0x00050050,0x00000021,0x0000021b,0x00000214,0x0000021a, + 0x0003003e,0x00000211,0x0000021b,0x0004003d,0x00000021,0x0000021e,0x00000211,0x0003003e, + 0x0000021d,0x0000021e,0x00050039,0x00000011,0x0000021f,0x00000044,0x0000021d,0x0003003e, + 0x0000021c,0x0000021f,0x0004003d,0x00000006,0x00000225,0x00000206,0x00050041,0x00000007, + 0x00000226,0x0000004d,0x00000142,0x0004003d,0x00000006,0x00000227,0x00000226,0x00050041, + 0x00000007,0x00000228,0x0000004d,0x00000104,0x0004003d,0x00000006,0x00000229,0x00000228, + 0x0004003d,0x00000011,0x0000022a,0x0000021c,0x00070041,0x0000022b,0x0000022c,0x00000224, + 0x00000225,0x00000227,0x00000229,0x0003003e,0x0000022c,0x0000022a,0x000200f9,0x0000020c, + 0x000200f8,0x0000020c,0x0004003d,0x00000006,0x0000022d,0x00000206,0x00050080,0x00000006, + 0x0000022e,0x0000022d,0x0000008f,0x0003003e,0x00000206,0x0000022e,0x000200f9,0x00000209, + 0x000200f8,0x0000020b,0x000300e1,0x000001d2,0x0000022f,0x000400e0,0x000001d2,0x000001d2, + 0x00000230,0x0003003e,0x00000231,0x00000104,0x0003003e,0x00000232,0x00000069,0x000200f9, + 0x00000233,0x000200f8,0x00000233,0x000400f6,0x00000235,0x00000236,0x00000000,0x000200f9, + 0x00000237,0x000200f8,0x00000237,0x0004003d,0x00000006,0x00000238,0x00000232,0x0004003d, + 0x00000006,0x00000239,0x00000205,0x000500b1,0x0000003f,0x0000023a,0x00000238,0x00000239, + 0x000400fa,0x0000023a,0x00000234,0x00000235,0x000200f8,0x00000234,0x00050041,0x00000007, + 0x0000023c,0x0000004c,0x00000104,0x0004003d,0x00000006,0x0000023d,0x0000023c,0x00050084, + 0x00000006,0x0000023e,0x0000023d,0x0000008f,0x00050041,0x00000007,0x0000023f,0x0000004c, + 0x00000142,0x0004003d,0x00000006,0x00000240,0x0000023f,0x0004003d,0x00000006,0x00000241, + 0x00000205,0x00050084,0x00000006,0x00000242,0x00000240,0x00000241,0x0004003d,0x00000006, + 0x00000243,0x00000232,0x00050080,0x00000006,0x00000244,0x00000242,0x00000243,0x00050050, + 0x00000021,0x00000245,0x0000023e,0x00000244,0x0004003d,0x00000021,0x00000246,0x000001f0, + 0x00050080,0x00000021,0x00000247,0x00000245,0x00000246,0x0003003e,0x0000023b,0x00000247, + 0x0004003d,0x00000021,0x0000024a,0x0000023b,0x0003003e,0x00000249,0x0000024a,0x00050039, + 0x00000011,0x0000024b,0x00000047,0x00000249,0x0003003e,0x00000248,0x0000024b,0x0004003d, + 0x00000006,0x0000024c,0x00000232,0x00050041,0x00000007,0x0000024d,0x0000004d,0x00000142, + 0x0004003d,0x00000006,0x0000024e,0x0000024d,0x00050041,0x00000007,0x0000024f,0x0000004d, + 0x00000104,0x0004003d,0x00000006,0x00000250,0x0000024f,0x00070041,0x0000022b,0x00000252, + 0x00000224,0x0000024c,0x0000024e,0x00000250,0x0004003d,0x00000011,0x00000253,0x00000252, + 0x0003003e,0x00000251,0x00000253,0x0004003d,0x00000011,0x00000255,0x00000248,0x0003003e, + 0x00000254,0x00000255,0x00060039,0x00000011,0x00000256,0x0000001f,0x00000251,0x00000254, + 0x0004003d,0x00000011,0x00000257,0x00000231,0x00050080,0x00000011,0x00000258,0x00000257, + 0x00000256,0x0003003e,0x00000231,0x00000258,0x000200f9,0x00000236,0x000200f8,0x00000236, + 0x0004003d,0x00000006,0x00000259,0x00000232,0x00050080,0x00000006,0x0000025a,0x00000259, + 0x000000b0,0x0003003e,0x00000232,0x0000025a,0x000200f9,0x00000233,0x000200f8,0x00000235, + 0x00050041,0x00000007,0x0000025c,0x0000004d,0x000001d2,0x0004003d,0x00000006,0x0000025d, + 0x0000025c,0x00050041,0x00000007,0x0000025e,0x0000004d,0x00000142,0x0004003d,0x00000006, + 0x0000025f,0x0000025e,0x00050041,0x00000007,0x00000260,0x0000004d,0x00000104,0x0004003d, + 0x00000006,0x00000261,0x00000260,0x0004003d,0x00000011,0x00000262,0x00000231,0x00070041, + 0x0000022b,0x00000263,0x0000025b,0x0000025d,0x0000025f,0x00000261,0x0003003e,0x00000263, + 0x00000262,0x000300e1,0x000001d2,0x0000022f,0x000400e0,0x000001d2,0x000001d2,0x00000230, + 0x00050041,0x00000007,0x00000264,0x0000004d,0x000001d2,0x0004003d,0x00000006,0x00000265, + 0x00000264,0x000500aa,0x0000003f,0x00000266,0x00000265,0x00000069,0x000300f7,0x00000268, + 0x00000000,0x000400fa,0x00000266,0x00000267,0x00000268,0x000200f8,0x00000267,0x0003003e, + 0x00000269,0x0000026a,0x0003003e,0x0000026b,0x00000104,0x0003003e,0x0000026c,0x00000069, + 0x000200f9,0x0000026d,0x000200f8,0x0000026d,0x000400f6,0x0000026f,0x00000270,0x00000000, + 0x000200f9,0x00000271,0x000200f8,0x00000271,0x0004003d,0x00000006,0x00000272,0x0000026c, + 0x000500b1,0x0000003f,0x00000273,0x00000272,0x0000008f,0x000400fa,0x00000273,0x0000026e, + 0x0000026f,0x000200f8,0x0000026e,0x0004003d,0x00000006,0x00000274,0x0000026c,0x00050041, + 0x00000007,0x00000275,0x0000004d,0x00000142,0x0004003d,0x00000006,0x00000276,0x00000275, + 0x00050041,0x00000007,0x00000277,0x0000004d,0x00000104,0x0004003d,0x00000006,0x00000278, + 0x00000277,0x00070041,0x0000022b,0x00000279,0x0000025b,0x00000274,0x00000276,0x00000278, + 0x0004003d,0x00000011,0x0000027a,0x00000279,0x0004003d,0x00000011,0x0000027b,0x00000269, + 0x000500b0,0x0000003f,0x0000027c,0x0000027a,0x0000027b,0x000300f7,0x0000027e,0x00000000, + 0x000400fa,0x0000027c,0x0000027d,0x0000027e,0x000200f8,0x0000027d,0x0004003d,0x00000006, + 0x0000027f,0x0000026c,0x00050041,0x00000007,0x00000280,0x0000004d,0x00000142,0x0004003d, + 0x00000006,0x00000281,0x00000280,0x00050041,0x00000007,0x00000282,0x0000004d,0x00000104, + 0x0004003d,0x00000006,0x00000283,0x00000282,0x00070041,0x0000022b,0x00000284,0x0000025b, + 0x0000027f,0x00000281,0x00000283,0x0004003d,0x00000011,0x00000285,0x00000284,0x0003003e, + 0x00000269,0x00000285,0x0004003d,0x00000006,0x00000286,0x0000026c,0x0004007c,0x00000011, + 0x00000287,0x00000286,0x0003003e,0x0000026b,0x00000287,0x000200f9,0x0000027e,0x000200f8, + 0x0000027e,0x000200f9,0x00000270,0x000200f8,0x00000270,0x0004003d,0x00000006,0x00000288, + 0x0000026c,0x00050080,0x00000006,0x00000289,0x00000288,0x000000b0,0x0003003e,0x0000026c, + 0x00000289,0x000200f9,0x0000026d,0x000200f8,0x0000026f,0x0004003d,0x00000011,0x0000028b, + 0x0000026b,0x00050041,0x00000007,0x0000028c,0x0000004d,0x00000142,0x0004003d,0x00000006, + 0x0000028d,0x0000028c,0x00050041,0x00000007,0x0000028e,0x0000004d,0x00000104,0x0004003d, + 0x00000006,0x0000028f,0x0000028e,0x00070041,0x00000203,0x00000290,0x000001f9,0x0000028b, + 0x0000028d,0x0000028f,0x0004003d,0x00000021,0x00000291,0x00000290,0x0003003e,0x0000028a, + 0x00000291,0x0004003d,0x00000049,0x00000293,0x0000004c,0x0007004f,0x00000021,0x00000294, + 0x00000293,0x00000293,0x00000000,0x00000001,0x0003003e,0x00000292,0x00000294,0x0004003d, + 0x00000021,0x00000296,0x0000028a,0x0003003e,0x00000295,0x00000296,0x00060039,0x00000002, + 0x00000297,0x00000039,0x00000292,0x00000295,0x000200f9,0x00000268,0x000200f8,0x00000268, + 0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_prep.comp b/gpu/vk/shaders/fsr3_prep.comp new file mode 100644 index 000000000..0e358518f --- /dev/null +++ b/gpu/vk/shaders/fsr3_prep.comp @@ -0,0 +1,48 @@ +#version 450 +// (hookshot) AMD FSR 3.1's inputs for OoT's gameplay upscale (vk_fsr3_inputs.cpp), at the render size, in one pass. The +// same inputs, from the same math, as NVIDIA DLSS's (dlss_prep.comp, #841), so the two upscalers see one picture: +// - colour: the network's input as it samples it (the square root of the scene's tonemapped colour, its perceptual +// encoding), clamped to 0..1; a NaN is 0, as one would stay in FSR's history for good. vk_fsr3.cpp's output pass squares +// FSR's picture back, as the network's own output does +// - depth: the scene's depth, reversed when the game's is not (pc.flags bit 1), which is the depth the vendored passes were +// compiled for (FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH, FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH) +// - motion: where each pixel was in the frame before, in render pixels (x right, y down), the jitter taken off: the depth +// taken back to clip space and through pc.reproject (this frame's jittered clip space to the frame before's without its +// jitter: dlss_math.h). The camera's motion only, as #841's before its actor motion: what moves by itself gets the motion +// of what is behind it. pc.flags bit 0: motion (none on the first frame of a history) +// The game's clip space: depth from -1 to 1 (NVN's default), y up, the picture's rows top down. +layout(local_size_x = 8, local_size_y = 8) in; +layout(binding = 0) uniform sampler2D scene; +layout(binding = 1) uniform sampler2D scene_depth; +layout(binding = 2, rgba16f) uniform writeonly image2D color; +layout(binding = 3, r32f) uniform writeonly image2D depth; +layout(binding = 4, rg16f) uniform writeonly image2D motion; +layout(push_constant, row_major) uniform P { + mat4 reproject; // (this frame's jittered clip space to the frame before's without its jitter) + vec2 jitter; // (this frame's jitter in clip space: taken off, so the motion has none) + ivec2 size; + int flags; +} pc; +void main() { + const ivec2 g = ivec2(gl_GlobalInvocationID.xy); + if (any(greaterThanEqual(g, pc.size))) return; + const vec2 size = vec2(pc.size); + const vec2 uv = (vec2(g) + 0.5) / size; + vec3 c = textureLod(scene, uv, 0.0).rgb; + c = mix(c, vec3(0.0), isnan(c)); + imageStore(color, g, vec4(clamp(c, 0.0, 1.0), 1.0)); + const float d = textureLod(scene_depth, uv, 0.0).r; + imageStore(depth, g, vec4((pc.flags & 2) != 0 ? 1.0 - d : d)); + vec2 mv = vec2(0.0); + if ((pc.flags & 1) != 0 && d >= 0.0 && d <= 1.0) { + const vec4 clip = vec4(uv.x * 2.0 - 1.0, 1.0 - uv.y * 2.0, d * 2.0 - 1.0, 1.0); + const vec4 before = pc.reproject * clip; + if (before.w > 1e-6) { + const vec2 then = before.xy / before.w; + const vec2 now = clip.xy - pc.jitter; + const vec2 px = vec2(then.x - now.x, now.y - then.y) * 0.5 * size; + if (all(lessThan(abs(px), vec2(16384.0)))) mv = px; + } + } + imageStore(motion, g, vec4(mv, 0.0, 0.0)); +} diff --git a/gpu/vk/shaders/fsr3_prep_comp_spv.h b/gpu/vk/shaders/fsr3_prep_comp_spv.h new file mode 100644 index 000000000..869e73d5f --- /dev/null +++ b/gpu/vk/shaders/fsr3_prep_comp_spv.h @@ -0,0 +1,157 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_PREP_COMP_SPV[] = { + 0x07230203,0x00010600,0x0008000b,0x000000cc,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x000c000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000000d, + 0x00000019,0x00000038,0x00000046,0x00000054,0x0000005c,0x000000c3,0x00060010,0x00000004, + 0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x00030005,0x00000009,0x00000067,0x00080005,0x0000000d, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00030005,0x00000017, + 0x00000050,0x00060006,0x00000017,0x00000000,0x72706572,0x63656a6f,0x00000074,0x00050006, + 0x00000017,0x00000001,0x7474696a,0x00007265,0x00050006,0x00000017,0x00000002,0x657a6973, + 0x00000000,0x00050006,0x00000017,0x00000003,0x67616c66,0x00000073,0x00030005,0x00000019, + 0x00006370,0x00040005,0x00000026,0x657a6973,0x00000000,0x00030005,0x0000002a,0x00007675, + 0x00030005,0x00000034,0x00000063,0x00040005,0x00000038,0x6e656373,0x00000065,0x00040005, + 0x00000046,0x6f6c6f63,0x00000072,0x00030005,0x00000053,0x00000064,0x00050005,0x00000054, + 0x6e656373,0x65645f65,0x00687470,0x00040005,0x0000005c,0x74706564,0x00000068,0x00030005, + 0x0000006f,0x0000766d,0x00040005,0x0000007f,0x70696c63,0x00000000,0x00040005,0x0000008e, + 0x6f666562,0x00006572,0x00040005,0x0000009b,0x6e656874,0x00000000,0x00030005,0x000000a2, + 0x00776f6e,0x00030005,0x000000a9,0x00007870,0x00040005,0x000000c3,0x69746f6d,0x00006e6f, + 0x00040047,0x0000000d,0x0000000b,0x0000001c,0x00030047,0x00000017,0x00000002,0x00040048, + 0x00000017,0x00000000,0x00000004,0x00050048,0x00000017,0x00000000,0x00000007,0x00000010, + 0x00050048,0x00000017,0x00000000,0x00000023,0x00000000,0x00050048,0x00000017,0x00000001, + 0x00000023,0x00000040,0x00050048,0x00000017,0x00000002,0x00000023,0x00000048,0x00050048, + 0x00000017,0x00000003,0x00000023,0x00000050,0x00040047,0x00000038,0x00000021,0x00000000, + 0x00040047,0x00000038,0x00000022,0x00000000,0x00030047,0x00000046,0x00000019,0x00040047, + 0x00000046,0x00000021,0x00000002,0x00040047,0x00000046,0x00000022,0x00000000,0x00040047, + 0x00000054,0x00000021,0x00000001,0x00040047,0x00000054,0x00000022,0x00000000,0x00030047, + 0x0000005c,0x00000019,0x00040047,0x0000005c,0x00000021,0x00000003,0x00040047,0x0000005c, + 0x00000022,0x00000000,0x00030047,0x000000c3,0x00000019,0x00040047,0x000000c3,0x00000021, + 0x00000004,0x00040047,0x000000c3,0x00000022,0x00000000,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000001,0x00040017,0x00000007, + 0x00000006,0x00000002,0x00040020,0x00000008,0x00000007,0x00000007,0x00040015,0x0000000a, + 0x00000020,0x00000000,0x00040017,0x0000000b,0x0000000a,0x00000003,0x00040020,0x0000000c, + 0x00000001,0x0000000b,0x0004003b,0x0000000c,0x0000000d,0x00000001,0x00040017,0x0000000e, + 0x0000000a,0x00000002,0x00030016,0x00000013,0x00000020,0x00040017,0x00000014,0x00000013, + 0x00000004,0x00040018,0x00000015,0x00000014,0x00000004,0x00040017,0x00000016,0x00000013, + 0x00000002,0x0006001e,0x00000017,0x00000015,0x00000016,0x00000007,0x00000006,0x00040020, + 0x00000018,0x00000009,0x00000017,0x0004003b,0x00000018,0x00000019,0x00000009,0x0004002b, + 0x00000006,0x0000001a,0x00000002,0x00040020,0x0000001b,0x00000009,0x00000007,0x00020014, + 0x0000001e,0x00040017,0x0000001f,0x0000001e,0x00000002,0x00040020,0x00000025,0x00000007, + 0x00000016,0x0004002b,0x00000013,0x0000002d,0x3f000000,0x00040017,0x00000032,0x00000013, + 0x00000003,0x00040020,0x00000033,0x00000007,0x00000032,0x00090019,0x00000035,0x00000013, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x0003001b,0x00000036, + 0x00000035,0x00040020,0x00000037,0x00000000,0x00000036,0x0004003b,0x00000037,0x00000038, + 0x00000000,0x0004002b,0x00000013,0x0000003b,0x00000000,0x0006002c,0x00000032,0x0000003f, + 0x0000003b,0x0000003b,0x0000003b,0x00040017,0x00000041,0x0000001e,0x00000003,0x00090019, + 0x00000044,0x00000013,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000002, + 0x00040020,0x00000045,0x00000000,0x00000044,0x0004003b,0x00000045,0x00000046,0x00000000, + 0x0004002b,0x00000013,0x0000004a,0x3f800000,0x00040020,0x00000052,0x00000007,0x00000013, + 0x0004003b,0x00000037,0x00000054,0x00000000,0x0004002b,0x0000000a,0x00000058,0x00000000, + 0x00090019,0x0000005a,0x00000013,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000003,0x00040020,0x0000005b,0x00000000,0x0000005a,0x0004003b,0x0000005b,0x0000005c, + 0x00000000,0x0004002b,0x00000006,0x0000005f,0x00000003,0x00040020,0x00000060,0x00000009, + 0x00000006,0x0004002b,0x00000006,0x00000064,0x00000000,0x0005002c,0x00000016,0x00000070, + 0x0000003b,0x0000003b,0x0004002b,0x00000006,0x00000073,0x00000001,0x00040020,0x0000007e, + 0x00000007,0x00000014,0x0004002b,0x00000013,0x00000082,0x40000000,0x0004002b,0x0000000a, + 0x00000085,0x00000001,0x00040020,0x0000008f,0x00000009,0x00000015,0x0004002b,0x0000000a, + 0x00000094,0x00000003,0x0004002b,0x00000013,0x00000097,0x358637bd,0x00040020,0x000000a5, + 0x00000009,0x00000016,0x0004002b,0x00000013,0x000000ba,0x46800000,0x0005002c,0x00000016, + 0x000000bb,0x000000ba,0x000000ba,0x00090019,0x000000c1,0x00000013,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000007,0x00040020,0x000000c2,0x00000000,0x000000c1, + 0x0004003b,0x000000c2,0x000000c3,0x00000000,0x0004002b,0x0000000a,0x000000ca,0x00000008, + 0x0006002c,0x0000000b,0x000000cb,0x000000ca,0x000000ca,0x00000085,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000008,0x00000009, + 0x00000007,0x0004003b,0x00000025,0x00000026,0x00000007,0x0004003b,0x00000025,0x0000002a, + 0x00000007,0x0004003b,0x00000033,0x00000034,0x00000007,0x0004003b,0x00000052,0x00000053, + 0x00000007,0x0004003b,0x00000052,0x00000066,0x00000007,0x0004003b,0x00000025,0x0000006f, + 0x00000007,0x0004003b,0x0000007e,0x0000007f,0x00000007,0x0004003b,0x0000007e,0x0000008e, + 0x00000007,0x0004003b,0x00000025,0x0000009b,0x00000007,0x0004003b,0x00000025,0x000000a2, + 0x00000007,0x0004003b,0x00000025,0x000000a9,0x00000007,0x0004003d,0x0000000b,0x0000000f, + 0x0000000d,0x0007004f,0x0000000e,0x00000010,0x0000000f,0x0000000f,0x00000000,0x00000001, + 0x0004007c,0x00000007,0x00000011,0x00000010,0x0003003e,0x00000009,0x00000011,0x0004003d, + 0x00000007,0x00000012,0x00000009,0x00050041,0x0000001b,0x0000001c,0x00000019,0x0000001a, + 0x0004003d,0x00000007,0x0000001d,0x0000001c,0x000500af,0x0000001f,0x00000020,0x00000012, + 0x0000001d,0x0004009a,0x0000001e,0x00000021,0x00000020,0x000300f7,0x00000023,0x00000000, + 0x000400fa,0x00000021,0x00000022,0x00000023,0x000200f8,0x00000022,0x000100fd,0x000200f8, + 0x00000023,0x00050041,0x0000001b,0x00000027,0x00000019,0x0000001a,0x0004003d,0x00000007, + 0x00000028,0x00000027,0x0004006f,0x00000016,0x00000029,0x00000028,0x0003003e,0x00000026, + 0x00000029,0x0004003d,0x00000007,0x0000002b,0x00000009,0x0004006f,0x00000016,0x0000002c, + 0x0000002b,0x00050050,0x00000016,0x0000002e,0x0000002d,0x0000002d,0x00050081,0x00000016, + 0x0000002f,0x0000002c,0x0000002e,0x0004003d,0x00000016,0x00000030,0x00000026,0x00050088, + 0x00000016,0x00000031,0x0000002f,0x00000030,0x0003003e,0x0000002a,0x00000031,0x0004003d, + 0x00000036,0x00000039,0x00000038,0x0004003d,0x00000016,0x0000003a,0x0000002a,0x00070058, + 0x00000014,0x0000003c,0x00000039,0x0000003a,0x00000002,0x0000003b,0x0008004f,0x00000032, + 0x0000003d,0x0000003c,0x0000003c,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000034, + 0x0000003d,0x0004003d,0x00000032,0x0000003e,0x00000034,0x0004003d,0x00000032,0x00000040, + 0x00000034,0x0004009c,0x00000041,0x00000042,0x00000040,0x000600a9,0x00000032,0x00000043, + 0x00000042,0x0000003f,0x0000003e,0x0003003e,0x00000034,0x00000043,0x0004003d,0x00000044, + 0x00000047,0x00000046,0x0004003d,0x00000007,0x00000048,0x00000009,0x0004003d,0x00000032, + 0x00000049,0x00000034,0x00060050,0x00000032,0x0000004b,0x0000003b,0x0000003b,0x0000003b, + 0x00060050,0x00000032,0x0000004c,0x0000004a,0x0000004a,0x0000004a,0x0008000c,0x00000032, + 0x0000004d,0x00000001,0x0000002b,0x00000049,0x0000004b,0x0000004c,0x00050051,0x00000013, + 0x0000004e,0x0000004d,0x00000000,0x00050051,0x00000013,0x0000004f,0x0000004d,0x00000001, + 0x00050051,0x00000013,0x00000050,0x0000004d,0x00000002,0x00070050,0x00000014,0x00000051, + 0x0000004e,0x0000004f,0x00000050,0x0000004a,0x00040063,0x00000047,0x00000048,0x00000051, + 0x0004003d,0x00000036,0x00000055,0x00000054,0x0004003d,0x00000016,0x00000056,0x0000002a, + 0x00070058,0x00000014,0x00000057,0x00000055,0x00000056,0x00000002,0x0000003b,0x00050051, + 0x00000013,0x00000059,0x00000057,0x00000000,0x0003003e,0x00000053,0x00000059,0x0004003d, + 0x0000005a,0x0000005d,0x0000005c,0x0004003d,0x00000007,0x0000005e,0x00000009,0x00050041, + 0x00000060,0x00000061,0x00000019,0x0000005f,0x0004003d,0x00000006,0x00000062,0x00000061, + 0x000500c7,0x00000006,0x00000063,0x00000062,0x0000001a,0x000500ab,0x0000001e,0x00000065, + 0x00000063,0x00000064,0x000300f7,0x00000068,0x00000000,0x000400fa,0x00000065,0x00000067, + 0x0000006b,0x000200f8,0x00000067,0x0004003d,0x00000013,0x00000069,0x00000053,0x00050083, + 0x00000013,0x0000006a,0x0000004a,0x00000069,0x0003003e,0x00000066,0x0000006a,0x000200f9, + 0x00000068,0x000200f8,0x0000006b,0x0004003d,0x00000013,0x0000006c,0x00000053,0x0003003e, + 0x00000066,0x0000006c,0x000200f9,0x00000068,0x000200f8,0x00000068,0x0004003d,0x00000013, + 0x0000006d,0x00000066,0x00070050,0x00000014,0x0000006e,0x0000006d,0x0000006d,0x0000006d, + 0x0000006d,0x00040063,0x0000005d,0x0000005e,0x0000006e,0x0003003e,0x0000006f,0x00000070, + 0x00050041,0x00000060,0x00000071,0x00000019,0x0000005f,0x0004003d,0x00000006,0x00000072, + 0x00000071,0x000500c7,0x00000006,0x00000074,0x00000072,0x00000073,0x000500ab,0x0000001e, + 0x00000075,0x00000074,0x00000064,0x0004003d,0x00000013,0x00000076,0x00000053,0x000500be, + 0x0000001e,0x00000077,0x00000076,0x0000003b,0x000500a7,0x0000001e,0x00000078,0x00000075, + 0x00000077,0x0004003d,0x00000013,0x00000079,0x00000053,0x000500bc,0x0000001e,0x0000007a, + 0x00000079,0x0000004a,0x000500a7,0x0000001e,0x0000007b,0x00000078,0x0000007a,0x000300f7, + 0x0000007d,0x00000000,0x000400fa,0x0000007b,0x0000007c,0x0000007d,0x000200f8,0x0000007c, + 0x00050041,0x00000052,0x00000080,0x0000002a,0x00000058,0x0004003d,0x00000013,0x00000081, + 0x00000080,0x00050085,0x00000013,0x00000083,0x00000081,0x00000082,0x00050083,0x00000013, + 0x00000084,0x00000083,0x0000004a,0x00050041,0x00000052,0x00000086,0x0000002a,0x00000085, + 0x0004003d,0x00000013,0x00000087,0x00000086,0x00050085,0x00000013,0x00000088,0x00000087, + 0x00000082,0x00050083,0x00000013,0x00000089,0x0000004a,0x00000088,0x0004003d,0x00000013, + 0x0000008a,0x00000053,0x00050085,0x00000013,0x0000008b,0x0000008a,0x00000082,0x00050083, + 0x00000013,0x0000008c,0x0000008b,0x0000004a,0x00070050,0x00000014,0x0000008d,0x00000084, + 0x00000089,0x0000008c,0x0000004a,0x0003003e,0x0000007f,0x0000008d,0x00050041,0x0000008f, + 0x00000090,0x00000019,0x00000064,0x0004003d,0x00000015,0x00000091,0x00000090,0x0004003d, + 0x00000014,0x00000092,0x0000007f,0x00050091,0x00000014,0x00000093,0x00000091,0x00000092, + 0x0003003e,0x0000008e,0x00000093,0x00050041,0x00000052,0x00000095,0x0000008e,0x00000094, + 0x0004003d,0x00000013,0x00000096,0x00000095,0x000500ba,0x0000001e,0x00000098,0x00000096, + 0x00000097,0x000300f7,0x0000009a,0x00000000,0x000400fa,0x00000098,0x00000099,0x0000009a, + 0x000200f8,0x00000099,0x0004003d,0x00000014,0x0000009c,0x0000008e,0x0007004f,0x00000016, + 0x0000009d,0x0000009c,0x0000009c,0x00000000,0x00000001,0x00050041,0x00000052,0x0000009e, + 0x0000008e,0x00000094,0x0004003d,0x00000013,0x0000009f,0x0000009e,0x00050050,0x00000016, + 0x000000a0,0x0000009f,0x0000009f,0x00050088,0x00000016,0x000000a1,0x0000009d,0x000000a0, + 0x0003003e,0x0000009b,0x000000a1,0x0004003d,0x00000014,0x000000a3,0x0000007f,0x0007004f, + 0x00000016,0x000000a4,0x000000a3,0x000000a3,0x00000000,0x00000001,0x00050041,0x000000a5, + 0x000000a6,0x00000019,0x00000073,0x0004003d,0x00000016,0x000000a7,0x000000a6,0x00050083, + 0x00000016,0x000000a8,0x000000a4,0x000000a7,0x0003003e,0x000000a2,0x000000a8,0x00050041, + 0x00000052,0x000000aa,0x0000009b,0x00000058,0x0004003d,0x00000013,0x000000ab,0x000000aa, + 0x00050041,0x00000052,0x000000ac,0x000000a2,0x00000058,0x0004003d,0x00000013,0x000000ad, + 0x000000ac,0x00050083,0x00000013,0x000000ae,0x000000ab,0x000000ad,0x00050041,0x00000052, + 0x000000af,0x000000a2,0x00000085,0x0004003d,0x00000013,0x000000b0,0x000000af,0x00050041, + 0x00000052,0x000000b1,0x0000009b,0x00000085,0x0004003d,0x00000013,0x000000b2,0x000000b1, + 0x00050083,0x00000013,0x000000b3,0x000000b0,0x000000b2,0x00050050,0x00000016,0x000000b4, + 0x000000ae,0x000000b3,0x0005008e,0x00000016,0x000000b5,0x000000b4,0x0000002d,0x0004003d, + 0x00000016,0x000000b6,0x00000026,0x00050085,0x00000016,0x000000b7,0x000000b5,0x000000b6, + 0x0003003e,0x000000a9,0x000000b7,0x0004003d,0x00000016,0x000000b8,0x000000a9,0x0006000c, + 0x00000016,0x000000b9,0x00000001,0x00000004,0x000000b8,0x000500b8,0x0000001f,0x000000bc, + 0x000000b9,0x000000bb,0x0004009b,0x0000001e,0x000000bd,0x000000bc,0x000300f7,0x000000bf, + 0x00000000,0x000400fa,0x000000bd,0x000000be,0x000000bf,0x000200f8,0x000000be,0x0004003d, + 0x00000016,0x000000c0,0x000000a9,0x0003003e,0x0000006f,0x000000c0,0x000200f9,0x000000bf, + 0x000200f8,0x000000bf,0x000200f9,0x0000009a,0x000200f8,0x0000009a,0x000200f9,0x0000007d, + 0x000200f8,0x0000007d,0x0004003d,0x000000c1,0x000000c4,0x000000c3,0x0004003d,0x00000007, + 0x000000c5,0x00000009,0x0004003d,0x00000016,0x000000c6,0x0000006f,0x00050051,0x00000013, + 0x000000c7,0x000000c6,0x00000000,0x00050051,0x00000013,0x000000c8,0x000000c6,0x00000001, + 0x00070050,0x00000014,0x000000c9,0x000000c7,0x000000c8,0x0000003b,0x0000003b,0x00040063, + 0x000000c4,0x000000c5,0x000000c9,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h b/gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h new file mode 100644 index 000000000..d03156242 --- /dev/null +++ b/gpu/vk/shaders/fsr3_prepare_inputs_comp_spv.h @@ -0,0 +1,562 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_PREPARE_INPUTS_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000028f,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000027a, + 0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001,0x00030003,0x00000002, + 0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865, + 0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168, + 0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004, + 0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365, + 0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572, + 0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005,0x0000000c,0x4c786666, + 0x28707265,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000009,0x00000078,0x00030005, + 0x0000000a,0x00000079,0x00030005,0x0000000b,0x00000074,0x00060005,0x00000010,0x53786666, + 0x72757461,0x28657461,0x003b3166,0x00030005,0x0000000f,0x00000078,0x00060005,0x00000016, + 0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000015,0x00000078,0x00060005, + 0x0000001b,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000019,0x00000078, + 0x00030005,0x0000001a,0x00000079,0x00060005,0x00000022,0x4d786666,0x76287861,0x763b3366, + 0x003b3366,0x00030005,0x00000020,0x00000078,0x00030005,0x00000021,0x00000079,0x00050005, + 0x00000027,0x646e6552,0x69537265,0x0028657a,0x000b0005,0x0000002b,0x69766544,0x6f546563, + 0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72,0x726f7463,0x00002873,0x00070005, + 0x0000002e,0x69746f4d,0x65566e6f,0x726f7463,0x6c616353,0x00002865,0x00090005,0x00000031, + 0x77656956,0x63617053,0x4d6f5465,0x72657465,0x63614673,0x28726f74,0x00000000,0x00070005, + 0x00000036,0x64616f4c,0x75706e49,0x70654474,0x76286874,0x003b3269,0x00040005,0x00000035, + 0x50785069,0x0000736f,0x00070005,0x0000003a,0x64616f4c,0x75706e49,0x6c6f4374,0x7628726f, + 0x003b3269,0x00040005,0x00000039,0x50785069,0x0000736f,0x00090005,0x0000003e,0x64616f4c, + 0x75706e49,0x746f4d74,0x566e6f69,0x6f746365,0x69762872,0x00003b32,0x00090005,0x0000003d, + 0x44785069,0x74616c69,0x6f4d6465,0x6e6f6974,0x74636556,0x6f50726f,0x00000073,0x00090005, + 0x00000043,0x726f7453,0x72614665,0x73656874,0x70654474,0x76286874,0x663b3269,0x00003b31, + 0x00040005,0x00000041,0x50785069,0x0000736f,0x00040005,0x00000042,0x70654466,0x00006874, + 0x00090005,0x00000047,0x726f7453,0x72754365,0x746e6572,0x616d754c,0x32697628,0x3b31663b, + 0x00000000,0x00040005,0x00000045,0x50785069,0x0000736f,0x00040005,0x00000046,0x6d754c66, + 0x00000061,0x000a0005,0x0000004b,0x726f7453,0x63655265,0x74736e6f,0x74637572,0x65446465, + 0x28687470,0x3b326976,0x003b3166,0x00050005,0x00000049,0x53785069,0x6c706d61,0x00000065, + 0x00040005,0x0000004a,0x70654466,0x00006874,0x00090005,0x0000004f,0x726f7453,0x6c694465, + 0x64657461,0x74706544,0x69762868,0x31663b32,0x0000003b,0x00040005,0x0000004d,0x50785069, + 0x0000736f,0x00040005,0x0000004e,0x70654466,0x00006874,0x000b0005,0x00000054,0x726f7453, + 0x6c694465,0x64657461,0x69746f4d,0x65566e6f,0x726f7463,0x32697628,0x3266763b,0x0000003b, + 0x00040005,0x00000052,0x50785069,0x0000736f,0x00060005,0x00000053,0x746f4d66,0x566e6f69, + 0x6f746365,0x00000072,0x000b0005,0x00000057,0x6f636552,0x7274736e,0x65746375,0x70654464, + 0x764d6874,0x68547850,0x68736572,0x28646c6f,0x003b3166,0x00080005,0x00000056,0x61654e66, + 0x74736572,0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00070005,0x0000005b,0x34746547, + 0x6c65564b,0x7469636f,0x66762879,0x00003b32,0x00060005,0x0000005a,0x746f4d66,0x566e6f69, + 0x6f746365,0x00000072,0x00060005,0x0000005f,0x54424752,0x6d754c6f,0x66762861,0x00003b33, + 0x00050005,0x0000005e,0x6e694c66,0x52726165,0x00006267,0x00070005,0x00000065,0x6e4f7349, + 0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x00000063,0x00736f70,0x00040005, + 0x00000064,0x657a6973,0x00000000,0x00080005,0x00000068,0x56746547,0x53776569,0x65636170, + 0x74706544,0x31662868,0x0000003b,0x00060005,0x00000067,0x76654466,0x44656369,0x68747065, + 0x00000000,0x000a0005,0x0000006b,0x56746547,0x53776569,0x65636170,0x74706544,0x4d6e4968, + 0x72657465,0x31662873,0x0000003b,0x00060005,0x0000006a,0x76654466,0x44656369,0x68747065, + 0x00000000,0x00080005,0x00000071,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144, + 0x00000000,0x00060006,0x00000071,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006, + 0x00000071,0x00000001,0x69655766,0x73746867,0x00000000,0x00060006,0x00000071,0x00000002, + 0x73614269,0x736f5065,0x00000000,0x000b0005,0x00000075,0x42746547,0x6e696c69,0x53726165, + 0x6c706d61,0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x00000073, + 0x00765566,0x00040005,0x00000074,0x7a695369,0x00000065,0x000b0005,0x0000007b,0x6f636552, + 0x7274736e,0x50746375,0x44766572,0x68747065,0x32697628,0x3b31663b,0x3b326676,0x00000000, + 0x00040005,0x00000078,0x50785069,0x0000736f,0x00040005,0x00000079,0x70654466,0x00006874, + 0x00060005,0x0000007a,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00060005,0x0000007d, + 0x74706544,0x74784568,0x73746e65,0x00000000,0x00060006,0x0000007d,0x00000000,0x61654e66, + 0x74736572,0x00000000,0x00070006,0x0000007d,0x00000001,0x61654e66,0x74736572,0x726f6f43, + 0x00000064,0x00060006,0x0000007d,0x00000002,0x72614666,0x73656874,0x00000074,0x00080005, + 0x00000080,0x646e6946,0x74706544,0x74784568,0x73746e65,0x32697628,0x0000003b,0x00040005, + 0x0000007f,0x50785069,0x0000736f,0x00100005,0x00000085,0x616c6944,0x6f4d6574,0x6e6f6974, + 0x74636556,0x7628726f,0x733b3269,0x63757274,0x65442d74,0x45687470,0x6e657478,0x662d7374, + 0x69762d31,0x31662d32,0x00003b31,0x00040005,0x00000083,0x50785069,0x0000736f,0x00060005, + 0x00000084,0x74706564,0x74784568,0x73746e65,0x00000000,0x00090005,0x00000088,0x43746547, + 0x65727275,0x7246746e,0x4c656d61,0x28616d75,0x3b326976,0x00000000,0x00040005,0x00000087, + 0x50785069,0x0000736f,0x00070005,0x0000008c,0x70657250,0x49657261,0x7475706e,0x69762873, + 0x00003b32,0x00040005,0x0000008b,0x50785069,0x0000736f,0x00070005,0x000000a8,0x53466263, + 0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x000000a8,0x00000000,0x6e655269, + 0x53726564,0x00657a69,0x000a0006,0x000000a8,0x00000001,0x65725069,0x756f6976,0x61724673, + 0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x000000a8,0x00000002,0x73705569, + 0x656c6163,0x657a6953,0x00000000,0x000a0006,0x000000a8,0x00000003,0x65725069,0x756f6976, + 0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x000000a8,0x00000004, + 0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x000000a8,0x00000005,0x78614d69, + 0x63737055,0x53656c61,0x00657a69,0x00080006,0x000000a8,0x00000006,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00050006,0x000000a8,0x00000007,0x74694a66,0x00726574, + 0x00090006,0x000000a8,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474, + 0x00000000,0x00080006,0x000000a8,0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372, + 0x0000656c,0x00080006,0x000000a8,0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463, + 0x00000000,0x000b0006,0x000000a8,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72, + 0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x000000a8,0x0000000c,0x6e615466, + 0x666c6148,0x00564f46,0x00090006,0x000000a8,0x0000000d,0x74694a66,0x53726574,0x65757165, + 0x4c65636e,0x74676e65,0x00000068,0x00060006,0x000000a8,0x0000000e,0x6c654466,0x69546174, + 0x0000656d,0x00080006,0x000000a8,0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f, + 0x00000065,0x000a0006,0x000000a8,0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d, + 0x61467372,0x726f7463,0x00000000,0x00060006,0x000000a8,0x00000011,0x61724666,0x6e49656d, + 0x00786564,0x00070006,0x000000a8,0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74, + 0x00080006,0x000000a8,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c, + 0x00080006,0x000000a8,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61, + 0x000a0006,0x000000a8,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465, + 0x61724672,0x0000656d,0x000b0006,0x000000a8,0x00000016,0x6e694d66,0x6f736944,0x756c6363, + 0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x000000aa,0x53466263, + 0x70553352,0x6c616373,0x00007265,0x00060005,0x000000c5,0x6e695f72,0x5f747570,0x74706564, + 0x00000068,0x00080005,0x000000cd,0x6e695f72,0x5f747570,0x6f6c6f63,0x696a5f72,0x72657474, + 0x00006465,0x00070005,0x000000d4,0x63725366,0x69746f4d,0x65566e6f,0x726f7463,0x00000000, + 0x00080005,0x000000d5,0x6e695f72,0x5f747570,0x69746f6d,0x765f6e6f,0x6f746365,0x00007372, + 0x00060005,0x000000da,0x4d765566,0x6f69746f,0x6365566e,0x00726f74,0x00070005,0x000000e3, + 0x665f7772,0x68747261,0x5f747365,0x74706564,0x00000068,0x00060005,0x000000e8,0x635f7772, + 0x65727275,0x6c5f746e,0x00616d75,0x00040005,0x000000ee,0x70654475,0x00006874,0x000c0005, + 0x000000f3,0x725f7772,0x6e6f6365,0x75727473,0x64657463,0x6572705f,0x756f6976,0x656e5f73, + 0x73657261,0x65645f74,0x00687470,0x00070005,0x000000fc,0x645f7772,0x74616c69,0x645f6465, + 0x68747065,0x00000000,0x00090005,0x00000103,0x645f7772,0x74616c69,0x6d5f6465,0x6f69746f, + 0x65765f6e,0x726f7463,0x00000073,0x00040005,0x0000010f,0x61726170,0x0000006d,0x00040005, + 0x00000111,0x61726170,0x0000006d,0x00040005,0x00000112,0x61726170,0x0000006d,0x00040005, + 0x00000113,0x61726170,0x0000006d,0x00070005,0x00000132,0x76654466,0x54656369,0x6569566f, + 0x70654477,0x00006874,0x00040005,0x0000013d,0x61726170,0x0000006d,0x00050005,0x00000144, + 0x53785066,0x6c706d61,0x00000065,0x00040005,0x0000014d,0x61746164,0x00000000,0x00040005, + 0x00000153,0x46785066,0x00636172,0x00040005,0x00000154,0x61726170,0x0000006d,0x00080005, + 0x00000180,0x61654e66,0x74736572,0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00040005, + 0x00000181,0x61726170,0x0000006d,0x00040005,0x00000185,0x61726170,0x0000006d,0x00040005, + 0x00000186,0x61726170,0x0000006d,0x000a0005,0x00000188,0x63655266,0x74736e6f,0x74637572, + 0x65446465,0x764d7470,0x65726854,0x6c6f6873,0x00000064,0x00040005,0x00000189,0x61726170, + 0x0000006d,0x00040005,0x0000018c,0x61726170,0x0000006d,0x00030005,0x00000194,0x00765566, + 0x00060005,0x0000019c,0x70655266,0x656a6f72,0x64657463,0x00007655,0x00060005,0x000001a0, + 0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000001a2,0x61726170,0x0000006d, + 0x00040005,0x000001a4,0x61726170,0x0000006d,0x00060005,0x000001a7,0x6d615369,0x49656c70, + 0x7865646e,0x00000000,0x00040005,0x000001b0,0x66664f69,0x00746573,0x00040005,0x000001b4, + 0x69655766,0x00746867,0x00050005,0x000001bd,0x6f745369,0x6f506572,0x00000073,0x00040005, + 0x000001c3,0x61726170,0x0000006d,0x00040005,0x000001c5,0x61726170,0x0000006d,0x00040005, + 0x000001c9,0x61726170,0x0000006d,0x00040005,0x000001cb,0x61726170,0x0000006d,0x00060005, + 0x000001d0,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x000001d8,0x736f5069, + 0x00000000,0x00050005,0x000001e5,0x65646e69,0x6c626178,0x00000065,0x00040005,0x000001eb, + 0x74706564,0x00000068,0x00040005,0x000001ed,0x61726170,0x0000006d,0x00040005,0x000001f4, + 0x65747865,0x0073746e,0x00040005,0x00000204,0x736f5069,0x00000000,0x00050005,0x00000207, + 0x65646e69,0x6c626178,0x00000065,0x00040005,0x0000020c,0x61726170,0x0000006d,0x00040005, + 0x0000020e,0x61726170,0x0000006d,0x00050005,0x00000212,0x44644e66,0x68747065,0x00000000, + 0x00040005,0x0000021c,0x61726170,0x0000006d,0x00040005,0x0000021f,0x61726170,0x0000006d, + 0x00050005,0x0000022c,0x6d615369,0x50656c70,0x0000736f,0x00070005,0x0000022e,0x746f4d69, + 0x566e6f69,0x6f746365,0x736f5072,0x00000000,0x00080005,0x00000230,0x6c694466,0x64657461, + 0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005,0x00000231,0x61726170,0x0000006d, + 0x00040005,0x00000237,0x62675266,0x00000000,0x00040005,0x00000239,0x61726170,0x0000006d, + 0x00040005,0x0000023c,0x61726170,0x0000006d,0x00040005,0x0000023d,0x61726170,0x0000006d, + 0x00040005,0x0000023f,0x6d754c66,0x00000061,0x00040005,0x00000240,0x61726170,0x0000006d, + 0x00060005,0x00000246,0x74706564,0x74784568,0x73746e65,0x00000000,0x00040005,0x00000247, + 0x61726170,0x0000006d,0x00080005,0x0000024a,0x6c694466,0x64657461,0x69746f4d,0x65566e6f, + 0x726f7463,0x00000000,0x00040005,0x0000024c,0x61726170,0x0000006d,0x00040005,0x0000024f, + 0x61726170,0x0000006d,0x00040005,0x00000251,0x61726170,0x0000006d,0x00040005,0x00000254, + 0x61726170,0x0000006d,0x00040005,0x00000257,0x61726170,0x0000006d,0x00040005,0x00000259, + 0x61726170,0x0000006d,0x00040005,0x0000025c,0x61726170,0x0000006d,0x00040005,0x0000025e, + 0x61726170,0x0000006d,0x00080005,0x00000262,0x72614666,0x73656874,0x70654474,0x6e496874, + 0x6574654d,0x00007372,0x00040005,0x00000263,0x61726170,0x0000006d,0x00040005,0x00000267, + 0x61726170,0x0000006d,0x00040005,0x00000268,0x61726170,0x0000006d,0x00040005,0x0000026a, + 0x61726170,0x0000006d,0x00040005,0x0000026c,0x61726170,0x0000006d,0x00040005,0x0000026f, + 0x6d754c66,0x00000061,0x00040005,0x00000270,0x61726170,0x0000006d,0x00040005,0x00000273, + 0x61726170,0x0000006d,0x00040005,0x00000275,0x61726170,0x0000006d,0x00080005,0x0000027a, + 0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x0000027e, + 0x61726170,0x0000006d,0x00060005,0x00000284,0x6f505f73,0x43746e69,0x706d616c,0x00000000, + 0x00060005,0x00000285,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00030047,0x000000a8, + 0x00000002,0x00050048,0x000000a8,0x00000000,0x00000023,0x00000000,0x00050048,0x000000a8, + 0x00000001,0x00000023,0x00000008,0x00050048,0x000000a8,0x00000002,0x00000023,0x00000010, + 0x00050048,0x000000a8,0x00000003,0x00000023,0x00000018,0x00050048,0x000000a8,0x00000004, + 0x00000023,0x00000020,0x00050048,0x000000a8,0x00000005,0x00000023,0x00000028,0x00050048, + 0x000000a8,0x00000006,0x00000023,0x00000030,0x00050048,0x000000a8,0x00000007,0x00000023, + 0x00000040,0x00050048,0x000000a8,0x00000008,0x00000023,0x00000048,0x00050048,0x000000a8, + 0x00000009,0x00000023,0x00000050,0x00050048,0x000000a8,0x0000000a,0x00000023,0x00000058, + 0x00050048,0x000000a8,0x0000000b,0x00000023,0x00000060,0x00050048,0x000000a8,0x0000000c, + 0x00000023,0x00000068,0x00050048,0x000000a8,0x0000000d,0x00000023,0x0000006c,0x00050048, + 0x000000a8,0x0000000e,0x00000023,0x00000070,0x00050048,0x000000a8,0x0000000f,0x00000023, + 0x00000074,0x00050048,0x000000a8,0x00000010,0x00000023,0x00000078,0x00050048,0x000000a8, + 0x00000011,0x00000023,0x0000007c,0x00050048,0x000000a8,0x00000012,0x00000023,0x00000080, + 0x00050048,0x000000a8,0x00000013,0x00000023,0x00000084,0x00050048,0x000000a8,0x00000014, + 0x00000023,0x00000088,0x00050048,0x000000a8,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x000000a8,0x00000016,0x00000023,0x00000090,0x00040047,0x000000aa,0x00000021,0x00000008, + 0x00040047,0x000000aa,0x00000022,0x00000000,0x00040047,0x000000c5,0x00000021,0x00000001, + 0x00040047,0x000000c5,0x00000022,0x00000000,0x00040047,0x000000cd,0x00000021,0x00000002, + 0x00040047,0x000000cd,0x00000022,0x00000000,0x00040047,0x000000d5,0x00000021,0x00000000, + 0x00040047,0x000000d5,0x00000022,0x00000000,0x00040047,0x000000e3,0x00000021,0x00000006, + 0x00040047,0x000000e3,0x00000022,0x00000000,0x00040047,0x000000e8,0x00000021,0x00000007, + 0x00040047,0x000000e8,0x00000022,0x00000000,0x00040047,0x000000f3,0x00000021,0x00000005, + 0x00040047,0x000000f3,0x00000022,0x00000000,0x00030047,0x000000fc,0x00000019,0x00040047, + 0x000000fc,0x00000021,0x00000004,0x00040047,0x000000fc,0x00000022,0x00000000,0x00030047, + 0x00000103,0x00000019,0x00040047,0x00000103,0x00000021,0x00000003,0x00040047,0x00000103, + 0x00000022,0x00000000,0x00040047,0x0000027a,0x0000000b,0x0000001c,0x00040047,0x00000284, + 0x00000021,0x000003e8,0x00040047,0x00000284,0x00000022,0x00000000,0x00040047,0x00000285, + 0x00000021,0x000003e9,0x00040047,0x00000285,0x00000022,0x00000000,0x00040047,0x0000028e, + 0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008, + 0x00000006,0x00000007,0x00000007,0x00000007,0x00040021,0x0000000e,0x00000006,0x00000007, + 0x00040017,0x00000012,0x00000006,0x00000002,0x00040020,0x00000013,0x00000007,0x00000012, + 0x00040021,0x00000014,0x00000012,0x00000013,0x00050021,0x00000018,0x00000006,0x00000007, + 0x00000007,0x00040017,0x0000001d,0x00000006,0x00000003,0x00040020,0x0000001e,0x00000007, + 0x0000001d,0x00050021,0x0000001f,0x0000001d,0x0000001e,0x0000001e,0x00040015,0x00000024, + 0x00000020,0x00000001,0x00040017,0x00000025,0x00000024,0x00000002,0x00030021,0x00000026, + 0x00000025,0x00040017,0x00000029,0x00000006,0x00000004,0x00030021,0x0000002a,0x00000029, + 0x00030021,0x0000002d,0x00000012,0x00030021,0x00000030,0x00000006,0x00040020,0x00000033, + 0x00000007,0x00000025,0x00040021,0x00000034,0x00000006,0x00000033,0x00040021,0x00000038, + 0x0000001d,0x00000033,0x00040021,0x0000003c,0x00000012,0x00000033,0x00050021,0x00000040, + 0x00000002,0x00000033,0x00000007,0x00050021,0x00000051,0x00000002,0x00000033,0x00000013, + 0x00040021,0x00000059,0x00000006,0x00000013,0x00040021,0x0000005d,0x00000006,0x0000001e, + 0x00020014,0x00000061,0x00050021,0x00000062,0x00000061,0x00000033,0x00000033,0x00040015, + 0x0000006d,0x00000020,0x00000000,0x0004002b,0x0000006d,0x0000006e,0x00000004,0x0004001c, + 0x0000006f,0x00000025,0x0000006e,0x0004001c,0x00000070,0x00000006,0x0000006e,0x0005001e, + 0x00000071,0x0000006f,0x00000070,0x00000025,0x00050021,0x00000072,0x00000071,0x00000013, + 0x00000033,0x00060021,0x00000077,0x00000002,0x00000033,0x00000007,0x00000013,0x0005001e, + 0x0000007d,0x00000006,0x00000025,0x00000006,0x00040021,0x0000007e,0x0000007d,0x00000033, + 0x00050021,0x00000082,0x00000012,0x00000033,0x0000007d,0x00040021,0x0000008a,0x00000002, + 0x00000033,0x0004002b,0x00000006,0x00000095,0x00000000,0x0004002b,0x00000006,0x00000096, + 0x3f800000,0x0019001e,0x000000a8,0x00000025,0x00000025,0x00000025,0x00000025,0x00000025, + 0x00000025,0x00000029,0x00000012,0x00000012,0x00000012,0x00000012,0x00000012,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00040020,0x000000a9,0x00000002,0x000000a8,0x0004003b,0x000000a9, + 0x000000aa,0x00000002,0x0004002b,0x00000024,0x000000ab,0x00000000,0x00040020,0x000000ac, + 0x00000002,0x00000025,0x0004002b,0x00000024,0x000000b1,0x00000006,0x00040020,0x000000b2, + 0x00000002,0x00000029,0x0004002b,0x00000024,0x000000b7,0x00000009,0x00040020,0x000000b8, + 0x00000002,0x00000012,0x0004002b,0x00000024,0x000000bd,0x00000010,0x00040020,0x000000be, + 0x00000002,0x00000006,0x00090019,0x000000c3,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000001,0x00000000,0x00040020,0x000000c4,0x00000000,0x000000c3,0x0004003b, + 0x000000c4,0x000000c5,0x00000000,0x0004002b,0x0000006d,0x000000c9,0x00000000,0x0004003b, + 0x000000c4,0x000000cd,0x00000000,0x0004003b,0x000000c4,0x000000d5,0x00000000,0x00090019, + 0x000000e1,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002,0x00000009, + 0x00040020,0x000000e2,0x00000000,0x000000e1,0x0004003b,0x000000e2,0x000000e3,0x00000000, + 0x0004003b,0x000000e2,0x000000e8,0x00000000,0x00040020,0x000000ed,0x00000007,0x0000006d, + 0x00090019,0x000000f1,0x0000006d,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000021,0x00040020,0x000000f2,0x00000000,0x000000f1,0x0004003b,0x000000f2,0x000000f3, + 0x00000000,0x00040020,0x000000f6,0x0000000b,0x0000006d,0x0004002b,0x0000006d,0x000000f8, + 0x00000001,0x00090019,0x000000fa,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000003,0x00040020,0x000000fb,0x00000000,0x000000fa,0x0004003b,0x000000fb, + 0x000000fc,0x00000000,0x00090019,0x00000101,0x00000006,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000007,0x00040020,0x00000102,0x00000000,0x00000101,0x0004003b, + 0x00000102,0x00000103,0x00000000,0x0004002b,0x00000006,0x0000010a,0x3e800000,0x0004002b, + 0x00000006,0x0000010b,0x3f400000,0x0004002b,0x00000006,0x0000010d,0x42c80000,0x0004002b, + 0x00000006,0x00000118,0x45700000,0x0004002b,0x00000006,0x00000119,0x45070000,0x0005002c, + 0x00000012,0x0000011a,0x00000118,0x00000119,0x0004002b,0x00000006,0x00000120,0x3e59b3d0, + 0x0004002b,0x00000006,0x00000121,0x3f371759,0x0004002b,0x00000006,0x00000122,0x3d93dd98, + 0x0006002c,0x0000001d,0x00000123,0x00000120,0x00000121,0x00000122,0x00040017,0x00000128, + 0x0000006d,0x00000002,0x00040017,0x0000012c,0x00000061,0x00000002,0x00040020,0x00000131, + 0x00000007,0x00000029,0x0004002b,0x00000006,0x00000149,0x3f000000,0x0005002c,0x00000012, + 0x0000014a,0x00000149,0x00000149,0x00040020,0x0000014c,0x00000007,0x00000071,0x0004002b, + 0x00000024,0x0000014e,0x00000002,0x0005002c,0x00000025,0x00000157,0x000000ab,0x000000ab, + 0x0004002b,0x00000024,0x00000159,0x00000001,0x0005002c,0x00000025,0x0000015a,0x00000159, + 0x000000ab,0x0005002c,0x00000025,0x0000015c,0x000000ab,0x00000159,0x0004002b,0x00000024, + 0x0000015e,0x00000003,0x0005002c,0x00000025,0x0000015f,0x00000159,0x00000159,0x0004002b, + 0x00000006,0x00000184,0x477fe000,0x00040020,0x000001a6,0x00000007,0x00000024,0x0004002b, + 0x00000024,0x000001ae,0x00000004,0x0004002b,0x00000006,0x000001b9,0x3a1fe868,0x0004002b, + 0x0000006d,0x000001da,0x00000009,0x0004001c,0x000001db,0x00000025,0x000001da,0x0004002b, + 0x00000024,0x000001dc,0xffffffff,0x0005002c,0x00000025,0x000001dd,0x000000ab,0x000001dc, + 0x0005002c,0x00000025,0x000001de,0x000001dc,0x000000ab,0x0005002c,0x00000025,0x000001df, + 0x000001dc,0x00000159,0x0005002c,0x00000025,0x000001e0,0x000001dc,0x000001dc,0x0005002c, + 0x00000025,0x000001e1,0x00000159,0x000001dc,0x000c002c,0x000001db,0x000001e2,0x00000157, + 0x0000015a,0x0000015c,0x000001dd,0x000001de,0x000001df,0x0000015f,0x000001e0,0x000001e1, + 0x00040020,0x000001e4,0x00000007,0x000001db,0x0004001c,0x000001e9,0x00000006,0x000001da, + 0x00040020,0x000001ea,0x00000007,0x000001e9,0x00040020,0x000001f3,0x00000007,0x0000007d, + 0x0006002c,0x0000001d,0x00000238,0x00000095,0x00000095,0x00000095,0x00040017,0x00000278, + 0x0000006d,0x00000003,0x00040020,0x00000279,0x00000001,0x00000278,0x0004003b,0x00000279, + 0x0000027a,0x00000001,0x0004002b,0x00000006,0x00000280,0x387fda40,0x0004002b,0x00000006, + 0x00000281,0x37801002,0x0002001a,0x00000282,0x00040020,0x00000283,0x00000000,0x00000282, + 0x0004003b,0x00000283,0x00000284,0x00000000,0x0004003b,0x00000283,0x00000285,0x00000000, + 0x0004002b,0x00000006,0x00000286,0x7f7fffff,0x0004002b,0x00000006,0x00000287,0x00800000, + 0x0004002b,0x00000006,0x00000288,0x3d800000,0x0004002b,0x00000006,0x00000289,0x3d3d70a4, + 0x0004002b,0x00000006,0x0000028a,0x3e400000,0x0004002b,0x00000006,0x0000028b,0x40000000, + 0x0004002b,0x00000006,0x0000028c,0x461c4000,0x0004002b,0x0000006d,0x0000028d,0x00000008, + 0x0006002c,0x00000278,0x0000028e,0x0000028d,0x0000028d,0x000000f8,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000033,0x0000027e, + 0x00000007,0x0004003d,0x00000278,0x0000027b,0x0000027a,0x0007004f,0x00000128,0x0000027c, + 0x0000027b,0x0000027b,0x00000000,0x00000001,0x0004007c,0x00000025,0x0000027d,0x0000027c, + 0x0003003e,0x0000027e,0x0000027d,0x00050039,0x00000002,0x0000027f,0x0000008c,0x0000027e, + 0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037, + 0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b, + 0x000200f8,0x0000000d,0x0004003d,0x00000006,0x0000008e,0x00000009,0x0004003d,0x00000006, + 0x0000008f,0x0000000a,0x0004003d,0x00000006,0x00000090,0x0000000b,0x0008000c,0x00000006, + 0x00000091,0x00000001,0x0000002e,0x0000008e,0x0000008f,0x00000090,0x000200fe,0x00000091, + 0x00010038,0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x00000007, + 0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000006,0x00000094,0x0000000f,0x0008000c, + 0x00000006,0x00000097,0x00000001,0x0000002b,0x00000094,0x00000095,0x00000096,0x000200fe, + 0x00000097,0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037, + 0x00000013,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000012,0x0000009a,0x00000015, + 0x0006000c,0x00000012,0x0000009b,0x00000001,0x0000000a,0x0000009a,0x000200fe,0x0000009b, + 0x00010038,0x00050036,0x00000006,0x0000001b,0x00000000,0x00000018,0x00030037,0x00000007, + 0x00000019,0x00030037,0x00000007,0x0000001a,0x000200f8,0x0000001c,0x0004003d,0x00000006, + 0x0000009e,0x00000019,0x0004003d,0x00000006,0x0000009f,0x0000001a,0x0007000c,0x00000006, + 0x000000a0,0x00000001,0x00000025,0x0000009e,0x0000009f,0x000200fe,0x000000a0,0x00010038, + 0x00050036,0x0000001d,0x00000022,0x00000000,0x0000001f,0x00030037,0x0000001e,0x00000020, + 0x00030037,0x0000001e,0x00000021,0x000200f8,0x00000023,0x0004003d,0x0000001d,0x000000a3, + 0x00000020,0x0004003d,0x0000001d,0x000000a4,0x00000021,0x0007000c,0x0000001d,0x000000a5, + 0x00000001,0x00000028,0x000000a3,0x000000a4,0x000200fe,0x000000a5,0x00010038,0x00050036, + 0x00000025,0x00000027,0x00000000,0x00000026,0x000200f8,0x00000028,0x00050041,0x000000ac, + 0x000000ad,0x000000aa,0x000000ab,0x0004003d,0x00000025,0x000000ae,0x000000ad,0x000200fe, + 0x000000ae,0x00010038,0x00050036,0x00000029,0x0000002b,0x00000000,0x0000002a,0x000200f8, + 0x0000002c,0x00050041,0x000000b2,0x000000b3,0x000000aa,0x000000b1,0x0004003d,0x00000029, + 0x000000b4,0x000000b3,0x000200fe,0x000000b4,0x00010038,0x00050036,0x00000012,0x0000002e, + 0x00000000,0x0000002d,0x000200f8,0x0000002f,0x00050041,0x000000b8,0x000000b9,0x000000aa, + 0x000000b7,0x0004003d,0x00000012,0x000000ba,0x000000b9,0x000200fe,0x000000ba,0x00010038, + 0x00050036,0x00000006,0x00000031,0x00000000,0x00000030,0x000200f8,0x00000032,0x00050041, + 0x000000be,0x000000bf,0x000000aa,0x000000bd,0x0004003d,0x00000006,0x000000c0,0x000000bf, + 0x000200fe,0x000000c0,0x00010038,0x00050036,0x00000006,0x00000036,0x00000000,0x00000034, + 0x00030037,0x00000033,0x00000035,0x000200f8,0x00000037,0x0004003d,0x000000c3,0x000000c6, + 0x000000c5,0x0004003d,0x00000025,0x000000c7,0x00000035,0x0007005f,0x00000029,0x000000c8, + 0x000000c6,0x000000c7,0x00000002,0x000000ab,0x00050051,0x00000006,0x000000ca,0x000000c8, + 0x00000000,0x000200fe,0x000000ca,0x00010038,0x00050036,0x0000001d,0x0000003a,0x00000000, + 0x00000038,0x00030037,0x00000033,0x00000039,0x000200f8,0x0000003b,0x0004003d,0x000000c3, + 0x000000ce,0x000000cd,0x0004003d,0x00000025,0x000000cf,0x00000039,0x0007005f,0x00000029, + 0x000000d0,0x000000ce,0x000000cf,0x00000002,0x000000ab,0x0008004f,0x0000001d,0x000000d1, + 0x000000d0,0x000000d0,0x00000000,0x00000001,0x00000002,0x000200fe,0x000000d1,0x00010038, + 0x00050036,0x00000012,0x0000003e,0x00000000,0x0000003c,0x00030037,0x00000033,0x0000003d, + 0x000200f8,0x0000003f,0x0004003b,0x00000013,0x000000d4,0x00000007,0x0004003b,0x00000013, + 0x000000da,0x00000007,0x0004003d,0x000000c3,0x000000d6,0x000000d5,0x0004003d,0x00000025, + 0x000000d7,0x0000003d,0x0007005f,0x00000029,0x000000d8,0x000000d6,0x000000d7,0x00000002, + 0x000000ab,0x0007004f,0x00000012,0x000000d9,0x000000d8,0x000000d8,0x00000000,0x00000001, + 0x0003003e,0x000000d4,0x000000d9,0x0004003d,0x00000012,0x000000db,0x000000d4,0x00040039, + 0x00000012,0x000000dc,0x0000002e,0x00050085,0x00000012,0x000000dd,0x000000db,0x000000dc, + 0x0003003e,0x000000da,0x000000dd,0x0004003d,0x00000012,0x000000de,0x000000da,0x000200fe, + 0x000000de,0x00010038,0x00050036,0x00000002,0x00000043,0x00000000,0x00000040,0x00030037, + 0x00000033,0x00000041,0x00030037,0x00000007,0x00000042,0x000200f8,0x00000044,0x0004003d, + 0x000000e1,0x000000e4,0x000000e3,0x0004003d,0x00000025,0x000000e5,0x00000041,0x0004003d, + 0x00000006,0x000000e6,0x00000042,0x00070050,0x00000029,0x000000e7,0x000000e6,0x00000095, + 0x00000095,0x00000095,0x00040063,0x000000e4,0x000000e5,0x000000e7,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000047,0x00000000,0x00000040,0x00030037,0x00000033,0x00000045, + 0x00030037,0x00000007,0x00000046,0x000200f8,0x00000048,0x0004003d,0x000000e1,0x000000e9, + 0x000000e8,0x0004003d,0x00000025,0x000000ea,0x00000045,0x0004003d,0x00000006,0x000000eb, + 0x00000046,0x00070050,0x00000029,0x000000ec,0x000000eb,0x00000095,0x00000095,0x00000095, + 0x00040063,0x000000e9,0x000000ea,0x000000ec,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x0000004b,0x00000000,0x00000040,0x00030037,0x00000033,0x00000049,0x00030037,0x00000007, + 0x0000004a,0x000200f8,0x0000004c,0x0004003b,0x000000ed,0x000000ee,0x00000007,0x0004003d, + 0x00000006,0x000000ef,0x0000004a,0x0004007c,0x0000006d,0x000000f0,0x000000ef,0x0003003e, + 0x000000ee,0x000000f0,0x0004003d,0x00000025,0x000000f4,0x00000049,0x0004003d,0x0000006d, + 0x000000f5,0x000000ee,0x0006003c,0x000000f6,0x000000f7,0x000000f3,0x000000f4,0x000000c9, + 0x000700ef,0x0000006d,0x000000f9,0x000000f7,0x000000f8,0x000000c9,0x000000f5,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x0000004f,0x00000000,0x00000040,0x00030037,0x00000033, + 0x0000004d,0x00030037,0x00000007,0x0000004e,0x000200f8,0x00000050,0x0004003d,0x000000fa, + 0x000000fd,0x000000fc,0x0004003d,0x00000025,0x000000fe,0x0000004d,0x0004003d,0x00000006, + 0x000000ff,0x0000004e,0x00070050,0x00000029,0x00000100,0x000000ff,0x00000095,0x00000095, + 0x00000095,0x00040063,0x000000fd,0x000000fe,0x00000100,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000054,0x00000000,0x00000051,0x00030037,0x00000033,0x00000052,0x00030037, + 0x00000013,0x00000053,0x000200f8,0x00000055,0x0004003d,0x00000101,0x00000104,0x00000103, + 0x0004003d,0x00000025,0x00000105,0x00000052,0x0004003d,0x00000012,0x00000106,0x00000053, + 0x00050051,0x00000006,0x00000107,0x00000106,0x00000000,0x00050051,0x00000006,0x00000108, + 0x00000106,0x00000001,0x00070050,0x00000029,0x00000109,0x00000107,0x00000108,0x00000095, + 0x00000095,0x00040063,0x00000104,0x00000105,0x00000109,0x000100fd,0x00010038,0x00050036, + 0x00000006,0x00000057,0x00000000,0x0000000e,0x00030037,0x00000007,0x00000056,0x000200f8, + 0x00000058,0x0004003b,0x00000007,0x0000010f,0x00000007,0x0004003b,0x00000007,0x00000111, + 0x00000007,0x0004003b,0x00000007,0x00000112,0x00000007,0x0004003b,0x00000007,0x00000113, + 0x00000007,0x0004003d,0x00000006,0x0000010c,0x00000056,0x00050088,0x00000006,0x0000010e, + 0x0000010c,0x0000010d,0x0003003e,0x0000010f,0x0000010e,0x00050039,0x00000006,0x00000110, + 0x00000010,0x0000010f,0x0003003e,0x00000111,0x0000010a,0x0003003e,0x00000112,0x0000010b, + 0x0003003e,0x00000113,0x00000110,0x00070039,0x00000006,0x00000114,0x0000000c,0x00000111, + 0x00000112,0x00000113,0x000200fe,0x00000114,0x00010038,0x00050036,0x00000006,0x0000005b, + 0x00000000,0x00000059,0x00030037,0x00000013,0x0000005a,0x000200f8,0x0000005c,0x0004003d, + 0x00000012,0x00000117,0x0000005a,0x00050085,0x00000012,0x0000011b,0x00000117,0x0000011a, + 0x0006000c,0x00000006,0x0000011c,0x00000001,0x00000042,0x0000011b,0x000200fe,0x0000011c, + 0x00010038,0x00050036,0x00000006,0x0000005f,0x00000000,0x0000005d,0x00030037,0x0000001e, + 0x0000005e,0x000200f8,0x00000060,0x0004003d,0x0000001d,0x0000011f,0x0000005e,0x00050094, + 0x00000006,0x00000124,0x0000011f,0x00000123,0x000200fe,0x00000124,0x00010038,0x00050036, + 0x00000061,0x00000065,0x00000000,0x00000062,0x00030037,0x00000033,0x00000063,0x00030037, + 0x00000033,0x00000064,0x000200f8,0x00000066,0x0004003d,0x00000025,0x00000127,0x00000063, + 0x0004007c,0x00000128,0x00000129,0x00000127,0x0004003d,0x00000025,0x0000012a,0x00000064, + 0x0004007c,0x00000128,0x0000012b,0x0000012a,0x000500b0,0x0000012c,0x0000012d,0x00000129, + 0x0000012b,0x0004009b,0x00000061,0x0000012e,0x0000012d,0x000200fe,0x0000012e,0x00010038, + 0x00050036,0x00000006,0x00000068,0x00000000,0x0000000e,0x00030037,0x00000007,0x00000067, + 0x000200f8,0x00000069,0x0004003b,0x00000131,0x00000132,0x00000007,0x00040039,0x00000029, + 0x00000133,0x0000002b,0x0003003e,0x00000132,0x00000133,0x00050041,0x00000007,0x00000134, + 0x00000132,0x000000f8,0x0004003d,0x00000006,0x00000135,0x00000134,0x0004003d,0x00000006, + 0x00000136,0x00000067,0x00050041,0x00000007,0x00000137,0x00000132,0x000000c9,0x0004003d, + 0x00000006,0x00000138,0x00000137,0x00050083,0x00000006,0x00000139,0x00000136,0x00000138, + 0x00050088,0x00000006,0x0000013a,0x00000135,0x00000139,0x000200fe,0x0000013a,0x00010038, + 0x00050036,0x00000006,0x0000006b,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000006a, + 0x000200f8,0x0000006c,0x0004003b,0x00000007,0x0000013d,0x00000007,0x0004003d,0x00000006, + 0x0000013e,0x0000006a,0x0003003e,0x0000013d,0x0000013e,0x00050039,0x00000006,0x0000013f, + 0x00000068,0x0000013d,0x00040039,0x00000006,0x00000140,0x00000031,0x00050085,0x00000006, + 0x00000141,0x0000013f,0x00000140,0x000200fe,0x00000141,0x00010038,0x00050036,0x00000071, + 0x00000075,0x00000000,0x00000072,0x00030037,0x00000013,0x00000073,0x00030037,0x00000033, + 0x00000074,0x000200f8,0x00000076,0x0004003b,0x00000013,0x00000144,0x00000007,0x0004003b, + 0x0000014c,0x0000014d,0x00000007,0x0004003b,0x00000013,0x00000153,0x00000007,0x0004003b, + 0x00000013,0x00000154,0x00000007,0x0004003d,0x00000012,0x00000145,0x00000073,0x0004003d, + 0x00000025,0x00000146,0x00000074,0x0004006f,0x00000012,0x00000147,0x00000146,0x00050085, + 0x00000012,0x00000148,0x00000145,0x00000147,0x00050083,0x00000012,0x0000014b,0x00000148, + 0x0000014a,0x0003003e,0x00000144,0x0000014b,0x0004003d,0x00000012,0x0000014f,0x00000144, + 0x0006000c,0x00000012,0x00000150,0x00000001,0x00000008,0x0000014f,0x0004006e,0x00000025, + 0x00000151,0x00000150,0x00050041,0x00000033,0x00000152,0x0000014d,0x0000014e,0x0003003e, + 0x00000152,0x00000151,0x0004003d,0x00000012,0x00000155,0x00000144,0x0003003e,0x00000154, + 0x00000155,0x00050039,0x00000012,0x00000156,0x00000016,0x00000154,0x0003003e,0x00000153, + 0x00000156,0x00060041,0x00000033,0x00000158,0x0000014d,0x000000ab,0x000000ab,0x0003003e, + 0x00000158,0x00000157,0x00060041,0x00000033,0x0000015b,0x0000014d,0x000000ab,0x00000159, + 0x0003003e,0x0000015b,0x0000015a,0x00060041,0x00000033,0x0000015d,0x0000014d,0x000000ab, + 0x0000014e,0x0003003e,0x0000015d,0x0000015c,0x00060041,0x00000033,0x00000160,0x0000014d, + 0x000000ab,0x0000015e,0x0003003e,0x00000160,0x0000015f,0x00050041,0x00000007,0x00000161, + 0x00000153,0x000000c9,0x0004003d,0x00000006,0x00000162,0x00000161,0x00050083,0x00000006, + 0x00000163,0x00000096,0x00000162,0x00050041,0x00000007,0x00000164,0x00000153,0x000000f8, + 0x0004003d,0x00000006,0x00000165,0x00000164,0x00050083,0x00000006,0x00000166,0x00000096, + 0x00000165,0x00050085,0x00000006,0x00000167,0x00000163,0x00000166,0x00060041,0x00000007, + 0x00000168,0x0000014d,0x00000159,0x000000ab,0x0003003e,0x00000168,0x00000167,0x00050041, + 0x00000007,0x00000169,0x00000153,0x000000c9,0x0004003d,0x00000006,0x0000016a,0x00000169, + 0x00050041,0x00000007,0x0000016b,0x00000153,0x000000f8,0x0004003d,0x00000006,0x0000016c, + 0x0000016b,0x00050083,0x00000006,0x0000016d,0x00000096,0x0000016c,0x00050085,0x00000006, + 0x0000016e,0x0000016a,0x0000016d,0x00060041,0x00000007,0x0000016f,0x0000014d,0x00000159, + 0x00000159,0x0003003e,0x0000016f,0x0000016e,0x00050041,0x00000007,0x00000170,0x00000153, + 0x000000c9,0x0004003d,0x00000006,0x00000171,0x00000170,0x00050083,0x00000006,0x00000172, + 0x00000096,0x00000171,0x00050041,0x00000007,0x00000173,0x00000153,0x000000f8,0x0004003d, + 0x00000006,0x00000174,0x00000173,0x00050085,0x00000006,0x00000175,0x00000172,0x00000174, + 0x00060041,0x00000007,0x00000176,0x0000014d,0x00000159,0x0000014e,0x0003003e,0x00000176, + 0x00000175,0x00050041,0x00000007,0x00000177,0x00000153,0x000000c9,0x0004003d,0x00000006, + 0x00000178,0x00000177,0x00050041,0x00000007,0x00000179,0x00000153,0x000000f8,0x0004003d, + 0x00000006,0x0000017a,0x00000179,0x00050085,0x00000006,0x0000017b,0x00000178,0x0000017a, + 0x00060041,0x00000007,0x0000017c,0x0000014d,0x00000159,0x0000015e,0x0003003e,0x0000017c, + 0x0000017b,0x0004003d,0x00000071,0x0000017d,0x0000014d,0x000200fe,0x0000017d,0x00010038, + 0x00050036,0x00000002,0x0000007b,0x00000000,0x00000077,0x00030037,0x00000033,0x00000078, + 0x00030037,0x00000007,0x00000079,0x00030037,0x00000013,0x0000007a,0x000200f8,0x0000007c, + 0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b,0x00000007,0x00000181,0x00000007, + 0x0004003b,0x00000007,0x00000185,0x00000007,0x0004003b,0x00000007,0x00000186,0x00000007, + 0x0004003b,0x00000007,0x00000188,0x00000007,0x0004003b,0x00000007,0x00000189,0x00000007, + 0x0004003b,0x00000013,0x0000018c,0x00000007,0x0004003b,0x00000013,0x00000194,0x00000007, + 0x0004003b,0x00000013,0x0000019c,0x00000007,0x0004003b,0x0000014c,0x000001a0,0x00000007, + 0x0004003b,0x00000013,0x000001a2,0x00000007,0x0004003b,0x00000033,0x000001a4,0x00000007, + 0x0004003b,0x000001a6,0x000001a7,0x00000007,0x0004003b,0x00000033,0x000001b0,0x00000007, + 0x0004003b,0x00000007,0x000001b4,0x00000007,0x0004003b,0x00000033,0x000001bd,0x00000007, + 0x0004003b,0x00000033,0x000001c3,0x00000007,0x0004003b,0x00000033,0x000001c5,0x00000007, + 0x0004003b,0x00000033,0x000001c9,0x00000007,0x0004003b,0x00000007,0x000001cb,0x00000007, + 0x0004003d,0x00000006,0x00000182,0x00000079,0x0003003e,0x00000181,0x00000182,0x00050039, + 0x00000006,0x00000183,0x0000006b,0x00000181,0x0003003e,0x00000185,0x00000183,0x0003003e, + 0x00000186,0x00000184,0x00060039,0x00000006,0x00000187,0x0000001b,0x00000185,0x00000186, + 0x0003003e,0x00000180,0x00000187,0x0004003d,0x00000006,0x0000018a,0x00000180,0x0003003e, + 0x00000189,0x0000018a,0x00050039,0x00000006,0x0000018b,0x00000057,0x00000189,0x0003003e, + 0x00000188,0x0000018b,0x0004003d,0x00000012,0x0000018d,0x0000007a,0x0003003e,0x0000018c, + 0x0000018d,0x00050039,0x00000006,0x0000018e,0x0000005b,0x0000018c,0x0004003d,0x00000006, + 0x0000018f,0x00000188,0x000500ba,0x00000061,0x00000190,0x0000018e,0x0000018f,0x000600a9, + 0x00000006,0x00000191,0x00000190,0x00000096,0x00000095,0x0004003d,0x00000012,0x00000192, + 0x0000007a,0x0005008e,0x00000012,0x00000193,0x00000192,0x00000191,0x0003003e,0x0000007a, + 0x00000193,0x0004003d,0x00000025,0x00000195,0x00000078,0x0004006f,0x00000012,0x00000196, + 0x00000195,0x00050050,0x00000012,0x00000197,0x00000149,0x00000149,0x00050081,0x00000012, + 0x00000198,0x00000196,0x00000197,0x00040039,0x00000025,0x00000199,0x00000027,0x0004006f, + 0x00000012,0x0000019a,0x00000199,0x00050088,0x00000012,0x0000019b,0x00000198,0x0000019a, + 0x0003003e,0x00000194,0x0000019b,0x0004003d,0x00000012,0x0000019d,0x00000194,0x0004003d, + 0x00000012,0x0000019e,0x0000007a,0x00050081,0x00000012,0x0000019f,0x0000019d,0x0000019e, + 0x0003003e,0x0000019c,0x0000019f,0x00040039,0x00000025,0x000001a1,0x00000027,0x0004003d, + 0x00000012,0x000001a3,0x0000019c,0x0003003e,0x000001a2,0x000001a3,0x0003003e,0x000001a4, + 0x000001a1,0x00060039,0x00000071,0x000001a5,0x00000075,0x000001a2,0x000001a4,0x0003003e, + 0x000001a0,0x000001a5,0x0003003e,0x000001a7,0x000000ab,0x000200f9,0x000001a8,0x000200f8, + 0x000001a8,0x000400f6,0x000001aa,0x000001ab,0x00000000,0x000200f9,0x000001ac,0x000200f8, + 0x000001ac,0x0004003d,0x00000024,0x000001ad,0x000001a7,0x000500b1,0x00000061,0x000001af, + 0x000001ad,0x000001ae,0x000400fa,0x000001af,0x000001a9,0x000001aa,0x000200f8,0x000001a9, + 0x0004003d,0x00000024,0x000001b1,0x000001a7,0x00060041,0x00000033,0x000001b2,0x000001a0, + 0x000000ab,0x000001b1,0x0004003d,0x00000025,0x000001b3,0x000001b2,0x0003003e,0x000001b0, + 0x000001b3,0x0004003d,0x00000024,0x000001b5,0x000001a7,0x00060041,0x00000007,0x000001b6, + 0x000001a0,0x00000159,0x000001b5,0x0004003d,0x00000006,0x000001b7,0x000001b6,0x0003003e, + 0x000001b4,0x000001b7,0x0004003d,0x00000006,0x000001b8,0x000001b4,0x000500ba,0x00000061, + 0x000001ba,0x000001b8,0x000001b9,0x000300f7,0x000001bc,0x00000000,0x000400fa,0x000001ba, + 0x000001bb,0x000001bc,0x000200f8,0x000001bb,0x00050041,0x00000033,0x000001be,0x000001a0, + 0x0000014e,0x0004003d,0x00000025,0x000001bf,0x000001be,0x0004003d,0x00000025,0x000001c0, + 0x000001b0,0x00050080,0x00000025,0x000001c1,0x000001bf,0x000001c0,0x0003003e,0x000001bd, + 0x000001c1,0x00040039,0x00000025,0x000001c2,0x00000027,0x0004003d,0x00000025,0x000001c4, + 0x000001bd,0x0003003e,0x000001c3,0x000001c4,0x0003003e,0x000001c5,0x000001c2,0x00060039, + 0x00000061,0x000001c6,0x00000065,0x000001c3,0x000001c5,0x000300f7,0x000001c8,0x00000000, + 0x000400fa,0x000001c6,0x000001c7,0x000001c8,0x000200f8,0x000001c7,0x0004003d,0x00000025, + 0x000001ca,0x000001bd,0x0003003e,0x000001c9,0x000001ca,0x0004003d,0x00000006,0x000001cc, + 0x00000079,0x0003003e,0x000001cb,0x000001cc,0x00060039,0x00000002,0x000001cd,0x0000004b, + 0x000001c9,0x000001cb,0x000200f9,0x000001c8,0x000200f8,0x000001c8,0x000200f9,0x000001bc, + 0x000200f8,0x000001bc,0x000200f9,0x000001ab,0x000200f8,0x000001ab,0x0004003d,0x00000024, + 0x000001ce,0x000001a7,0x00050080,0x00000024,0x000001cf,0x000001ce,0x00000159,0x0003003e, + 0x000001a7,0x000001cf,0x000200f9,0x000001a8,0x000200f8,0x000001aa,0x000100fd,0x00010038, + 0x00050036,0x0000007d,0x00000080,0x00000000,0x0000007e,0x00030037,0x00000033,0x0000007f, + 0x000200f8,0x00000081,0x0004003b,0x000001a6,0x000001d0,0x00000007,0x0004003b,0x00000033, + 0x000001d8,0x00000007,0x0004003b,0x000001e4,0x000001e5,0x00000007,0x0004003b,0x000001ea, + 0x000001eb,0x00000007,0x0004003b,0x00000033,0x000001ed,0x00000007,0x0004003b,0x000001f3, + 0x000001f4,0x00000007,0x0004003b,0x00000033,0x00000204,0x00000007,0x0004003b,0x000001e4, + 0x00000207,0x00000007,0x0004003b,0x00000033,0x0000020c,0x00000007,0x0004003b,0x00000033, + 0x0000020e,0x00000007,0x0004003b,0x00000007,0x00000212,0x00000007,0x0004003b,0x00000007, + 0x0000021c,0x00000007,0x0004003b,0x00000007,0x0000021f,0x00000007,0x0003003e,0x000001d0, + 0x000000ab,0x0003003e,0x000001d0,0x000000ab,0x000200f9,0x000001d1,0x000200f8,0x000001d1, + 0x000400f6,0x000001d3,0x000001d4,0x00000000,0x000200f9,0x000001d5,0x000200f8,0x000001d5, + 0x0004003d,0x00000024,0x000001d6,0x000001d0,0x000500b1,0x00000061,0x000001d7,0x000001d6, + 0x000000b7,0x000400fa,0x000001d7,0x000001d2,0x000001d3,0x000200f8,0x000001d2,0x0004003d, + 0x00000025,0x000001d9,0x0000007f,0x0004003d,0x00000024,0x000001e3,0x000001d0,0x0003003e, + 0x000001e5,0x000001e2,0x00050041,0x00000033,0x000001e6,0x000001e5,0x000001e3,0x0004003d, + 0x00000025,0x000001e7,0x000001e6,0x00050080,0x00000025,0x000001e8,0x000001d9,0x000001e7, + 0x0003003e,0x000001d8,0x000001e8,0x0004003d,0x00000024,0x000001ec,0x000001d0,0x0004003d, + 0x00000025,0x000001ee,0x000001d8,0x0003003e,0x000001ed,0x000001ee,0x00050039,0x00000006, + 0x000001ef,0x00000036,0x000001ed,0x00050041,0x00000007,0x000001f0,0x000001eb,0x000001ec, + 0x0003003e,0x000001f0,0x000001ef,0x000200f9,0x000001d4,0x000200f8,0x000001d4,0x0004003d, + 0x00000024,0x000001f1,0x000001d0,0x00050080,0x00000024,0x000001f2,0x000001f1,0x00000159, + 0x0003003e,0x000001d0,0x000001f2,0x000200f9,0x000001d1,0x000200f8,0x000001d3,0x0004003d, + 0x00000025,0x000001f5,0x0000007f,0x00050041,0x00000033,0x000001f6,0x000001f4,0x00000159, + 0x0003003e,0x000001f6,0x000001f5,0x00050041,0x00000007,0x000001f7,0x000001eb,0x000000ab, + 0x0004003d,0x00000006,0x000001f8,0x000001f7,0x00050041,0x00000007,0x000001f9,0x000001f4, + 0x000000ab,0x0003003e,0x000001f9,0x000001f8,0x00050041,0x00000007,0x000001fa,0x000001eb, + 0x000000ab,0x0004003d,0x00000006,0x000001fb,0x000001fa,0x00050041,0x00000007,0x000001fc, + 0x000001f4,0x0000014e,0x0003003e,0x000001fc,0x000001fb,0x0003003e,0x000001d0,0x00000159, + 0x000200f9,0x000001fd,0x000200f8,0x000001fd,0x000400f6,0x000001ff,0x00000200,0x00000000, + 0x000200f9,0x00000201,0x000200f8,0x00000201,0x0004003d,0x00000024,0x00000202,0x000001d0, + 0x000500b1,0x00000061,0x00000203,0x00000202,0x000000b7,0x000400fa,0x00000203,0x000001fe, + 0x000001ff,0x000200f8,0x000001fe,0x0004003d,0x00000025,0x00000205,0x0000007f,0x0004003d, + 0x00000024,0x00000206,0x000001d0,0x0003003e,0x00000207,0x000001e2,0x00050041,0x00000033, + 0x00000208,0x00000207,0x00000206,0x0004003d,0x00000025,0x00000209,0x00000208,0x00050080, + 0x00000025,0x0000020a,0x00000205,0x00000209,0x0003003e,0x00000204,0x0000020a,0x00040039, + 0x00000025,0x0000020b,0x00000027,0x0004003d,0x00000025,0x0000020d,0x00000204,0x0003003e, + 0x0000020c,0x0000020d,0x0003003e,0x0000020e,0x0000020b,0x00060039,0x00000061,0x0000020f, + 0x00000065,0x0000020c,0x0000020e,0x000300f7,0x00000211,0x00000000,0x000400fa,0x0000020f, + 0x00000210,0x00000211,0x000200f8,0x00000210,0x0004003d,0x00000024,0x00000213,0x000001d0, + 0x00050041,0x00000007,0x00000214,0x000001eb,0x00000213,0x0004003d,0x00000006,0x00000215, + 0x00000214,0x0003003e,0x00000212,0x00000215,0x0004003d,0x00000006,0x00000216,0x00000212, + 0x00050041,0x00000007,0x00000217,0x000001f4,0x000000ab,0x0004003d,0x00000006,0x00000218, + 0x00000217,0x000500ba,0x00000061,0x00000219,0x00000216,0x00000218,0x000300f7,0x0000021b, + 0x00000000,0x000400fa,0x00000219,0x0000021a,0x0000021b,0x000200f8,0x0000021a,0x00050041, + 0x00000007,0x0000021d,0x000001f4,0x0000014e,0x0004003d,0x00000006,0x0000021e,0x0000021d, + 0x0003003e,0x0000021c,0x0000021e,0x0004003d,0x00000006,0x00000220,0x00000212,0x0003003e, + 0x0000021f,0x00000220,0x00060039,0x00000006,0x00000221,0x0000001b,0x0000021c,0x0000021f, + 0x00050041,0x00000007,0x00000222,0x000001f4,0x0000014e,0x0003003e,0x00000222,0x00000221, + 0x0004003d,0x00000025,0x00000223,0x00000204,0x00050041,0x00000033,0x00000224,0x000001f4, + 0x00000159,0x0003003e,0x00000224,0x00000223,0x0004003d,0x00000006,0x00000225,0x00000212, + 0x00050041,0x00000007,0x00000226,0x000001f4,0x000000ab,0x0003003e,0x00000226,0x00000225, + 0x000200f9,0x0000021b,0x000200f8,0x0000021b,0x000200f9,0x00000211,0x000200f8,0x00000211, + 0x000200f9,0x00000200,0x000200f8,0x00000200,0x0004003d,0x00000024,0x00000227,0x000001d0, + 0x00050080,0x00000024,0x00000228,0x00000227,0x00000159,0x0003003e,0x000001d0,0x00000228, + 0x000200f9,0x000001fd,0x000200f8,0x000001ff,0x0004003d,0x0000007d,0x00000229,0x000001f4, + 0x000200fe,0x00000229,0x00010038,0x00050036,0x00000012,0x00000085,0x00000000,0x00000082, + 0x00030037,0x00000033,0x00000083,0x00030037,0x0000007d,0x00000084,0x000200f8,0x00000086, + 0x0004003b,0x00000033,0x0000022c,0x00000007,0x0004003b,0x00000033,0x0000022e,0x00000007, + 0x0004003b,0x00000013,0x00000230,0x00000007,0x0004003b,0x00000033,0x00000231,0x00000007, + 0x0004003d,0x00000025,0x0000022d,0x00000083,0x0003003e,0x0000022c,0x0000022d,0x00050051, + 0x00000025,0x0000022f,0x00000084,0x00000001,0x0003003e,0x0000022e,0x0000022f,0x0004003d, + 0x00000025,0x00000232,0x0000022e,0x0003003e,0x00000231,0x00000232,0x00050039,0x00000012, + 0x00000233,0x0000003e,0x00000231,0x0003003e,0x00000230,0x00000233,0x0004003d,0x00000012, + 0x00000234,0x00000230,0x000200fe,0x00000234,0x00010038,0x00050036,0x00000006,0x00000088, + 0x00000000,0x00000034,0x00030037,0x00000033,0x00000087,0x000200f8,0x00000089,0x0004003b, + 0x0000001e,0x00000237,0x00000007,0x0004003b,0x00000033,0x00000239,0x00000007,0x0004003b, + 0x0000001e,0x0000023c,0x00000007,0x0004003b,0x0000001e,0x0000023d,0x00000007,0x0004003b, + 0x00000007,0x0000023f,0x00000007,0x0004003b,0x0000001e,0x00000240,0x00000007,0x0004003d, + 0x00000025,0x0000023a,0x00000087,0x0003003e,0x00000239,0x0000023a,0x00050039,0x0000001d, + 0x0000023b,0x0000003a,0x00000239,0x0003003e,0x0000023c,0x00000238,0x0003003e,0x0000023d, + 0x0000023b,0x00060039,0x0000001d,0x0000023e,0x00000022,0x0000023c,0x0000023d,0x0003003e, + 0x00000237,0x0000023e,0x0004003d,0x0000001d,0x00000241,0x00000237,0x0003003e,0x00000240, + 0x00000241,0x00050039,0x00000006,0x00000242,0x0000005f,0x00000240,0x0003003e,0x0000023f, + 0x00000242,0x0004003d,0x00000006,0x00000243,0x0000023f,0x000200fe,0x00000243,0x00010038, + 0x00050036,0x00000002,0x0000008c,0x00000000,0x0000008a,0x00030037,0x00000033,0x0000008b, + 0x000200f8,0x0000008d,0x0004003b,0x000001f3,0x00000246,0x00000007,0x0004003b,0x00000033, + 0x00000247,0x00000007,0x0004003b,0x00000013,0x0000024a,0x00000007,0x0004003b,0x00000033, + 0x0000024c,0x00000007,0x0004003b,0x00000033,0x0000024f,0x00000007,0x0004003b,0x00000007, + 0x00000251,0x00000007,0x0004003b,0x00000013,0x00000254,0x00000007,0x0004003b,0x00000033, + 0x00000257,0x00000007,0x0004003b,0x00000013,0x00000259,0x00000007,0x0004003b,0x00000033, + 0x0000025c,0x00000007,0x0004003b,0x00000007,0x0000025e,0x00000007,0x0004003b,0x00000007, + 0x00000262,0x00000007,0x0004003b,0x00000007,0x00000263,0x00000007,0x0004003b,0x00000007, + 0x00000267,0x00000007,0x0004003b,0x00000007,0x00000268,0x00000007,0x0004003b,0x00000033, + 0x0000026a,0x00000007,0x0004003b,0x00000007,0x0000026c,0x00000007,0x0004003b,0x00000007, + 0x0000026f,0x00000007,0x0004003b,0x00000033,0x00000270,0x00000007,0x0004003b,0x00000033, + 0x00000273,0x00000007,0x0004003b,0x00000007,0x00000275,0x00000007,0x0004003d,0x00000025, + 0x00000248,0x0000008b,0x0003003e,0x00000247,0x00000248,0x00050039,0x0000007d,0x00000249, + 0x00000080,0x00000247,0x0003003e,0x00000246,0x00000249,0x0004003d,0x0000007d,0x0000024b, + 0x00000246,0x0004003d,0x00000025,0x0000024d,0x0000008b,0x0003003e,0x0000024c,0x0000024d, + 0x00060039,0x00000012,0x0000024e,0x00000085,0x0000024c,0x0000024b,0x0003003e,0x0000024a, + 0x0000024e,0x0004003d,0x00000025,0x00000250,0x0000008b,0x0003003e,0x0000024f,0x00000250, + 0x00050041,0x00000007,0x00000252,0x00000246,0x000000ab,0x0004003d,0x00000006,0x00000253, + 0x00000252,0x0003003e,0x00000251,0x00000253,0x0004003d,0x00000012,0x00000255,0x0000024a, + 0x0003003e,0x00000254,0x00000255,0x00070039,0x00000002,0x00000256,0x0000007b,0x0000024f, + 0x00000251,0x00000254,0x0004003d,0x00000025,0x00000258,0x0000008b,0x0003003e,0x00000257, + 0x00000258,0x0004003d,0x00000012,0x0000025a,0x0000024a,0x0003003e,0x00000259,0x0000025a, + 0x00060039,0x00000002,0x0000025b,0x00000054,0x00000257,0x00000259,0x0004003d,0x00000025, + 0x0000025d,0x0000008b,0x0003003e,0x0000025c,0x0000025d,0x00050041,0x00000007,0x0000025f, + 0x00000246,0x000000ab,0x0004003d,0x00000006,0x00000260,0x0000025f,0x0003003e,0x0000025e, + 0x00000260,0x00060039,0x00000002,0x00000261,0x0000004f,0x0000025c,0x0000025e,0x00050041, + 0x00000007,0x00000264,0x00000246,0x0000014e,0x0004003d,0x00000006,0x00000265,0x00000264, + 0x0003003e,0x00000263,0x00000265,0x00050039,0x00000006,0x00000266,0x0000006b,0x00000263, + 0x0003003e,0x00000267,0x00000266,0x0003003e,0x00000268,0x00000184,0x00060039,0x00000006, + 0x00000269,0x0000001b,0x00000267,0x00000268,0x0003003e,0x00000262,0x00000269,0x0004003d, + 0x00000025,0x0000026b,0x0000008b,0x0003003e,0x0000026a,0x0000026b,0x0004003d,0x00000006, + 0x0000026d,0x00000262,0x0003003e,0x0000026c,0x0000026d,0x00060039,0x00000002,0x0000026e, + 0x00000043,0x0000026a,0x0000026c,0x0004003d,0x00000025,0x00000271,0x0000008b,0x0003003e, + 0x00000270,0x00000271,0x00050039,0x00000006,0x00000272,0x00000088,0x00000270,0x0003003e, + 0x0000026f,0x00000272,0x0004003d,0x00000025,0x00000274,0x0000008b,0x0003003e,0x00000273, + 0x00000274,0x0004003d,0x00000006,0x00000276,0x0000026f,0x0003003e,0x00000275,0x00000276, + 0x00060039,0x00000002,0x00000277,0x00000047,0x00000273,0x00000275,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h b/gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h new file mode 100644 index 000000000..dbf1c35f9 --- /dev/null +++ b/gpu/vk/shaders/fsr3_prepare_reactivity_comp_spv.h @@ -0,0 +1,1083 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_PREPARE_REACTIVITY_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x00000523,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000513,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00070005, + 0x0000000c,0x4c786666,0x28707265,0x663b3166,0x31663b31,0x0000003b,0x00030005,0x00000009, + 0x00000078,0x00030005,0x0000000a,0x00000079,0x00030005,0x0000000b,0x00000074,0x00060005, + 0x00000010,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x0000000f,0x00000078, + 0x00060005,0x00000016,0x46786666,0x74636172,0x32667628,0x0000003b,0x00030005,0x00000015, + 0x00000078,0x00060005,0x0000001b,0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005, + 0x00000019,0x00000078,0x00030005,0x0000001a,0x00000079,0x00060005,0x00000020,0x4d786666, + 0x76286e69,0x763b3266,0x003b3266,0x00030005,0x0000001e,0x00000078,0x00030005,0x0000001f, + 0x00000079,0x00060005,0x00000027,0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005, + 0x00000025,0x00000078,0x00030005,0x00000026,0x00000079,0x00060005,0x0000002b,0x4d786666, + 0x66287861,0x31663b31,0x0000003b,0x00030005,0x00000029,0x00000078,0x00030005,0x0000002a, + 0x00000079,0x00060005,0x0000002f,0x4d786666,0x76287861,0x763b3266,0x003b3266,0x00030005, + 0x0000002d,0x00000078,0x00030005,0x0000002e,0x00000079,0x00060005,0x00000033,0x4d786666, + 0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000031,0x00000078,0x00030005,0x00000032, + 0x00000079,0x00050005,0x00000037,0x646e6552,0x69537265,0x0028657a,0x00090005,0x00000039, + 0x76657250,0x73756f69,0x6d617246,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00060005, + 0x0000003b,0x5278614d,0x65646e65,0x7a695372,0x00002865,0x00060005,0x0000003d,0x63737055, + 0x53656c61,0x28657a69,0x00000000,0x00040005,0x00000040,0x7474694a,0x00287265,0x000b0005, + 0x00000044,0x69766544,0x6f546563,0x77656956,0x63617053,0x61725465,0x6f66736e,0x61466d72, + 0x726f7463,0x00002873,0x00090005,0x00000047,0x77656956,0x63617053,0x4d6f5465,0x72657465, + 0x63614673,0x28726f74,0x00000000,0x00090005,0x00000049,0x75636341,0x616c756d,0x6e6f6974, + 0x65646441,0x72655064,0x6d617246,0x00002865,0x000a0005,0x0000004b,0x446e694d,0x636f7369, + 0x73756c63,0x416e6f69,0x6d756363,0x74616c75,0x286e6f69,0x00000000,0x00080005,0x00000050, + 0x64616f4c,0x63616552,0x65766974,0x6b73614d,0x32697628,0x0000003b,0x00040005,0x0000004f, + 0x50785069,0x0000736f,0x00100005,0x00000052,0x54746547,0x736e6172,0x65726170,0x4179636e, + 0x6f43646e,0x736f706d,0x6f697469,0x73614d6e,0x7365526b,0x6372756f,0x6d694465,0x69736e65, + 0x28736e6f,0x00000000,0x000d0005,0x00000056,0x706d6153,0x7254656c,0x70736e61,0x6e657261, + 0x6e417963,0x6d6f4364,0x69736f70,0x6e6f6974,0x6b73614d,0x32667628,0x0000003b,0x00030005, + 0x00000055,0x00565566,0x00080005,0x00000059,0x706d6153,0x6341656c,0x756d7563,0x6974616c, + 0x76286e6f,0x003b3266,0x00030005,0x00000058,0x00565566,0x00090005,0x0000005e,0x726f7453, + 0x63634165,0x6c756d75,0x6f697461,0x6976286e,0x31663b32,0x0000003b,0x00040005,0x0000005c, + 0x50785069,0x0000736f,0x00060005,0x0000005d,0x63634166,0x6c756d75,0x6f697461,0x0000006e, + 0x00090005,0x00000061,0x706d6153,0x6853656c,0x6e696461,0x61684367,0x2865676e,0x3b326676, + 0x00000000,0x00030005,0x00000060,0x00565566,0x00080005,0x00000064,0x64616f4c,0x72727543, + 0x4c746e65,0x28616d75,0x3b326976,0x00000000,0x00040005,0x00000063,0x50785069,0x0000736f, + 0x00080005,0x00000068,0x726f7453,0x77654e65,0x6b636f4c,0x69762873,0x31663b32,0x0000003b, + 0x00040005,0x00000066,0x50785069,0x0000736f,0x00040005,0x00000067,0x4c77656e,0x006b636f, + 0x000a0005,0x0000006b,0x64616f4c,0x6f636552,0x7274736e,0x65746375,0x65725064,0x70654476, + 0x76286874,0x003b3269,0x00040005,0x0000006a,0x50785069,0x0000736f,0x000a0005,0x0000006f, + 0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976,0x00000000, + 0x00050005,0x0000006e,0x49785069,0x7475706e,0x00000000,0x00080005,0x00000072,0x64616f4c, + 0x616c6944,0x44646574,0x68747065,0x32697628,0x0000003b,0x00050005,0x00000071,0x49785069, + 0x7475706e,0x00000000,0x00050005,0x00000074,0x6f707845,0x65727573,0x00000028,0x000b0005, + 0x0000007a,0x726f7453,0x6c694465,0x64657461,0x63616552,0x65766974,0x6b73614d,0x69762873, + 0x66763b32,0x00003b34,0x00040005,0x00000078,0x50785069,0x0000736f,0x00080005,0x00000079, + 0x6c694466,0x64657461,0x63616552,0x65766974,0x6b73614d,0x00000073,0x000b0005,0x0000007d, + 0x6f636552,0x7274736e,0x65746375,0x70654464,0x764d6874,0x68547850,0x68736572,0x28646c6f, + 0x003b3166,0x00080005,0x0000007c,0x61654e66,0x74736572,0x74706544,0x4d6e4968,0x72657465, + 0x00000073,0x00090005,0x0000007f,0x64616853,0x43676e69,0x676e6168,0x6e655265,0x53726564, + 0x28657a69,0x00000000,0x00090005,0x00000081,0x64616853,0x43676e69,0x676e6168,0x78614d65, + 0x646e6552,0x69537265,0x0028657a,0x00070005,0x00000084,0x34746547,0x6c65564b,0x7469636f, + 0x66762879,0x00003b32,0x00060005,0x00000083,0x746f4d66,0x566e6f69,0x6f746365,0x00000072, + 0x00080005,0x00000089,0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31, + 0x00030005,0x00000087,0x00003076,0x00030005,0x00000088,0x00003176,0x00060005,0x0000008e, + 0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x0000008d,0x00765566,0x00080005, + 0x00000094,0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005, + 0x00000091,0x53785069,0x6c706d61,0x00000065,0x00050005,0x00000092,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x00000093,0x78655469,0x65727574,0x657a6953,0x00000000,0x00080005, + 0x0000009a,0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976,0x00000000,0x00030005, + 0x00000097,0x00765566,0x00060005,0x00000098,0x78655469,0x65727574,0x657a6953,0x00000000, + 0x00060005,0x00000099,0x73655269,0x6372756f,0x7a695365,0x00000065,0x00070005,0x0000009f, + 0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000009d,0x00736f70, + 0x00040005,0x0000009e,0x657a6973,0x00000000,0x00090005,0x000000a3,0x706d6f43,0x48657475, + 0x736f5072,0x6d6f7246,0x6f50724c,0x69762873,0x00003b32,0x00050005,0x000000a2,0x4c785069, + 0x736f5072,0x00000000,0x00080005,0x000000a6,0x56746547,0x53776569,0x65636170,0x74706544, + 0x31662868,0x0000003b,0x00060005,0x000000a5,0x76654466,0x44656369,0x68747065,0x00000000, + 0x000a0005,0x000000a9,0x56746547,0x53776569,0x65636170,0x74706544,0x4d6e4968,0x72657465, + 0x31662873,0x0000003b,0x00060005,0x000000a8,0x76654466,0x44656369,0x68747065,0x00000000, + 0x00080005,0x000000af,0x696c6942,0x7261656e,0x706d6153,0x676e696c,0x61746144,0x00000000, + 0x00060006,0x000000af,0x00000000,0x66664f69,0x73746573,0x00000000,0x00060006,0x000000af, + 0x00000001,0x69655766,0x73746867,0x00000000,0x00060006,0x000000af,0x00000002,0x73614269, + 0x736f5065,0x00000000,0x000b0005,0x000000b3,0x42746547,0x6e696c69,0x53726165,0x6c706d61, + 0x44676e69,0x28617461,0x3b326676,0x3b326976,0x00000000,0x00030005,0x000000b1,0x00765566, + 0x00040005,0x000000b2,0x7a695369,0x00000065,0x000b0005,0x000000b9,0x706d6f43,0x44657475, + 0x636f7369,0x73756c63,0x736e6f69,0x32667628,0x3266763b,0x3b31663b,0x00000000,0x00030005, + 0x000000b6,0x00765566,0x00060005,0x000000b7,0x746f4d66,0x566e6f69,0x6f746365,0x00000072, + 0x00080005,0x000000b8,0x72754366,0x746e6572,0x74706544,0x65695668,0x61705377,0x00006563, + 0x000b0005,0x000000be,0x706d6f43,0x4d657475,0x6f69746f,0x7669446e,0x65677265,0x2865636e, + 0x3b326676,0x3b326676,0x003b3166,0x00030005,0x000000bb,0x00765566,0x00060005,0x000000bc, + 0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00070005,0x000000bd,0x72754366,0x746e6572, + 0x74706544,0x6d615368,0x00656c70,0x000a0005,0x000000c3,0x616c6944,0x65526574,0x69746361, + 0x614d6576,0x28736b73,0x3b326976,0x3b326676,0x00000000,0x00040005,0x000000c1,0x50785069, + 0x0000736f,0x00030005,0x000000c2,0x00765566,0x000e0005,0x000000c7,0x616c6944,0x72546574, + 0x70736e61,0x6e657261,0x6e417963,0x6d6f4364,0x69736f70,0x6e6f6974,0x6b73614d,0x69762873, + 0x66763b32,0x00003b32,0x00040005,0x000000c5,0x50785069,0x0000736f,0x00030005,0x000000c6, + 0x00765566,0x000b0005,0x000000ca,0x706d6f43,0x54657475,0x466e6968,0x75746165,0x6f436572, + 0x6469666e,0x65636e65,0x32697628,0x0000003b,0x00040005,0x000000c9,0x50785069,0x0000736f, + 0x000c0005,0x000000d2,0x61647055,0x63416574,0x756d7563,0x6974616c,0x76286e6f,0x763b3269, + 0x763b3266,0x663b3266,0x31663b31,0x0000003b,0x00040005,0x000000cd,0x50785069,0x0000736f, + 0x00030005,0x000000ce,0x00765566,0x00060005,0x000000cf,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00060005,0x000000d0,0x73694466,0x6c63636f,0x6f697375,0x0000006e,0x00060005, + 0x000000d1,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00090005,0x000000d5,0x706d6f43, + 0x53657475,0x69646168,0x6843676e,0x65676e61,0x32667628,0x0000003b,0x00030005,0x000000d4, + 0x00765566,0x00080005,0x000000d9,0x70657250,0x52657261,0x74636165,0x74697669,0x69762879, + 0x00003b32,0x00040005,0x000000d8,0x50785069,0x0000736f,0x00070005,0x00000109,0x53466263, + 0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x00000109,0x00000000,0x6e655269, + 0x53726564,0x00657a69,0x000a0006,0x00000109,0x00000001,0x65725069,0x756f6976,0x61724673, + 0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x00000109,0x00000002,0x73705569, + 0x656c6163,0x657a6953,0x00000000,0x000a0006,0x00000109,0x00000003,0x65725069,0x756f6976, + 0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000109,0x00000004, + 0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x00000109,0x00000005,0x78614d69, + 0x63737055,0x53656c61,0x00657a69,0x00080006,0x00000109,0x00000006,0x76654466,0x54656369, + 0x6569566f,0x70654477,0x00006874,0x00050006,0x00000109,0x00000007,0x74694a66,0x00726574, + 0x00090006,0x00000109,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474, + 0x00000000,0x00080006,0x00000109,0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372, + 0x0000656c,0x00080006,0x00000109,0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463, + 0x00000000,0x000b0006,0x00000109,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72, + 0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x00000109,0x0000000c,0x6e615466, + 0x666c6148,0x00564f46,0x00090006,0x00000109,0x0000000d,0x74694a66,0x53726574,0x65757165, + 0x4c65636e,0x74676e65,0x00000068,0x00060006,0x00000109,0x0000000e,0x6c654466,0x69546174, + 0x0000656d,0x00080006,0x00000109,0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f, + 0x00000065,0x000a0006,0x00000109,0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d, + 0x61467372,0x726f7463,0x00000000,0x00060006,0x00000109,0x00000011,0x61724666,0x6e49656d, + 0x00786564,0x00070006,0x00000109,0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74, + 0x00080006,0x00000109,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c, + 0x00080006,0x00000109,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61, + 0x000a0006,0x00000109,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465, + 0x61724672,0x0000656d,0x000b0006,0x00000109,0x00000016,0x6e694d66,0x6f736944,0x756c6363, + 0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x0000010b,0x53466263, + 0x70553352,0x6c616373,0x00007265,0x00060005,0x0000013f,0x65725f72,0x69746361,0x6d5f6576, + 0x006b7361,0x000b0005,0x0000014b,0x72745f72,0x70736e61,0x6e657261,0x615f7963,0x635f646e, + 0x6f706d6f,0x69746973,0x6d5f6e6f,0x006b7361,0x00060005,0x00000153,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00060005,0x0000015c,0x63615f72,0x756d7563,0x6974616c,0x00006e6f, + 0x00060005,0x00000167,0x615f7772,0x6d756363,0x74616c75,0x006e6f69,0x00070005,0x0000016c, + 0x68735f72,0x6e696461,0x68635f67,0x65676e61,0x00000000,0x00060005,0x00000179,0x75635f72, + 0x6e657272,0x756c5f74,0x0000616d,0x00060005,0x00000180,0x6e5f7772,0x6c5f7765,0x736b636f, + 0x00000000,0x000c0005,0x00000187,0x65725f72,0x736e6f63,0x63757274,0x5f646574,0x76657270, + 0x73756f69,0x61656e5f,0x74736572,0x7065645f,0x00006874,0x00090005,0x00000190,0x69645f72, + 0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00060005,0x00000197, + 0x69645f72,0x6574616c,0x65645f64,0x00687470,0x00050005,0x0000019e,0x6f707865,0x65727573, + 0x00000000,0x00070005,0x0000019f,0x6e695f72,0x5f747570,0x6f707865,0x65727573,0x00000000, + 0x00090005,0x000001ad,0x645f7772,0x74616c69,0x725f6465,0x74636165,0x5f657669,0x6b73616d, + 0x00000073,0x00040005,0x000001b6,0x61726170,0x0000006d,0x00040005,0x000001b8,0x61726170, + 0x0000006d,0x00040005,0x000001b9,0x61726170,0x0000006d,0x00040005,0x000001ba,0x61726170, + 0x0000006d,0x00030005,0x000001d3,0x0000006d,0x00040005,0x000001d4,0x61726170,0x0000006d, + 0x00040005,0x000001d5,0x61726170,0x0000006d,0x00040005,0x000001dc,0x61726170,0x0000006d, + 0x00040005,0x000001dd,0x61726170,0x0000006d,0x00040005,0x000001fd,0x75736572,0x0000746c, + 0x00040005,0x00000204,0x61726170,0x0000006d,0x00040005,0x00000207,0x61726170,0x0000006d, + 0x00040005,0x00000209,0x61726170,0x0000006d,0x00040005,0x0000020a,0x61726170,0x0000006d, + 0x00040005,0x00000210,0x61726170,0x0000006d,0x00040005,0x00000213,0x61726170,0x0000006d, + 0x00040005,0x00000215,0x61726170,0x0000006d,0x00040005,0x00000216,0x61726170,0x0000006d, + 0x00060005,0x0000021c,0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x00000221, + 0x616c4366,0x6465706d,0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x00000226,0x61726170, + 0x0000006d,0x00040005,0x00000228,0x61726170,0x0000006d,0x00040005,0x0000022a,0x61726170, + 0x0000006d,0x00040005,0x0000022b,0x61726170,0x0000006d,0x00050005,0x0000022d,0x616c4366, + 0x6465706d,0x00007655,0x00060005,0x0000023f,0x63725366,0x7474694a,0x64657265,0x00736f50, + 0x00050005,0x00000246,0x50724c66,0x6e49736f,0x00007248,0x00050005,0x0000024e,0x48785069, + 0x736f5072,0x00000000,0x00070005,0x00000255,0x76654466,0x54656369,0x6569566f,0x70654477, + 0x00006874,0x00040005,0x00000260,0x61726170,0x0000006d,0x00050005,0x00000267,0x53785066, + 0x6c706d61,0x00000065,0x00040005,0x0000026e,0x61746164,0x00000000,0x00040005,0x00000273, + 0x46785066,0x00636172,0x00040005,0x00000274,0x61726170,0x0000006d,0x00080005,0x0000029e, + 0x61654e66,0x74736572,0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00040005,0x000002a3, + 0x61726170,0x0000006d,0x00040005,0x000002a4,0x61726170,0x0000006d,0x000a0005,0x000002a6, + 0x63655266,0x74736e6f,0x74637572,0x65446465,0x764d7470,0x65726854,0x6c6f6873,0x00000064, + 0x00040005,0x000002a7,0x61726170,0x0000006d,0x00040005,0x000002aa,0x61726170,0x0000006d, + 0x00060005,0x000002b2,0x70655266,0x656a6f72,0x64657463,0x00007655,0x00060005,0x000002b6, + 0x696c6962,0x7261656e,0x6f666e49,0x00000000,0x00040005,0x000002b8,0x61726170,0x0000006d, + 0x00040005,0x000002ba,0x61726170,0x0000006d,0x00060005,0x000002bc,0x73694466,0x6c63636f, + 0x6f697375,0x0000006e,0x00050005,0x000002bd,0x69655766,0x53746867,0x00006d75,0x00080005, + 0x000002bf,0x746f5062,0x69746e65,0x69446c61,0x63636f73,0x6973756c,0x00006e6f,0x00060005, + 0x000002c1,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00040005,0x000002cb,0x66664f69, + 0x00746573,0x00050005,0x000002cf,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x000002d1, + 0x61726170,0x0000006d,0x00040005,0x000002d4,0x61726170,0x0000006d,0x00040005,0x000002d6, + 0x61726170,0x0000006d,0x00040005,0x000002d9,0x61726170,0x0000006d,0x00040005,0x000002db, + 0x61726170,0x0000006d,0x00040005,0x000002df,0x69655766,0x00746867,0x00090005,0x000002e8, + 0x65725066,0x61654e76,0x74736572,0x74706544,0x65695668,0x61705377,0x00006563,0x00040005, + 0x000002e9,0x61726170,0x0000006d,0x00040005,0x000002ec,0x61726170,0x0000006d,0x00070005, + 0x000002ee,0x70654466,0x69446874,0x72656666,0x65636e65,0x00000000,0x00070005,0x000002fa, + 0x6c614866,0x65695666,0x726f7077,0x64695774,0x00006874,0x00060005,0x000002ff,0x70654466, + 0x68546874,0x68736572,0x00646c6f,0x00040005,0x00000300,0x61726170,0x0000006d,0x00040005, + 0x00000302,0x61726170,0x0000006d,0x00090005,0x00000305,0x71655266,0x65726975,0x70654464, + 0x65536874,0x61726170,0x6e6f6974,0x00000000,0x00040005,0x0000030e,0x61726170,0x0000006d, + 0x00040005,0x00000324,0x61726170,0x0000006d,0x00070005,0x0000032b,0x52785069,0x6f727065, + 0x7463656a,0x6f506465,0x00000073,0x00070005,0x00000333,0x70655266,0x656a6f72,0x64657463, + 0x74706544,0x00000068,0x00040005,0x00000334,0x61726170,0x0000006d,0x00090005,0x00000337, + 0x70655266,0x656a6f72,0x64657463,0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005, + 0x00000338,0x61726170,0x0000006d,0x00080005,0x0000033b,0x70655266,0x656a6f72,0x64657463, + 0x6f6c6556,0x79746963,0x00000000,0x00040005,0x0000033c,0x61726170,0x0000006d,0x00050005, + 0x0000033f,0x564b3466,0x636f6c65,0x00797469,0x00040005,0x00000340,0x61726170,0x0000006d, + 0x00040005,0x00000343,0x78614d66,0x006e654c,0x00080005,0x00000349,0x63754e66,0x7375656c, + 0x74706544,0x4d6e4968,0x72657465,0x00000073,0x00040005,0x0000034a,0x61726170,0x0000006d, + 0x00080005,0x0000034d,0x72754366,0x746e6572,0x74706544,0x4d6e4968,0x72657465,0x00000073, + 0x00040005,0x0000034e,0x61726170,0x0000006d,0x00060005,0x00000351,0x73694466,0x636e6174, + 0x63614665,0x00726f74,0x00060005,0x00000355,0x6c655666,0x7469636f,0x63614679,0x00726f74, + 0x00040005,0x00000359,0x61726170,0x0000006d,0x000a0005,0x0000035b,0x746f4d66,0x566e6f69, + 0x6f746365,0x65694672,0x6f43646c,0x6469666e,0x65636e65,0x00000000,0x00040005,0x0000035f, + 0x61726170,0x0000006d,0x00080005,0x00000369,0x6c694466,0x64657461,0x63616552,0x65766974, + 0x6b73614d,0x00000073,0x00030005,0x0000036a,0x00000079,0x00030005,0x00000373,0x00000078, + 0x00050005,0x0000037b,0x706d6173,0x6f43656c,0x0064726f,0x00040005,0x00000380,0x61726170, + 0x0000006d,0x00040005,0x00000382,0x61726170,0x0000006d,0x00040005,0x00000383,0x61726170, + 0x0000006d,0x00040005,0x00000385,0x61726170,0x0000006d,0x00040005,0x00000388,0x61726170, + 0x0000006d,0x00040005,0x0000038a,0x61726170,0x0000006d,0x000b0005,0x00000393,0x54765566, + 0x736e6172,0x65726170,0x4179636e,0x6f43646e,0x736f706d,0x6f697469,0x73614d6e,0x0000006b, + 0x00040005,0x00000396,0x61726170,0x0000006d,0x00040005,0x00000398,0x61726170,0x0000006d, + 0x00040005,0x00000399,0x61726170,0x0000006d,0x00040005,0x0000039b,0x61726170,0x0000006d, + 0x00050005,0x000003a0,0x6d754c66,0x6e694d61,0x00000000,0x00050005,0x000003a2,0x6d754c66, + 0x78614d61,0x00000000,0x00060005,0x000003a3,0x6d615369,0x49656c70,0x7865646e,0x00000000, + 0x00060005,0x000003ac,0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005,0x000003b7, + 0x61726170,0x0000006d,0x00040005,0x000003b9,0x61726170,0x0000006d,0x00050005,0x000003bb, + 0x65646e69,0x6c626178,0x00000065,0x00040005,0x000003be,0x61726170,0x0000006d,0x00050005, + 0x000003c2,0x6d615366,0x73656c70,0x00000000,0x00040005,0x000003c4,0x61726170,0x0000006d, + 0x00040005,0x000003cb,0x61726170,0x0000006d,0x00040005,0x000003cd,0x61726170,0x0000006d, + 0x00040005,0x000003d2,0x61726170,0x0000006d,0x00040005,0x000003d4,0x61726170,0x0000006d, + 0x00070005,0x000003da,0x73694466,0x696d6973,0x4c72616c,0x4d616d75,0x00006e69,0x00070005, + 0x000003db,0x73694466,0x696d6973,0x4c72616c,0x4d616d75,0x00007861,0x00060005,0x000003dd, + 0x74615075,0x6e726574,0x6b73614d,0x00000000,0x00050005,0x000003de,0x74694269,0x65646e49, + 0x00000078,0x00060005,0x000003df,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00050005, + 0x000003e7,0x66694466,0x65726566,0x0065636e,0x00040005,0x000003fe,0x61726170,0x0000006d, + 0x00040005,0x00000400,0x61726170,0x0000006d,0x00040005,0x00000405,0x61726170,0x0000006d, + 0x00040005,0x00000407,0x61726170,0x0000006d,0x00050005,0x0000040f,0x52734962,0x65676469, + 0x00000000,0x00030005,0x00000422,0x00000069,0x00050005,0x00000434,0x65646e69,0x6c626178, + 0x00000065,0x00050005,0x00000439,0x65646e69,0x6c626178,0x00000065,0x00060005,0x00000448, + 0x70655266,0x656a6f72,0x64657463,0x00007655,0x00060005,0x0000044c,0x63634166,0x6c756d75, + 0x6f697461,0x0000006e,0x00040005,0x0000044d,0x61726170,0x0000006d,0x00070005,0x00000452, + 0x70655266,0x656a6f72,0x64657463,0x485f7655,0x00000057,0x00040005,0x00000455,0x61726170, + 0x0000006d,0x00040005,0x00000457,0x61726170,0x0000006d,0x00040005,0x00000458,0x61726170, + 0x0000006d,0x00040005,0x0000045a,0x61726170,0x0000006d,0x00040005,0x0000045d,0x61726170, + 0x0000006d,0x00090005,0x0000045f,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465, + 0x61724672,0x0000656d,0x00040005,0x00000461,0x61726170,0x0000006d,0x00040005,0x00000463, + 0x61726170,0x0000006d,0x00040005,0x00000464,0x61726170,0x0000006d,0x000a0005,0x00000467, + 0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000, + 0x00040005,0x00000469,0x61726170,0x0000006d,0x00040005,0x0000046b,0x61726170,0x0000006d, + 0x00040005,0x0000046e,0x61726170,0x0000006d,0x00040005,0x00000470,0x61726170,0x0000006d, + 0x00040005,0x00000471,0x61726170,0x0000006d,0x00090005,0x0000047b,0x63634166,0x6c756d75, + 0x64657461,0x6d617246,0x6f547365,0x726f7453,0x00000065,0x00040005,0x0000047f,0x61726170, + 0x0000006d,0x00040005,0x00000481,0x61726170,0x0000006d,0x00040005,0x00000483,0x61726170, + 0x0000006d,0x00070005,0x00000489,0x61685366,0x676e6964,0x6e616843,0x76556567,0x00000000, + 0x00040005,0x00000492,0x61726170,0x0000006d,0x00040005,0x00000493,0x61726170,0x0000006d, + 0x00040005,0x00000494,0x61726170,0x0000006d,0x00060005,0x00000496,0x61685366,0x676e6964, + 0x6e616843,0x00006567,0x00040005,0x00000497,0x61726170,0x0000006d,0x00040005,0x0000049a, + 0x61726170,0x0000006d,0x00030005,0x0000049f,0x00765566,0x00060005,0x000004a7,0x746f4d66, + 0x566e6f69,0x6f746365,0x00000072,0x00040005,0x000004a8,0x61726170,0x0000006d,0x00050005, + 0x000004ab,0x564b3466,0x636f6c65,0x00797469,0x00040005,0x000004ac,0x61726170,0x0000006d, + 0x00050005,0x000004af,0x6c694466,0x64657461,0x00007655,0x00060005,0x000004b3,0x6c694466, + 0x64657461,0x74706544,0x00000068,0x00040005,0x000004b4,0x61726170,0x0000006d,0x00060005, + 0x000004b7,0x70654466,0x6e496874,0x6574654d,0x00007372,0x00040005,0x000004b8,0x61726170, + 0x0000006d,0x00060005,0x000004bb,0x73694466,0x6c63636f,0x6f697375,0x0000006e,0x00040005, + 0x000004bc,0x61726170,0x0000006d,0x00040005,0x000004bf,0x61726170,0x0000006d,0x00040005, + 0x000004c1,0x61726170,0x0000006d,0x00040005,0x000004c3,0x61726170,0x0000006d,0x00060005, + 0x000004c5,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00040005,0x000004c6,0x61726170, + 0x0000006d,0x00040005,0x000004c8,0x61726170,0x0000006d,0x00040005,0x000004cb,0x61726170, + 0x0000006d,0x00040005,0x000004ce,0x61726170,0x0000006d,0x00040005,0x000004cf,0x61726170, + 0x0000006d,0x00070005,0x000004d1,0x746f4d66,0x446e6f69,0x72657669,0x636e6567,0x00000065, + 0x00040005,0x000004d2,0x61726170,0x0000006d,0x00040005,0x000004d4,0x61726170,0x0000006d, + 0x00040005,0x000004d6,0x61726170,0x0000006d,0x000b0005,0x000004d9,0x6c694466,0x64657461, + 0x6e617254,0x72617073,0x79636e65,0x43646e41,0x6f706d6f,0x69746973,0x00006e6f,0x00040005, + 0x000004da,0x61726170,0x0000006d,0x00040005,0x000004dc,0x61726170,0x0000006d,0x00070005, + 0x000004df,0x6e694666,0x65526c61,0x69746361,0x656e6576,0x00007373,0x00040005,0x000004e0, + 0x61726170,0x0000006d,0x00040005,0x000004e2,0x61726170,0x0000006d,0x00060005,0x000004e5, + 0x63634166,0x6c756d75,0x6f697461,0x0000006e,0x00040005,0x000004e6,0x61726170,0x0000006d, + 0x00040005,0x000004e8,0x61726170,0x0000006d,0x00040005,0x000004ea,0x61726170,0x0000006d, + 0x00040005,0x000004ec,0x61726170,0x0000006d,0x00040005,0x000004ee,0x61726170,0x0000006d, + 0x00040005,0x000004f1,0x74754f66,0x00747570,0x00040005,0x000004fc,0x61726170,0x0000006d, + 0x00040005,0x000004fe,0x61726170,0x0000006d,0x00060005,0x00000501,0x636f4c66,0x7274536b, + 0x74676e65,0x00000068,0x00040005,0x00000502,0x61726170,0x0000006d,0x00040005,0x0000050b, + 0x61726170,0x0000006d,0x00040005,0x0000050d,0x61726170,0x0000006d,0x00040005,0x0000050e, + 0x61726170,0x0000006d,0x00080005,0x00000513,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x00000044,0x00040005,0x00000517,0x61726170,0x0000006d,0x00060005,0x0000051b, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00030047,0x00000109,0x00000002,0x00050048, + 0x00000109,0x00000000,0x00000023,0x00000000,0x00050048,0x00000109,0x00000001,0x00000023, + 0x00000008,0x00050048,0x00000109,0x00000002,0x00000023,0x00000010,0x00050048,0x00000109, + 0x00000003,0x00000023,0x00000018,0x00050048,0x00000109,0x00000004,0x00000023,0x00000020, + 0x00050048,0x00000109,0x00000005,0x00000023,0x00000028,0x00050048,0x00000109,0x00000006, + 0x00000023,0x00000030,0x00050048,0x00000109,0x00000007,0x00000023,0x00000040,0x00050048, + 0x00000109,0x00000008,0x00000023,0x00000048,0x00050048,0x00000109,0x00000009,0x00000023, + 0x00000050,0x00050048,0x00000109,0x0000000a,0x00000023,0x00000058,0x00050048,0x00000109, + 0x0000000b,0x00000023,0x00000060,0x00050048,0x00000109,0x0000000c,0x00000023,0x00000068, + 0x00050048,0x00000109,0x0000000d,0x00000023,0x0000006c,0x00050048,0x00000109,0x0000000e, + 0x00000023,0x00000070,0x00050048,0x00000109,0x0000000f,0x00000023,0x00000074,0x00050048, + 0x00000109,0x00000010,0x00000023,0x00000078,0x00050048,0x00000109,0x00000011,0x00000023, + 0x0000007c,0x00050048,0x00000109,0x00000012,0x00000023,0x00000080,0x00050048,0x00000109, + 0x00000013,0x00000023,0x00000084,0x00050048,0x00000109,0x00000014,0x00000023,0x00000088, + 0x00050048,0x00000109,0x00000015,0x00000023,0x0000008c,0x00050048,0x00000109,0x00000016, + 0x00000023,0x00000090,0x00040047,0x0000010b,0x00000021,0x0000000c,0x00040047,0x0000010b, + 0x00000022,0x00000000,0x00040047,0x0000013f,0x00000021,0x00000003,0x00040047,0x0000013f, + 0x00000022,0x00000000,0x00040047,0x0000014b,0x00000021,0x00000004,0x00040047,0x0000014b, + 0x00000022,0x00000000,0x00040047,0x00000153,0x00000021,0x000003e9,0x00040047,0x00000153, + 0x00000022,0x00000000,0x00040047,0x0000015c,0x00000021,0x00000005,0x00040047,0x0000015c, + 0x00000022,0x00000000,0x00040047,0x00000167,0x00000021,0x0000000b,0x00040047,0x00000167, + 0x00000022,0x00000000,0x00040047,0x0000016c,0x00000021,0x00000006,0x00040047,0x0000016c, + 0x00000022,0x00000000,0x00040047,0x00000179,0x00000021,0x00000007,0x00040047,0x00000179, + 0x00000022,0x00000000,0x00040047,0x00000180,0x00000021,0x0000000a,0x00040047,0x00000180, + 0x00000022,0x00000000,0x00040047,0x00000187,0x00000021,0x00000000,0x00040047,0x00000187, + 0x00000022,0x00000000,0x00040047,0x00000190,0x00000021,0x00000001,0x00040047,0x00000190, + 0x00000022,0x00000000,0x00040047,0x00000197,0x00000021,0x00000002,0x00040047,0x00000197, + 0x00000022,0x00000000,0x00040047,0x0000019f,0x00000021,0x00000008,0x00040047,0x0000019f, + 0x00000022,0x00000000,0x00030047,0x000001ad,0x00000019,0x00040047,0x000001ad,0x00000021, + 0x00000009,0x00040047,0x000001ad,0x00000022,0x00000000,0x00040047,0x00000513,0x0000000b, + 0x0000001c,0x00040047,0x0000051b,0x00000021,0x000003e8,0x00040047,0x0000051b,0x00000022, + 0x00000000,0x00040047,0x00000522,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021, + 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007, + 0x00000006,0x00060021,0x00000008,0x00000006,0x00000007,0x00000007,0x00000007,0x00040021, + 0x0000000e,0x00000006,0x00000007,0x00040017,0x00000012,0x00000006,0x00000002,0x00040020, + 0x00000013,0x00000007,0x00000012,0x00040021,0x00000014,0x00000012,0x00000013,0x00050021, + 0x00000018,0x00000006,0x00000007,0x00000007,0x00050021,0x0000001d,0x00000012,0x00000013, + 0x00000013,0x00040015,0x00000022,0x00000020,0x00000001,0x00040020,0x00000023,0x00000007, + 0x00000022,0x00050021,0x00000024,0x00000022,0x00000023,0x00000023,0x00040017,0x00000035, + 0x00000022,0x00000002,0x00030021,0x00000036,0x00000035,0x00030021,0x0000003f,0x00000012, + 0x00040017,0x00000042,0x00000006,0x00000004,0x00030021,0x00000043,0x00000042,0x00030021, + 0x00000046,0x00000006,0x00040020,0x0000004d,0x00000007,0x00000035,0x00040021,0x0000004e, + 0x00000006,0x0000004d,0x00040021,0x00000054,0x00000006,0x00000013,0x00050021,0x0000005b, + 0x00000002,0x0000004d,0x00000007,0x00040021,0x0000006d,0x00000012,0x0000004d,0x00040020, + 0x00000076,0x00000007,0x00000042,0x00050021,0x00000077,0x00000002,0x0000004d,0x00000076, + 0x00050021,0x00000086,0x00000006,0x00000006,0x00000006,0x00020014,0x0000008b,0x00040021, + 0x0000008c,0x0000008b,0x00000013,0x00060021,0x00000090,0x00000035,0x0000004d,0x0000004d, + 0x0000004d,0x00060021,0x00000096,0x00000012,0x00000013,0x0000004d,0x0000004d,0x00050021, + 0x0000009c,0x0000008b,0x0000004d,0x0000004d,0x00040021,0x000000a1,0x00000035,0x0000004d, + 0x00040015,0x000000ab,0x00000020,0x00000000,0x0004002b,0x000000ab,0x000000ac,0x00000004, + 0x0004001c,0x000000ad,0x00000035,0x000000ac,0x0004001c,0x000000ae,0x00000006,0x000000ac, + 0x0005001e,0x000000af,0x000000ad,0x000000ae,0x00000035,0x00050021,0x000000b0,0x000000af, + 0x00000013,0x0000004d,0x00060021,0x000000b5,0x00000006,0x00000013,0x00000013,0x00000007, + 0x00050021,0x000000c0,0x00000006,0x0000004d,0x00000013,0x00080021,0x000000cc,0x00000006, + 0x0000004d,0x00000013,0x00000013,0x00000007,0x00000007,0x00040021,0x000000d7,0x00000002, + 0x0000004d,0x0004002b,0x00000006,0x000000e2,0x00000000,0x0004002b,0x00000006,0x000000e3, + 0x3f800000,0x0019001e,0x00000109,0x00000035,0x00000035,0x00000035,0x00000035,0x00000035, + 0x00000035,0x00000042,0x00000012,0x00000012,0x00000012,0x00000012,0x00000012,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00040020,0x0000010a,0x00000002,0x00000109,0x0004003b,0x0000010a, + 0x0000010b,0x00000002,0x0004002b,0x00000022,0x0000010c,0x00000000,0x00040020,0x0000010d, + 0x00000002,0x00000035,0x0004002b,0x00000022,0x00000112,0x00000001,0x0004002b,0x00000022, + 0x00000117,0x00000004,0x0004002b,0x00000022,0x0000011c,0x00000002,0x0004002b,0x00000022, + 0x00000121,0x00000007,0x00040020,0x00000122,0x00000002,0x00000012,0x0004002b,0x00000022, + 0x00000127,0x00000006,0x00040020,0x00000128,0x00000002,0x00000042,0x0004002b,0x00000022, + 0x0000012d,0x00000010,0x00040020,0x0000012e,0x00000002,0x00000006,0x0004002b,0x00000022, + 0x00000133,0x00000015,0x0004002b,0x00000022,0x00000138,0x00000016,0x00090019,0x0000013d, + 0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020, + 0x0000013e,0x00000000,0x0000013d,0x0004003b,0x0000013e,0x0000013f,0x00000000,0x0004002b, + 0x000000ab,0x00000143,0x00000000,0x0004002b,0x00000022,0x00000145,0x00000013,0x0004003b, + 0x0000013e,0x0000014b,0x00000000,0x0002001a,0x00000151,0x00040020,0x00000152,0x00000000, + 0x00000151,0x0004003b,0x00000152,0x00000153,0x00000000,0x0003001b,0x00000155,0x0000013d, + 0x0004003b,0x0000013e,0x0000015c,0x00000000,0x00090019,0x00000165,0x00000006,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000002,0x0000000f,0x00040020,0x00000166,0x00000000, + 0x00000165,0x0004003b,0x00000166,0x00000167,0x00000000,0x0004003b,0x0000013e,0x0000016c, + 0x00000000,0x0004002b,0x00000022,0x00000173,0x00000014,0x0004003b,0x0000013e,0x00000179, + 0x00000000,0x0004003b,0x00000166,0x00000180,0x00000000,0x00090019,0x00000185,0x000000ab, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000186, + 0x00000000,0x00000185,0x0004003b,0x00000186,0x00000187,0x00000000,0x00040017,0x0000018a, + 0x000000ab,0x00000004,0x0004003b,0x0000013e,0x00000190,0x00000000,0x0004003b,0x0000013e, + 0x00000197,0x00000000,0x0004003b,0x0000013e,0x0000019f,0x00000000,0x0005002c,0x00000035, + 0x000001a1,0x0000010c,0x0000010c,0x00090019,0x000001ab,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000004,0x00040020,0x000001ac,0x00000000,0x000001ab, + 0x0004003b,0x000001ac,0x000001ad,0x00000000,0x0004002b,0x00000006,0x000001b1,0x3e800000, + 0x0004002b,0x00000006,0x000001b2,0x3f400000,0x0004002b,0x00000006,0x000001b4,0x42c80000, + 0x0004002b,0x00000006,0x000001c0,0x3f000000,0x0004002b,0x00000006,0x000001cc,0x45700000, + 0x0004002b,0x00000006,0x000001cd,0x45070000,0x0005002c,0x00000012,0x000001ce,0x000001cc, + 0x000001cd,0x0004002b,0x000000ab,0x000001f0,0x00000001,0x0005002c,0x00000012,0x00000222, + 0x000001c0,0x000001c0,0x00040017,0x00000236,0x000000ab,0x00000002,0x00040017,0x0000023a, + 0x0000008b,0x00000002,0x00040020,0x0000026d,0x00000007,0x000000af,0x0005002c,0x00000035, + 0x00000278,0x00000112,0x0000010c,0x0005002c,0x00000035,0x0000027a,0x0000010c,0x00000112, + 0x0004002b,0x00000022,0x0000027c,0x00000003,0x0005002c,0x00000035,0x0000027d,0x00000112, + 0x00000112,0x0004002b,0x00000006,0x000002a2,0x477fe000,0x00040020,0x000002be,0x00000007, + 0x0000008b,0x00030029,0x0000008b,0x000002c0,0x0004002b,0x00000006,0x000002e4,0x3a1fe868, + 0x0004002b,0x00000006,0x000002f4,0x00800000,0x0004002b,0x00000006,0x00000306,0x3765d90d, + 0x0004002b,0x00000006,0x00000357,0x41200000,0x0004002b,0x00000022,0x0000036b,0xffffffff, + 0x0004002b,0x00000006,0x000003a1,0x7f7fffff,0x0004002b,0x00000022,0x000003aa,0x00000009, + 0x0004002b,0x000000ab,0x000003ad,0x00000009,0x0004001c,0x000003ae,0x00000035,0x000003ad, + 0x0005002c,0x00000035,0x000003af,0x0000036b,0x0000036b,0x0005002c,0x00000035,0x000003b0, + 0x0000010c,0x0000036b,0x0005002c,0x00000035,0x000003b1,0x00000112,0x0000036b,0x0005002c, + 0x00000035,0x000003b2,0x0000036b,0x0000010c,0x0005002c,0x00000035,0x000003b3,0x0000036b, + 0x00000112,0x000c002c,0x000003ae,0x000003b4,0x000001a1,0x000003af,0x000003b0,0x000003b1, + 0x000003b2,0x00000278,0x000003b3,0x0000027a,0x0000027d,0x00040020,0x000003ba,0x00000007, + 0x000003ae,0x0004001c,0x000003c0,0x00000006,0x000003ad,0x00040020,0x000003c1,0x00000007, + 0x000003c0,0x00040020,0x000003dc,0x00000007,0x000000ab,0x0004002b,0x00000006,0x000003f4, + 0x3f666666,0x0003002a,0x0000008b,0x0000041c,0x0004001c,0x0000042c,0x000000ab,0x000000ac, + 0x0004002b,0x000000ab,0x0000042d,0x00000017,0x0004002b,0x000000ab,0x0000042e,0x0000002d, + 0x0004002b,0x000000ab,0x0000042f,0x000000d1,0x0004002b,0x000000ab,0x00000430,0x000001a1, + 0x0007002c,0x0000042c,0x00000431,0x0000042d,0x0000042e,0x0000042f,0x00000430,0x00040020, + 0x00000433,0x00000007,0x0000042c,0x0004002b,0x000000ab,0x000004f7,0x00000002,0x0004002b, + 0x000000ab,0x000004fa,0x00000003,0x0004002b,0x00000006,0x00000506,0x3c23d70a,0x00040017, + 0x00000511,0x000000ab,0x00000003,0x00040020,0x00000512,0x00000001,0x00000511,0x0004003b, + 0x00000512,0x00000513,0x00000001,0x0004002b,0x00000006,0x00000519,0x387fda40,0x0004002b, + 0x00000006,0x0000051a,0x37801002,0x0004003b,0x00000152,0x0000051b,0x00000000,0x0004002b, + 0x00000006,0x0000051c,0x3d800000,0x0004002b,0x00000006,0x0000051d,0x3d3d70a4,0x0004002b, + 0x00000006,0x0000051e,0x3e400000,0x0004002b,0x00000006,0x0000051f,0x40000000,0x0004002b, + 0x00000006,0x00000520,0x461c4000,0x0004002b,0x000000ab,0x00000521,0x00000008,0x0006002c, + 0x00000511,0x00000522,0x00000521,0x00000521,0x000001f0,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000004d,0x00000517,0x00000007, + 0x0004003d,0x00000511,0x00000514,0x00000513,0x0007004f,0x00000236,0x00000515,0x00000514, + 0x00000514,0x00000000,0x00000001,0x0004007c,0x00000035,0x00000516,0x00000515,0x0003003e, + 0x00000517,0x00000516,0x00050039,0x00000002,0x00000518,0x000000d9,0x00000517,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007, + 0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8, + 0x0000000d,0x0004003d,0x00000006,0x000000db,0x00000009,0x0004003d,0x00000006,0x000000dc, + 0x0000000a,0x0004003d,0x00000006,0x000000dd,0x0000000b,0x0008000c,0x00000006,0x000000de, + 0x00000001,0x0000002e,0x000000db,0x000000dc,0x000000dd,0x000200fe,0x000000de,0x00010038, + 0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x000200f8,0x00000011,0x0004003d,0x00000006,0x000000e1,0x0000000f,0x0008000c,0x00000006, + 0x000000e4,0x00000001,0x0000002b,0x000000e1,0x000000e2,0x000000e3,0x000200fe,0x000000e4, + 0x00010038,0x00050036,0x00000012,0x00000016,0x00000000,0x00000014,0x00030037,0x00000013, + 0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000012,0x000000e7,0x00000015,0x0006000c, + 0x00000012,0x000000e8,0x00000001,0x0000000a,0x000000e7,0x000200fe,0x000000e8,0x00010038, + 0x00050036,0x00000006,0x0000001b,0x00000000,0x00000018,0x00030037,0x00000007,0x00000019, + 0x00030037,0x00000007,0x0000001a,0x000200f8,0x0000001c,0x0004003d,0x00000006,0x000000eb, + 0x00000019,0x0004003d,0x00000006,0x000000ec,0x0000001a,0x0007000c,0x00000006,0x000000ed, + 0x00000001,0x00000025,0x000000eb,0x000000ec,0x000200fe,0x000000ed,0x00010038,0x00050036, + 0x00000012,0x00000020,0x00000000,0x0000001d,0x00030037,0x00000013,0x0000001e,0x00030037, + 0x00000013,0x0000001f,0x000200f8,0x00000021,0x0004003d,0x00000012,0x000000f0,0x0000001e, + 0x0004003d,0x00000012,0x000000f1,0x0000001f,0x0007000c,0x00000012,0x000000f2,0x00000001, + 0x00000025,0x000000f0,0x000000f1,0x000200fe,0x000000f2,0x00010038,0x00050036,0x00000022, + 0x00000027,0x00000000,0x00000024,0x00030037,0x00000023,0x00000025,0x00030037,0x00000023, + 0x00000026,0x000200f8,0x00000028,0x0004003d,0x00000022,0x000000f5,0x00000025,0x0004003d, + 0x00000022,0x000000f6,0x00000026,0x0007000c,0x00000022,0x000000f7,0x00000001,0x00000027, + 0x000000f5,0x000000f6,0x000200fe,0x000000f7,0x00010038,0x00050036,0x00000006,0x0000002b, + 0x00000000,0x00000018,0x00030037,0x00000007,0x00000029,0x00030037,0x00000007,0x0000002a, + 0x000200f8,0x0000002c,0x0004003d,0x00000006,0x000000fa,0x00000029,0x0004003d,0x00000006, + 0x000000fb,0x0000002a,0x0007000c,0x00000006,0x000000fc,0x00000001,0x00000028,0x000000fa, + 0x000000fb,0x000200fe,0x000000fc,0x00010038,0x00050036,0x00000012,0x0000002f,0x00000000, + 0x0000001d,0x00030037,0x00000013,0x0000002d,0x00030037,0x00000013,0x0000002e,0x000200f8, + 0x00000030,0x0004003d,0x00000012,0x000000ff,0x0000002d,0x0004003d,0x00000012,0x00000100, + 0x0000002e,0x0007000c,0x00000012,0x00000101,0x00000001,0x00000028,0x000000ff,0x00000100, + 0x000200fe,0x00000101,0x00010038,0x00050036,0x00000022,0x00000033,0x00000000,0x00000024, + 0x00030037,0x00000023,0x00000031,0x00030037,0x00000023,0x00000032,0x000200f8,0x00000034, + 0x0004003d,0x00000022,0x00000104,0x00000031,0x0004003d,0x00000022,0x00000105,0x00000032, + 0x0007000c,0x00000022,0x00000106,0x00000001,0x0000002a,0x00000104,0x00000105,0x000200fe, + 0x00000106,0x00010038,0x00050036,0x00000035,0x00000037,0x00000000,0x00000036,0x000200f8, + 0x00000038,0x00050041,0x0000010d,0x0000010e,0x0000010b,0x0000010c,0x0004003d,0x00000035, + 0x0000010f,0x0000010e,0x000200fe,0x0000010f,0x00010038,0x00050036,0x00000035,0x00000039, + 0x00000000,0x00000036,0x000200f8,0x0000003a,0x00050041,0x0000010d,0x00000113,0x0000010b, + 0x00000112,0x0004003d,0x00000035,0x00000114,0x00000113,0x000200fe,0x00000114,0x00010038, + 0x00050036,0x00000035,0x0000003b,0x00000000,0x00000036,0x000200f8,0x0000003c,0x00050041, + 0x0000010d,0x00000118,0x0000010b,0x00000117,0x0004003d,0x00000035,0x00000119,0x00000118, + 0x000200fe,0x00000119,0x00010038,0x00050036,0x00000035,0x0000003d,0x00000000,0x00000036, + 0x000200f8,0x0000003e,0x00050041,0x0000010d,0x0000011d,0x0000010b,0x0000011c,0x0004003d, + 0x00000035,0x0000011e,0x0000011d,0x000200fe,0x0000011e,0x00010038,0x00050036,0x00000012, + 0x00000040,0x00000000,0x0000003f,0x000200f8,0x00000041,0x00050041,0x00000122,0x00000123, + 0x0000010b,0x00000121,0x0004003d,0x00000012,0x00000124,0x00000123,0x000200fe,0x00000124, + 0x00010038,0x00050036,0x00000042,0x00000044,0x00000000,0x00000043,0x000200f8,0x00000045, + 0x00050041,0x00000128,0x00000129,0x0000010b,0x00000127,0x0004003d,0x00000042,0x0000012a, + 0x00000129,0x000200fe,0x0000012a,0x00010038,0x00050036,0x00000006,0x00000047,0x00000000, + 0x00000046,0x000200f8,0x00000048,0x00050041,0x0000012e,0x0000012f,0x0000010b,0x0000012d, + 0x0004003d,0x00000006,0x00000130,0x0000012f,0x000200fe,0x00000130,0x00010038,0x00050036, + 0x00000006,0x00000049,0x00000000,0x00000046,0x000200f8,0x0000004a,0x00050041,0x0000012e, + 0x00000134,0x0000010b,0x00000133,0x0004003d,0x00000006,0x00000135,0x00000134,0x000200fe, + 0x00000135,0x00010038,0x00050036,0x00000006,0x0000004b,0x00000000,0x00000046,0x000200f8, + 0x0000004c,0x00050041,0x0000012e,0x00000139,0x0000010b,0x00000138,0x0004003d,0x00000006, + 0x0000013a,0x00000139,0x000200fe,0x0000013a,0x00010038,0x00050036,0x00000006,0x00000050, + 0x00000000,0x0000004e,0x00030037,0x0000004d,0x0000004f,0x000200f8,0x00000051,0x0004003d, + 0x0000013d,0x00000140,0x0000013f,0x0004003d,0x00000035,0x00000141,0x0000004f,0x0007005f, + 0x00000042,0x00000142,0x00000140,0x00000141,0x00000002,0x0000010c,0x00050051,0x00000006, + 0x00000144,0x00000142,0x00000000,0x00050041,0x0000012e,0x00000146,0x0000010b,0x00000145, + 0x0004003d,0x00000006,0x00000147,0x00000146,0x00050085,0x00000006,0x00000148,0x00000144, + 0x00000147,0x000200fe,0x00000148,0x00010038,0x00050036,0x00000035,0x00000052,0x00000000, + 0x00000036,0x000200f8,0x00000053,0x0004003d,0x0000013d,0x0000014c,0x0000014b,0x00050067, + 0x00000035,0x0000014d,0x0000014c,0x0000010c,0x000200fe,0x0000014d,0x00010038,0x00050036, + 0x00000006,0x00000056,0x00000000,0x00000054,0x00030037,0x00000013,0x00000055,0x000200f8, + 0x00000057,0x0004003d,0x0000013d,0x00000150,0x0000014b,0x0004003d,0x00000151,0x00000154, + 0x00000153,0x00050056,0x00000155,0x00000156,0x00000150,0x00000154,0x0004003d,0x00000012, + 0x00000157,0x00000055,0x00070058,0x00000042,0x00000158,0x00000156,0x00000157,0x00000002, + 0x000000e2,0x00050051,0x00000006,0x00000159,0x00000158,0x00000000,0x000200fe,0x00000159, + 0x00010038,0x00050036,0x00000006,0x00000059,0x00000000,0x00000054,0x00030037,0x00000013, + 0x00000058,0x000200f8,0x0000005a,0x0004003d,0x0000013d,0x0000015d,0x0000015c,0x0004003d, + 0x00000151,0x0000015e,0x00000153,0x00050056,0x00000155,0x0000015f,0x0000015d,0x0000015e, + 0x0004003d,0x00000012,0x00000160,0x00000058,0x00070058,0x00000042,0x00000161,0x0000015f, + 0x00000160,0x00000002,0x000000e2,0x00050051,0x00000006,0x00000162,0x00000161,0x00000000, + 0x000200fe,0x00000162,0x00010038,0x00050036,0x00000002,0x0000005e,0x00000000,0x0000005b, + 0x00030037,0x0000004d,0x0000005c,0x00030037,0x00000007,0x0000005d,0x000200f8,0x0000005f, + 0x0004003d,0x00000165,0x00000168,0x00000167,0x0004003d,0x00000035,0x00000169,0x0000005c, + 0x0004003d,0x00000006,0x0000016a,0x0000005d,0x00070050,0x00000042,0x0000016b,0x0000016a, + 0x000000e2,0x000000e2,0x000000e2,0x00040063,0x00000168,0x00000169,0x0000016b,0x000100fd, + 0x00010038,0x00050036,0x00000006,0x00000061,0x00000000,0x00000054,0x00030037,0x00000013, + 0x00000060,0x000200f8,0x00000062,0x0004003d,0x0000013d,0x0000016d,0x0000016c,0x0004003d, + 0x00000151,0x0000016e,0x00000153,0x00050056,0x00000155,0x0000016f,0x0000016d,0x0000016e, + 0x0004003d,0x00000012,0x00000170,0x00000060,0x00070058,0x00000042,0x00000171,0x0000016f, + 0x00000170,0x00000002,0x000000e2,0x00050051,0x00000006,0x00000172,0x00000171,0x00000000, + 0x00050041,0x0000012e,0x00000174,0x0000010b,0x00000173,0x0004003d,0x00000006,0x00000175, + 0x00000174,0x00050085,0x00000006,0x00000176,0x00000172,0x00000175,0x000200fe,0x00000176, + 0x00010038,0x00050036,0x00000006,0x00000064,0x00000000,0x0000004e,0x00030037,0x0000004d, + 0x00000063,0x000200f8,0x00000065,0x0004003d,0x0000013d,0x0000017a,0x00000179,0x0004003d, + 0x00000035,0x0000017b,0x00000063,0x0007005f,0x00000042,0x0000017c,0x0000017a,0x0000017b, + 0x00000002,0x0000010c,0x00050051,0x00000006,0x0000017d,0x0000017c,0x00000000,0x000200fe, + 0x0000017d,0x00010038,0x00050036,0x00000002,0x00000068,0x00000000,0x0000005b,0x00030037, + 0x0000004d,0x00000066,0x00030037,0x00000007,0x00000067,0x000200f8,0x00000069,0x0004003d, + 0x00000165,0x00000181,0x00000180,0x0004003d,0x00000035,0x00000182,0x00000066,0x0004003d, + 0x00000006,0x00000183,0x00000067,0x00070050,0x00000042,0x00000184,0x00000183,0x000000e2, + 0x000000e2,0x000000e2,0x00040063,0x00000181,0x00000182,0x00000184,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000006b,0x00000000,0x0000004e,0x00030037,0x0000004d,0x0000006a, + 0x000200f8,0x0000006c,0x0004003d,0x00000185,0x00000188,0x00000187,0x0004003d,0x00000035, + 0x00000189,0x0000006a,0x0007005f,0x0000018a,0x0000018b,0x00000188,0x00000189,0x00000002, + 0x0000010c,0x00050051,0x000000ab,0x0000018c,0x0000018b,0x00000000,0x0004007c,0x00000006, + 0x0000018d,0x0000018c,0x000200fe,0x0000018d,0x00010038,0x00050036,0x00000012,0x0000006f, + 0x00000000,0x0000006d,0x00030037,0x0000004d,0x0000006e,0x000200f8,0x00000070,0x0004003d, + 0x0000013d,0x00000191,0x00000190,0x0004003d,0x00000035,0x00000192,0x0000006e,0x0007005f, + 0x00000042,0x00000193,0x00000191,0x00000192,0x00000002,0x0000010c,0x0007004f,0x00000012, + 0x00000194,0x00000193,0x00000193,0x00000000,0x00000001,0x000200fe,0x00000194,0x00010038, + 0x00050036,0x00000006,0x00000072,0x00000000,0x0000004e,0x00030037,0x0000004d,0x00000071, + 0x000200f8,0x00000073,0x0004003d,0x0000013d,0x00000198,0x00000197,0x0004003d,0x00000035, + 0x00000199,0x00000071,0x0007005f,0x00000042,0x0000019a,0x00000198,0x00000199,0x00000002, + 0x0000010c,0x00050051,0x00000006,0x0000019b,0x0000019a,0x00000000,0x000200fe,0x0000019b, + 0x00010038,0x00050036,0x00000006,0x00000074,0x00000000,0x00000046,0x000200f8,0x00000075, + 0x0004003b,0x00000007,0x0000019e,0x00000007,0x0004003d,0x0000013d,0x000001a0,0x0000019f, + 0x0007005f,0x00000042,0x000001a2,0x000001a0,0x000001a1,0x00000002,0x0000010c,0x00050051, + 0x00000006,0x000001a3,0x000001a2,0x00000000,0x0003003e,0x0000019e,0x000001a3,0x0004003d, + 0x00000006,0x000001a4,0x0000019e,0x000500b4,0x0000008b,0x000001a5,0x000001a4,0x000000e2, + 0x000300f7,0x000001a7,0x00000000,0x000400fa,0x000001a5,0x000001a6,0x000001a7,0x000200f8, + 0x000001a6,0x0003003e,0x0000019e,0x000000e3,0x000200f9,0x000001a7,0x000200f8,0x000001a7, + 0x0004003d,0x00000006,0x000001a8,0x0000019e,0x000200fe,0x000001a8,0x00010038,0x00050036, + 0x00000002,0x0000007a,0x00000000,0x00000077,0x00030037,0x0000004d,0x00000078,0x00030037, + 0x00000076,0x00000079,0x000200f8,0x0000007b,0x0004003d,0x000001ab,0x000001ae,0x000001ad, + 0x0004003d,0x00000035,0x000001af,0x00000078,0x0004003d,0x00000042,0x000001b0,0x00000079, + 0x00040063,0x000001ae,0x000001af,0x000001b0,0x000100fd,0x00010038,0x00050036,0x00000006, + 0x0000007d,0x00000000,0x0000000e,0x00030037,0x00000007,0x0000007c,0x000200f8,0x0000007e, + 0x0004003b,0x00000007,0x000001b6,0x00000007,0x0004003b,0x00000007,0x000001b8,0x00000007, + 0x0004003b,0x00000007,0x000001b9,0x00000007,0x0004003b,0x00000007,0x000001ba,0x00000007, + 0x0004003d,0x00000006,0x000001b3,0x0000007c,0x00050088,0x00000006,0x000001b5,0x000001b3, + 0x000001b4,0x0003003e,0x000001b6,0x000001b5,0x00050039,0x00000006,0x000001b7,0x00000010, + 0x000001b6,0x0003003e,0x000001b8,0x000001b1,0x0003003e,0x000001b9,0x000001b2,0x0003003e, + 0x000001ba,0x000001b7,0x00070039,0x00000006,0x000001bb,0x0000000c,0x000001b8,0x000001b9, + 0x000001ba,0x000200fe,0x000001bb,0x00010038,0x00050036,0x00000035,0x0000007f,0x00000000, + 0x00000036,0x000200f8,0x00000080,0x00040039,0x00000035,0x000001be,0x00000037,0x0004006f, + 0x00000012,0x000001bf,0x000001be,0x0005008e,0x00000012,0x000001c1,0x000001bf,0x000001c0, + 0x0004006e,0x00000035,0x000001c2,0x000001c1,0x000200fe,0x000001c2,0x00010038,0x00050036, + 0x00000035,0x00000081,0x00000000,0x00000036,0x000200f8,0x00000082,0x00040039,0x00000035, + 0x000001c5,0x0000003b,0x0004006f,0x00000012,0x000001c6,0x000001c5,0x0005008e,0x00000012, + 0x000001c7,0x000001c6,0x000001c0,0x0004006e,0x00000035,0x000001c8,0x000001c7,0x000200fe, + 0x000001c8,0x00010038,0x00050036,0x00000006,0x00000084,0x00000000,0x00000054,0x00030037, + 0x00000013,0x00000083,0x000200f8,0x00000085,0x0004003d,0x00000012,0x000001cb,0x00000083, + 0x00050085,0x00000012,0x000001cf,0x000001cb,0x000001ce,0x0006000c,0x00000006,0x000001d0, + 0x00000001,0x00000042,0x000001cf,0x000200fe,0x000001d0,0x00010038,0x00050036,0x00000006, + 0x00000089,0x00000000,0x00000086,0x00030037,0x00000006,0x00000087,0x00030037,0x00000006, + 0x00000088,0x000200f8,0x0000008a,0x0004003b,0x00000007,0x000001d3,0x00000007,0x0004003b, + 0x00000007,0x000001d4,0x00000007,0x0004003b,0x00000007,0x000001d5,0x00000007,0x0004003b, + 0x00000007,0x000001d9,0x00000007,0x0004003b,0x00000007,0x000001dc,0x00000007,0x0004003b, + 0x00000007,0x000001dd,0x00000007,0x0003003e,0x000001d4,0x00000087,0x0003003e,0x000001d5, + 0x00000088,0x00060039,0x00000006,0x000001d6,0x0000002b,0x000001d4,0x000001d5,0x0003003e, + 0x000001d3,0x000001d6,0x0004003d,0x00000006,0x000001d7,0x000001d3,0x000500b7,0x0000008b, + 0x000001d8,0x000001d7,0x000000e2,0x000300f7,0x000001db,0x00000000,0x000400fa,0x000001d8, + 0x000001da,0x000001e1,0x000200f8,0x000001da,0x0003003e,0x000001dc,0x00000087,0x0003003e, + 0x000001dd,0x00000088,0x00060039,0x00000006,0x000001de,0x0000001b,0x000001dc,0x000001dd, + 0x0004003d,0x00000006,0x000001df,0x000001d3,0x00050088,0x00000006,0x000001e0,0x000001de, + 0x000001df,0x0003003e,0x000001d9,0x000001e0,0x000200f9,0x000001db,0x000200f8,0x000001e1, + 0x0003003e,0x000001d9,0x000000e2,0x000200f9,0x000001db,0x000200f8,0x000001db,0x0004003d, + 0x00000006,0x000001e2,0x000001d9,0x000200fe,0x000001e2,0x00010038,0x00050036,0x0000008b, + 0x0000008e,0x00000000,0x0000008c,0x00030037,0x00000013,0x0000008d,0x000200f8,0x0000008f, + 0x00050041,0x00000007,0x000001e5,0x0000008d,0x00000143,0x0004003d,0x00000006,0x000001e6, + 0x000001e5,0x000500be,0x0000008b,0x000001e7,0x000001e6,0x000000e2,0x000300f7,0x000001e9, + 0x00000000,0x000400fa,0x000001e7,0x000001e8,0x000001e9,0x000200f8,0x000001e8,0x00050041, + 0x00000007,0x000001ea,0x0000008d,0x00000143,0x0004003d,0x00000006,0x000001eb,0x000001ea, + 0x000500bc,0x0000008b,0x000001ec,0x000001eb,0x000000e3,0x000200f9,0x000001e9,0x000200f8, + 0x000001e9,0x000700f5,0x0000008b,0x000001ed,0x000001e7,0x0000008f,0x000001ec,0x000001e8, + 0x000300f7,0x000001ef,0x00000000,0x000400fa,0x000001ed,0x000001ee,0x000001ef,0x000200f8, + 0x000001ee,0x00050041,0x00000007,0x000001f1,0x0000008d,0x000001f0,0x0004003d,0x00000006, + 0x000001f2,0x000001f1,0x000500be,0x0000008b,0x000001f3,0x000001f2,0x000000e2,0x000300f7, + 0x000001f5,0x00000000,0x000400fa,0x000001f3,0x000001f4,0x000001f5,0x000200f8,0x000001f4, + 0x00050041,0x00000007,0x000001f6,0x0000008d,0x000001f0,0x0004003d,0x00000006,0x000001f7, + 0x000001f6,0x000500bc,0x0000008b,0x000001f8,0x000001f7,0x000000e3,0x000200f9,0x000001f5, + 0x000200f8,0x000001f5,0x000700f5,0x0000008b,0x000001f9,0x000001f3,0x000001ee,0x000001f8, + 0x000001f4,0x000200f9,0x000001ef,0x000200f8,0x000001ef,0x000700f5,0x0000008b,0x000001fa, + 0x000001ed,0x000001e9,0x000001f9,0x000001f5,0x000200fe,0x000001fa,0x00010038,0x00050036, + 0x00000035,0x00000094,0x00000000,0x00000090,0x00030037,0x0000004d,0x00000091,0x00030037, + 0x0000004d,0x00000092,0x00030037,0x0000004d,0x00000093,0x000200f8,0x00000095,0x0004003b, + 0x0000004d,0x000001fd,0x00000007,0x0004003b,0x00000023,0x00000204,0x00000007,0x0004003b, + 0x00000023,0x00000207,0x00000007,0x0004003b,0x00000023,0x00000209,0x00000007,0x0004003b, + 0x00000023,0x0000020a,0x00000007,0x0004003b,0x00000023,0x00000210,0x00000007,0x0004003b, + 0x00000023,0x00000213,0x00000007,0x0004003b,0x00000023,0x00000215,0x00000007,0x0004003b, + 0x00000023,0x00000216,0x00000007,0x0004003d,0x00000035,0x000001fe,0x00000091,0x0004003d, + 0x00000035,0x000001ff,0x00000092,0x00050080,0x00000035,0x00000200,0x000001fe,0x000001ff, + 0x0003003e,0x000001fd,0x00000200,0x00050041,0x00000023,0x00000201,0x00000093,0x00000143, + 0x0004003d,0x00000022,0x00000202,0x00000201,0x00050082,0x00000022,0x00000203,0x00000202, + 0x00000112,0x00050041,0x00000023,0x00000205,0x000001fd,0x00000143,0x0004003d,0x00000022, + 0x00000206,0x00000205,0x0003003e,0x00000204,0x00000206,0x0003003e,0x00000207,0x00000203, + 0x00060039,0x00000022,0x00000208,0x00000027,0x00000204,0x00000207,0x0003003e,0x00000209, + 0x0000010c,0x0003003e,0x0000020a,0x00000208,0x00060039,0x00000022,0x0000020b,0x00000033, + 0x00000209,0x0000020a,0x00050041,0x00000023,0x0000020c,0x000001fd,0x00000143,0x0003003e, + 0x0000020c,0x0000020b,0x00050041,0x00000023,0x0000020d,0x00000093,0x000001f0,0x0004003d, + 0x00000022,0x0000020e,0x0000020d,0x00050082,0x00000022,0x0000020f,0x0000020e,0x00000112, + 0x00050041,0x00000023,0x00000211,0x000001fd,0x000001f0,0x0004003d,0x00000022,0x00000212, + 0x00000211,0x0003003e,0x00000210,0x00000212,0x0003003e,0x00000213,0x0000020f,0x00060039, + 0x00000022,0x00000214,0x00000027,0x00000210,0x00000213,0x0003003e,0x00000215,0x0000010c, + 0x0003003e,0x00000216,0x00000214,0x00060039,0x00000022,0x00000217,0x00000033,0x00000215, + 0x00000216,0x00050041,0x00000023,0x00000218,0x000001fd,0x000001f0,0x0003003e,0x00000218, + 0x00000217,0x0004003d,0x00000035,0x00000219,0x000001fd,0x000200fe,0x00000219,0x00010038, + 0x00050036,0x00000012,0x0000009a,0x00000000,0x00000096,0x00030037,0x00000013,0x00000097, + 0x00030037,0x0000004d,0x00000098,0x00030037,0x0000004d,0x00000099,0x000200f8,0x0000009b, + 0x0004003b,0x00000013,0x0000021c,0x00000007,0x0004003b,0x00000013,0x00000221,0x00000007, + 0x0004003b,0x00000013,0x00000226,0x00000007,0x0004003b,0x00000013,0x00000228,0x00000007, + 0x0004003b,0x00000013,0x0000022a,0x00000007,0x0004003b,0x00000013,0x0000022b,0x00000007, + 0x0004003b,0x00000013,0x0000022d,0x00000007,0x0004003d,0x00000012,0x0000021d,0x00000097, + 0x0004003d,0x00000035,0x0000021e,0x00000098,0x0004006f,0x00000012,0x0000021f,0x0000021e, + 0x00050085,0x00000012,0x00000220,0x0000021d,0x0000021f,0x0003003e,0x0000021c,0x00000220, + 0x0004003d,0x00000035,0x00000223,0x00000098,0x0004006f,0x00000012,0x00000224,0x00000223, + 0x00050083,0x00000012,0x00000225,0x00000224,0x00000222,0x0004003d,0x00000012,0x00000227, + 0x0000021c,0x0003003e,0x00000226,0x00000227,0x0003003e,0x00000228,0x00000225,0x00060039, + 0x00000012,0x00000229,0x00000020,0x00000226,0x00000228,0x0003003e,0x0000022a,0x00000222, + 0x0003003e,0x0000022b,0x00000229,0x00060039,0x00000012,0x0000022c,0x0000002f,0x0000022a, + 0x0000022b,0x0003003e,0x00000221,0x0000022c,0x0004003d,0x00000012,0x0000022e,0x00000221, + 0x0004003d,0x00000035,0x0000022f,0x00000099,0x0004006f,0x00000012,0x00000230,0x0000022f, + 0x00050088,0x00000012,0x00000231,0x0000022e,0x00000230,0x0003003e,0x0000022d,0x00000231, + 0x0004003d,0x00000012,0x00000232,0x0000022d,0x000200fe,0x00000232,0x00010038,0x00050036, + 0x0000008b,0x0000009f,0x00000000,0x0000009c,0x00030037,0x0000004d,0x0000009d,0x00030037, + 0x0000004d,0x0000009e,0x000200f8,0x000000a0,0x0004003d,0x00000035,0x00000235,0x0000009d, + 0x0004007c,0x00000236,0x00000237,0x00000235,0x0004003d,0x00000035,0x00000238,0x0000009e, + 0x0004007c,0x00000236,0x00000239,0x00000238,0x000500b0,0x0000023a,0x0000023b,0x00000237, + 0x00000239,0x0004009b,0x0000008b,0x0000023c,0x0000023b,0x000200fe,0x0000023c,0x00010038, + 0x00050036,0x00000035,0x000000a3,0x00000000,0x000000a1,0x00030037,0x0000004d,0x000000a2, + 0x000200f8,0x000000a4,0x0004003b,0x00000013,0x0000023f,0x00000007,0x0004003b,0x00000013, + 0x00000246,0x00000007,0x0004003b,0x0000004d,0x0000024e,0x00000007,0x0004003d,0x00000035, + 0x00000240,0x000000a2,0x0004006f,0x00000012,0x00000241,0x00000240,0x00050050,0x00000012, + 0x00000242,0x000001c0,0x000001c0,0x00050081,0x00000012,0x00000243,0x00000241,0x00000242, + 0x00040039,0x00000012,0x00000244,0x00000040,0x00050083,0x00000012,0x00000245,0x00000243, + 0x00000244,0x0003003e,0x0000023f,0x00000245,0x0004003d,0x00000012,0x00000247,0x0000023f, + 0x00040039,0x00000035,0x00000248,0x00000037,0x0004006f,0x00000012,0x00000249,0x00000248, + 0x00050088,0x00000012,0x0000024a,0x00000247,0x00000249,0x00040039,0x00000035,0x0000024b, + 0x0000003d,0x0004006f,0x00000012,0x0000024c,0x0000024b,0x00050085,0x00000012,0x0000024d, + 0x0000024a,0x0000024c,0x0003003e,0x00000246,0x0000024d,0x0004003d,0x00000012,0x0000024f, + 0x00000246,0x0006000c,0x00000012,0x00000250,0x00000001,0x00000008,0x0000024f,0x0004006e, + 0x00000035,0x00000251,0x00000250,0x0003003e,0x0000024e,0x00000251,0x0004003d,0x00000035, + 0x00000252,0x0000024e,0x000200fe,0x00000252,0x00010038,0x00050036,0x00000006,0x000000a6, + 0x00000000,0x0000000e,0x00030037,0x00000007,0x000000a5,0x000200f8,0x000000a7,0x0004003b, + 0x00000076,0x00000255,0x00000007,0x00040039,0x00000042,0x00000256,0x00000044,0x0003003e, + 0x00000255,0x00000256,0x00050041,0x00000007,0x00000257,0x00000255,0x000001f0,0x0004003d, + 0x00000006,0x00000258,0x00000257,0x0004003d,0x00000006,0x00000259,0x000000a5,0x00050041, + 0x00000007,0x0000025a,0x00000255,0x00000143,0x0004003d,0x00000006,0x0000025b,0x0000025a, + 0x00050083,0x00000006,0x0000025c,0x00000259,0x0000025b,0x00050088,0x00000006,0x0000025d, + 0x00000258,0x0000025c,0x000200fe,0x0000025d,0x00010038,0x00050036,0x00000006,0x000000a9, + 0x00000000,0x0000000e,0x00030037,0x00000007,0x000000a8,0x000200f8,0x000000aa,0x0004003b, + 0x00000007,0x00000260,0x00000007,0x0004003d,0x00000006,0x00000261,0x000000a8,0x0003003e, + 0x00000260,0x00000261,0x00050039,0x00000006,0x00000262,0x000000a6,0x00000260,0x00040039, + 0x00000006,0x00000263,0x00000047,0x00050085,0x00000006,0x00000264,0x00000262,0x00000263, + 0x000200fe,0x00000264,0x00010038,0x00050036,0x000000af,0x000000b3,0x00000000,0x000000b0, + 0x00030037,0x00000013,0x000000b1,0x00030037,0x0000004d,0x000000b2,0x000200f8,0x000000b4, + 0x0004003b,0x00000013,0x00000267,0x00000007,0x0004003b,0x0000026d,0x0000026e,0x00000007, + 0x0004003b,0x00000013,0x00000273,0x00000007,0x0004003b,0x00000013,0x00000274,0x00000007, + 0x0004003d,0x00000012,0x00000268,0x000000b1,0x0004003d,0x00000035,0x00000269,0x000000b2, + 0x0004006f,0x00000012,0x0000026a,0x00000269,0x00050085,0x00000012,0x0000026b,0x00000268, + 0x0000026a,0x00050083,0x00000012,0x0000026c,0x0000026b,0x00000222,0x0003003e,0x00000267, + 0x0000026c,0x0004003d,0x00000012,0x0000026f,0x00000267,0x0006000c,0x00000012,0x00000270, + 0x00000001,0x00000008,0x0000026f,0x0004006e,0x00000035,0x00000271,0x00000270,0x00050041, + 0x0000004d,0x00000272,0x0000026e,0x0000011c,0x0003003e,0x00000272,0x00000271,0x0004003d, + 0x00000012,0x00000275,0x00000267,0x0003003e,0x00000274,0x00000275,0x00050039,0x00000012, + 0x00000276,0x00000016,0x00000274,0x0003003e,0x00000273,0x00000276,0x00060041,0x0000004d, + 0x00000277,0x0000026e,0x0000010c,0x0000010c,0x0003003e,0x00000277,0x000001a1,0x00060041, + 0x0000004d,0x00000279,0x0000026e,0x0000010c,0x00000112,0x0003003e,0x00000279,0x00000278, + 0x00060041,0x0000004d,0x0000027b,0x0000026e,0x0000010c,0x0000011c,0x0003003e,0x0000027b, + 0x0000027a,0x00060041,0x0000004d,0x0000027e,0x0000026e,0x0000010c,0x0000027c,0x0003003e, + 0x0000027e,0x0000027d,0x00050041,0x00000007,0x0000027f,0x00000273,0x00000143,0x0004003d, + 0x00000006,0x00000280,0x0000027f,0x00050083,0x00000006,0x00000281,0x000000e3,0x00000280, + 0x00050041,0x00000007,0x00000282,0x00000273,0x000001f0,0x0004003d,0x00000006,0x00000283, + 0x00000282,0x00050083,0x00000006,0x00000284,0x000000e3,0x00000283,0x00050085,0x00000006, + 0x00000285,0x00000281,0x00000284,0x00060041,0x00000007,0x00000286,0x0000026e,0x00000112, + 0x0000010c,0x0003003e,0x00000286,0x00000285,0x00050041,0x00000007,0x00000287,0x00000273, + 0x00000143,0x0004003d,0x00000006,0x00000288,0x00000287,0x00050041,0x00000007,0x00000289, + 0x00000273,0x000001f0,0x0004003d,0x00000006,0x0000028a,0x00000289,0x00050083,0x00000006, + 0x0000028b,0x000000e3,0x0000028a,0x00050085,0x00000006,0x0000028c,0x00000288,0x0000028b, + 0x00060041,0x00000007,0x0000028d,0x0000026e,0x00000112,0x00000112,0x0003003e,0x0000028d, + 0x0000028c,0x00050041,0x00000007,0x0000028e,0x00000273,0x00000143,0x0004003d,0x00000006, + 0x0000028f,0x0000028e,0x00050083,0x00000006,0x00000290,0x000000e3,0x0000028f,0x00050041, + 0x00000007,0x00000291,0x00000273,0x000001f0,0x0004003d,0x00000006,0x00000292,0x00000291, + 0x00050085,0x00000006,0x00000293,0x00000290,0x00000292,0x00060041,0x00000007,0x00000294, + 0x0000026e,0x00000112,0x0000011c,0x0003003e,0x00000294,0x00000293,0x00050041,0x00000007, + 0x00000295,0x00000273,0x00000143,0x0004003d,0x00000006,0x00000296,0x00000295,0x00050041, + 0x00000007,0x00000297,0x00000273,0x000001f0,0x0004003d,0x00000006,0x00000298,0x00000297, + 0x00050085,0x00000006,0x00000299,0x00000296,0x00000298,0x00060041,0x00000007,0x0000029a, + 0x0000026e,0x00000112,0x0000027c,0x0003003e,0x0000029a,0x00000299,0x0004003d,0x000000af, + 0x0000029b,0x0000026e,0x000200fe,0x0000029b,0x00010038,0x00050036,0x00000006,0x000000b9, + 0x00000000,0x000000b5,0x00030037,0x00000013,0x000000b6,0x00030037,0x00000013,0x000000b7, + 0x00030037,0x00000007,0x000000b8,0x000200f8,0x000000ba,0x0004003b,0x00000007,0x0000029e, + 0x00000007,0x0004003b,0x00000007,0x000002a3,0x00000007,0x0004003b,0x00000007,0x000002a4, + 0x00000007,0x0004003b,0x00000007,0x000002a6,0x00000007,0x0004003b,0x00000007,0x000002a7, + 0x00000007,0x0004003b,0x00000013,0x000002aa,0x00000007,0x0004003b,0x00000013,0x000002b2, + 0x00000007,0x0004003b,0x0000026d,0x000002b6,0x00000007,0x0004003b,0x00000013,0x000002b8, + 0x00000007,0x0004003b,0x0000004d,0x000002ba,0x00000007,0x0004003b,0x00000007,0x000002bc, + 0x00000007,0x0004003b,0x00000007,0x000002bd,0x00000007,0x0004003b,0x000002be,0x000002bf, + 0x00000007,0x0004003b,0x00000023,0x000002c1,0x00000007,0x0004003b,0x0000004d,0x000002cb, + 0x00000007,0x0004003b,0x0000004d,0x000002cf,0x00000007,0x0004003b,0x0000004d,0x000002d1, + 0x00000007,0x0004003b,0x0000004d,0x000002d4,0x00000007,0x0004003b,0x0000004d,0x000002d6, + 0x00000007,0x0004003b,0x0000004d,0x000002d9,0x00000007,0x0004003b,0x0000004d,0x000002db, + 0x00000007,0x0004003b,0x00000007,0x000002df,0x00000007,0x0004003b,0x00000007,0x000002e8, + 0x00000007,0x0004003b,0x0000004d,0x000002e9,0x00000007,0x0004003b,0x00000007,0x000002ec, + 0x00000007,0x0004003b,0x00000007,0x000002ee,0x00000007,0x0004003b,0x00000007,0x000002fa, + 0x00000007,0x0004003b,0x00000007,0x000002ff,0x00000007,0x0004003b,0x00000007,0x00000300, + 0x00000007,0x0004003b,0x00000007,0x00000302,0x00000007,0x0004003b,0x00000007,0x00000305, + 0x00000007,0x0004003b,0x00000007,0x0000030e,0x00000007,0x0004003b,0x00000007,0x0000031d, + 0x00000007,0x0004003b,0x00000007,0x00000324,0x00000007,0x0004003d,0x00000006,0x0000029f, + 0x000000b8,0x00040039,0x00000006,0x000002a0,0x00000047,0x00050085,0x00000006,0x000002a1, + 0x0000029f,0x000002a0,0x0003003e,0x000002a3,0x000002a1,0x0003003e,0x000002a4,0x000002a2, + 0x00060039,0x00000006,0x000002a5,0x0000001b,0x000002a3,0x000002a4,0x0003003e,0x0000029e, + 0x000002a5,0x0004003d,0x00000006,0x000002a8,0x0000029e,0x0003003e,0x000002a7,0x000002a8, + 0x00050039,0x00000006,0x000002a9,0x0000007d,0x000002a7,0x0003003e,0x000002a6,0x000002a9, + 0x0004003d,0x00000012,0x000002ab,0x000000b7,0x0003003e,0x000002aa,0x000002ab,0x00050039, + 0x00000006,0x000002ac,0x00000084,0x000002aa,0x0004003d,0x00000006,0x000002ad,0x000002a6, + 0x000500ba,0x0000008b,0x000002ae,0x000002ac,0x000002ad,0x000600a9,0x00000006,0x000002af, + 0x000002ae,0x000000e3,0x000000e2,0x0004003d,0x00000012,0x000002b0,0x000000b7,0x0005008e, + 0x00000012,0x000002b1,0x000002b0,0x000002af,0x0003003e,0x000000b7,0x000002b1,0x0004003d, + 0x00000012,0x000002b3,0x000000b6,0x0004003d,0x00000012,0x000002b4,0x000000b7,0x00050081, + 0x00000012,0x000002b5,0x000002b3,0x000002b4,0x0003003e,0x000002b2,0x000002b5,0x00040039, + 0x00000035,0x000002b7,0x00000037,0x0004003d,0x00000012,0x000002b9,0x000002b2,0x0003003e, + 0x000002b8,0x000002b9,0x0003003e,0x000002ba,0x000002b7,0x00060039,0x000000af,0x000002bb, + 0x000000b3,0x000002b8,0x000002ba,0x0003003e,0x000002b6,0x000002bb,0x0003003e,0x000002bc, + 0x000000e2,0x0003003e,0x000002bd,0x000000e2,0x0003003e,0x000002bf,0x000002c0,0x0003003e, + 0x000002c1,0x0000010c,0x000200f9,0x000002c2,0x000200f8,0x000002c2,0x000400f6,0x000002c4, + 0x000002c5,0x00000000,0x000200f9,0x000002c6,0x000200f8,0x000002c6,0x0004003d,0x00000022, + 0x000002c7,0x000002c1,0x000500b1,0x0000008b,0x000002c8,0x000002c7,0x00000117,0x0004003d, + 0x0000008b,0x000002c9,0x000002bf,0x000500a7,0x0000008b,0x000002ca,0x000002c8,0x000002c9, + 0x000400fa,0x000002ca,0x000002c3,0x000002c4,0x000200f8,0x000002c3,0x0004003d,0x00000022, + 0x000002cc,0x000002c1,0x00060041,0x0000004d,0x000002cd,0x000002b6,0x0000010c,0x000002cc, + 0x0004003d,0x00000035,0x000002ce,0x000002cd,0x0003003e,0x000002cb,0x000002ce,0x00040039, + 0x00000035,0x000002d0,0x00000037,0x00050041,0x0000004d,0x000002d2,0x000002b6,0x0000011c, + 0x0004003d,0x00000035,0x000002d3,0x000002d2,0x0003003e,0x000002d1,0x000002d3,0x0004003d, + 0x00000035,0x000002d5,0x000002cb,0x0003003e,0x000002d4,0x000002d5,0x0003003e,0x000002d6, + 0x000002d0,0x00070039,0x00000035,0x000002d7,0x00000094,0x000002d1,0x000002d4,0x000002d6, + 0x0003003e,0x000002cf,0x000002d7,0x00040039,0x00000035,0x000002d8,0x00000037,0x0004003d, + 0x00000035,0x000002da,0x000002cf,0x0003003e,0x000002d9,0x000002da,0x0003003e,0x000002db, + 0x000002d8,0x00060039,0x0000008b,0x000002dc,0x0000009f,0x000002d9,0x000002db,0x000300f7, + 0x000002de,0x00000000,0x000400fa,0x000002dc,0x000002dd,0x000002de,0x000200f8,0x000002dd, + 0x0004003d,0x00000022,0x000002e0,0x000002c1,0x00060041,0x00000007,0x000002e1,0x000002b6, + 0x00000112,0x000002e0,0x0004003d,0x00000006,0x000002e2,0x000002e1,0x0003003e,0x000002df, + 0x000002e2,0x0004003d,0x00000006,0x000002e3,0x000002df,0x000500ba,0x0000008b,0x000002e5, + 0x000002e3,0x000002e4,0x000300f7,0x000002e7,0x00000000,0x000400fa,0x000002e5,0x000002e6, + 0x000002e7,0x000200f8,0x000002e6,0x0004003d,0x00000035,0x000002ea,0x000002cf,0x0003003e, + 0x000002e9,0x000002ea,0x00050039,0x00000006,0x000002eb,0x0000006b,0x000002e9,0x0003003e, + 0x000002ec,0x000002eb,0x00050039,0x00000006,0x000002ed,0x000000a6,0x000002ec,0x0003003e, + 0x000002e8,0x000002ed,0x0004003d,0x00000006,0x000002ef,0x000000b8,0x0004003d,0x00000006, + 0x000002f0,0x000002e8,0x00050083,0x00000006,0x000002f1,0x000002ef,0x000002f0,0x0003003e, + 0x000002ee,0x000002f1,0x0004003d,0x0000008b,0x000002f2,0x000002bf,0x0004003d,0x00000006, + 0x000002f3,0x000002ee,0x000500ba,0x0000008b,0x000002f5,0x000002f3,0x000002f4,0x000500a7, + 0x0000008b,0x000002f6,0x000002f2,0x000002f5,0x0003003e,0x000002bf,0x000002f6,0x0004003d, + 0x0000008b,0x000002f7,0x000002bf,0x000300f7,0x000002f9,0x00000000,0x000400fa,0x000002f7, + 0x000002f8,0x000002f9,0x000200f8,0x000002f8,0x00040039,0x00000035,0x000002fb,0x00000037, + 0x0004006f,0x00000012,0x000002fc,0x000002fb,0x0005008e,0x00000012,0x000002fd,0x000002fc, + 0x000001c0,0x0006000c,0x00000006,0x000002fe,0x00000001,0x00000042,0x000002fd,0x0003003e, + 0x000002fa,0x000002fe,0x0004003d,0x00000006,0x00000301,0x000000b8,0x0003003e,0x00000300, + 0x00000301,0x0004003d,0x00000006,0x00000303,0x000002e8,0x0003003e,0x00000302,0x00000303, + 0x00060039,0x00000006,0x00000304,0x0000002b,0x00000300,0x00000302,0x0003003e,0x000002ff, + 0x00000304,0x0004003d,0x00000006,0x00000307,0x000002fa,0x00050085,0x00000006,0x00000308, + 0x00000306,0x00000307,0x0004003d,0x00000006,0x00000309,0x000002ff,0x00050085,0x00000006, + 0x0000030a,0x00000308,0x00000309,0x0003003e,0x00000305,0x0000030a,0x0004003d,0x00000006, + 0x0000030b,0x00000305,0x0004003d,0x00000006,0x0000030c,0x000002ee,0x00050088,0x00000006, + 0x0000030d,0x0000030b,0x0000030c,0x0003003e,0x0000030e,0x0000030d,0x00050039,0x00000006, + 0x0000030f,0x00000010,0x0000030e,0x0004003d,0x00000006,0x00000310,0x000002df,0x00050085, + 0x00000006,0x00000311,0x0000030f,0x00000310,0x0004003d,0x00000006,0x00000312,0x000002bc, + 0x00050081,0x00000006,0x00000313,0x00000312,0x00000311,0x0003003e,0x000002bc,0x00000313, + 0x0004003d,0x00000006,0x00000314,0x000002df,0x0004003d,0x00000006,0x00000315,0x000002bd, + 0x00050081,0x00000006,0x00000316,0x00000315,0x00000314,0x0003003e,0x000002bd,0x00000316, + 0x000200f9,0x000002f9,0x000200f8,0x000002f9,0x000200f9,0x000002e7,0x000200f8,0x000002e7, + 0x000200f9,0x000002de,0x000200f8,0x000002de,0x000200f9,0x000002c5,0x000200f8,0x000002c5, + 0x0004003d,0x00000022,0x00000317,0x000002c1,0x00050080,0x00000022,0x00000318,0x00000317, + 0x00000112,0x0003003e,0x000002c1,0x00000318,0x000200f9,0x000002c2,0x000200f8,0x000002c4, + 0x0004003d,0x0000008b,0x00000319,0x000002bf,0x0004003d,0x00000006,0x0000031a,0x000002bd, + 0x000500ba,0x0000008b,0x0000031b,0x0000031a,0x000000e2,0x000500a7,0x0000008b,0x0000031c, + 0x00000319,0x0000031b,0x000300f7,0x0000031f,0x00000000,0x000400fa,0x0000031c,0x0000031e, + 0x00000326,0x000200f8,0x0000031e,0x0004003d,0x00000006,0x00000320,0x000002bc,0x0004003d, + 0x00000006,0x00000321,0x000002bd,0x00050088,0x00000006,0x00000322,0x00000320,0x00000321, + 0x00050083,0x00000006,0x00000323,0x000000e3,0x00000322,0x0003003e,0x00000324,0x00000323, + 0x00050039,0x00000006,0x00000325,0x00000010,0x00000324,0x0003003e,0x0000031d,0x00000325, + 0x000200f9,0x0000031f,0x000200f8,0x00000326,0x0003003e,0x0000031d,0x000000e2,0x000200f9, + 0x0000031f,0x000200f8,0x0000031f,0x0004003d,0x00000006,0x00000327,0x0000031d,0x0003003e, + 0x000002bc,0x00000327,0x0004003d,0x00000006,0x00000328,0x000002bc,0x000200fe,0x00000328, + 0x00010038,0x00050036,0x00000006,0x000000be,0x00000000,0x000000b5,0x00030037,0x00000013, + 0x000000bb,0x00030037,0x00000013,0x000000bc,0x00030037,0x00000007,0x000000bd,0x000200f8, + 0x000000bf,0x0004003b,0x0000004d,0x0000032b,0x00000007,0x0004003b,0x00000007,0x00000333, + 0x00000007,0x0004003b,0x0000004d,0x00000334,0x00000007,0x0004003b,0x00000013,0x00000337, + 0x00000007,0x0004003b,0x0000004d,0x00000338,0x00000007,0x0004003b,0x00000007,0x0000033b, + 0x00000007,0x0004003b,0x00000013,0x0000033c,0x00000007,0x0004003b,0x00000007,0x0000033f, + 0x00000007,0x0004003b,0x00000013,0x00000340,0x00000007,0x0004003b,0x00000007,0x00000343, + 0x00000007,0x0004003b,0x00000007,0x00000349,0x00000007,0x0004003b,0x00000007,0x0000034a, + 0x00000007,0x0004003b,0x00000007,0x0000034d,0x00000007,0x0004003b,0x00000007,0x0000034e, + 0x00000007,0x0004003b,0x00000007,0x00000351,0x00000007,0x0004003b,0x00000007,0x00000355, + 0x00000007,0x0004003b,0x00000007,0x00000359,0x00000007,0x0004003b,0x00000007,0x0000035b, + 0x00000007,0x0004003b,0x00000007,0x0000035f,0x00000007,0x0004003d,0x00000012,0x0000032c, + 0x000000bb,0x0004003d,0x00000012,0x0000032d,0x000000bc,0x00050081,0x00000012,0x0000032e, + 0x0000032c,0x0000032d,0x00040039,0x00000035,0x0000032f,0x00000037,0x0004006f,0x00000012, + 0x00000330,0x0000032f,0x00050085,0x00000012,0x00000331,0x0000032e,0x00000330,0x0004006e, + 0x00000035,0x00000332,0x00000331,0x0003003e,0x0000032b,0x00000332,0x0004003d,0x00000035, + 0x00000335,0x0000032b,0x0003003e,0x00000334,0x00000335,0x00050039,0x00000006,0x00000336, + 0x00000072,0x00000334,0x0003003e,0x00000333,0x00000336,0x0004003d,0x00000035,0x00000339, + 0x0000032b,0x0003003e,0x00000338,0x00000339,0x00050039,0x00000012,0x0000033a,0x0000006f, + 0x00000338,0x0003003e,0x00000337,0x0000033a,0x0004003d,0x00000012,0x0000033d,0x00000337, + 0x0003003e,0x0000033c,0x0000033d,0x00050039,0x00000006,0x0000033e,0x00000084,0x0000033c, + 0x0003003e,0x0000033b,0x0000033e,0x0004003d,0x00000012,0x00000341,0x000000bc,0x0003003e, + 0x00000340,0x00000341,0x00050039,0x00000006,0x00000342,0x00000084,0x00000340,0x0003003e, + 0x0000033f,0x00000342,0x0004003d,0x00000012,0x00000344,0x000000bc,0x0006000c,0x00000006, + 0x00000345,0x00000001,0x00000042,0x00000344,0x0004003d,0x00000012,0x00000346,0x00000337, + 0x0006000c,0x00000006,0x00000347,0x00000001,0x00000042,0x00000346,0x0007000c,0x00000006, + 0x00000348,0x00000001,0x00000028,0x00000345,0x00000347,0x0003003e,0x00000343,0x00000348, + 0x0004003d,0x00000006,0x0000034b,0x00000333,0x0003003e,0x0000034a,0x0000034b,0x00050039, + 0x00000006,0x0000034c,0x000000a9,0x0000034a,0x0003003e,0x00000349,0x0000034c,0x0004003d, + 0x00000006,0x0000034f,0x000000bd,0x0003003e,0x0000034e,0x0000034f,0x00050039,0x00000006, + 0x00000350,0x000000a9,0x0000034e,0x0003003e,0x0000034d,0x00000350,0x0004003d,0x00000006, + 0x00000352,0x00000349,0x0004003d,0x00000006,0x00000353,0x0000034d,0x00060039,0x00000006, + 0x00000354,0x00000089,0x00000352,0x00000353,0x0003003e,0x00000351,0x00000354,0x0004003d, + 0x00000006,0x00000356,0x0000033f,0x00050088,0x00000006,0x00000358,0x00000356,0x00000357, + 0x0003003e,0x00000359,0x00000358,0x00050039,0x00000006,0x0000035a,0x00000010,0x00000359, + 0x0003003e,0x00000355,0x0000035a,0x0004003d,0x00000006,0x0000035c,0x0000033b,0x0004003d, + 0x00000006,0x0000035d,0x0000033f,0x00050088,0x00000006,0x0000035e,0x0000035c,0x0000035d, + 0x0003003e,0x0000035f,0x0000035e,0x00050039,0x00000006,0x00000360,0x00000010,0x0000035f, + 0x00050083,0x00000006,0x00000361,0x000000e3,0x00000360,0x0004003d,0x00000006,0x00000362, + 0x00000351,0x00050085,0x00000006,0x00000363,0x00000361,0x00000362,0x0004003d,0x00000006, + 0x00000364,0x00000355,0x00050085,0x00000006,0x00000365,0x00000363,0x00000364,0x0003003e, + 0x0000035b,0x00000365,0x0004003d,0x00000006,0x00000366,0x0000035b,0x000200fe,0x00000366, + 0x00010038,0x00050036,0x00000006,0x000000c3,0x00000000,0x000000c0,0x00030037,0x0000004d, + 0x000000c1,0x00030037,0x00000013,0x000000c2,0x000200f8,0x000000c4,0x0004003b,0x00000007, + 0x00000369,0x00000007,0x0004003b,0x00000023,0x0000036a,0x00000007,0x0004003b,0x00000023, + 0x00000373,0x00000007,0x0004003b,0x0000004d,0x0000037b,0x00000007,0x0004003b,0x0000004d, + 0x00000380,0x00000007,0x0004003b,0x0000004d,0x00000382,0x00000007,0x0004003b,0x0000004d, + 0x00000383,0x00000007,0x0004003b,0x0000004d,0x00000385,0x00000007,0x0004003b,0x00000007, + 0x00000388,0x00000007,0x0004003b,0x00000007,0x0000038a,0x00000007,0x0003003e,0x00000369, + 0x000000e2,0x0003003e,0x0000036a,0x0000036b,0x000200f9,0x0000036c,0x000200f8,0x0000036c, + 0x000400f6,0x0000036e,0x0000036f,0x00000000,0x000200f9,0x00000370,0x000200f8,0x00000370, + 0x0004003d,0x00000022,0x00000371,0x0000036a,0x000500b3,0x0000008b,0x00000372,0x00000371, + 0x00000112,0x000400fa,0x00000372,0x0000036d,0x0000036e,0x000200f8,0x0000036d,0x0003003e, + 0x00000373,0x0000036b,0x000200f9,0x00000374,0x000200f8,0x00000374,0x000400f6,0x00000376, + 0x00000377,0x00000000,0x000200f9,0x00000378,0x000200f8,0x00000378,0x0004003d,0x00000022, + 0x00000379,0x00000373,0x000500b3,0x0000008b,0x0000037a,0x00000379,0x00000112,0x000400fa, + 0x0000037a,0x00000375,0x00000376,0x000200f8,0x00000375,0x0004003d,0x00000022,0x0000037c, + 0x00000373,0x0004003d,0x00000022,0x0000037d,0x0000036a,0x00050050,0x00000035,0x0000037e, + 0x0000037c,0x0000037d,0x00040039,0x00000035,0x0000037f,0x00000037,0x0004003d,0x00000035, + 0x00000381,0x000000c1,0x0003003e,0x00000380,0x00000381,0x0003003e,0x00000382,0x0000037e, + 0x0003003e,0x00000383,0x0000037f,0x00070039,0x00000035,0x00000384,0x00000094,0x00000380, + 0x00000382,0x00000383,0x0003003e,0x0000037b,0x00000384,0x0004003d,0x00000035,0x00000386, + 0x0000037b,0x0003003e,0x00000385,0x00000386,0x00050039,0x00000006,0x00000387,0x00000050, + 0x00000385,0x0004003d,0x00000006,0x00000389,0x00000369,0x0003003e,0x00000388,0x00000389, + 0x0003003e,0x0000038a,0x00000387,0x00060039,0x00000006,0x0000038b,0x0000002b,0x00000388, + 0x0000038a,0x0003003e,0x00000369,0x0000038b,0x000200f9,0x00000377,0x000200f8,0x00000377, + 0x0004003d,0x00000022,0x0000038c,0x00000373,0x00050080,0x00000022,0x0000038d,0x0000038c, + 0x00000112,0x0003003e,0x00000373,0x0000038d,0x000200f9,0x00000374,0x000200f8,0x00000376, + 0x000200f9,0x0000036f,0x000200f8,0x0000036f,0x0004003d,0x00000022,0x0000038e,0x0000036a, + 0x00050080,0x00000022,0x0000038f,0x0000038e,0x00000112,0x0003003e,0x0000036a,0x0000038f, + 0x000200f9,0x0000036c,0x000200f8,0x0000036e,0x0004003d,0x00000006,0x00000390,0x00000369, + 0x000200fe,0x00000390,0x00010038,0x00050036,0x00000006,0x000000c7,0x00000000,0x000000c0, + 0x00030037,0x0000004d,0x000000c5,0x00030037,0x00000013,0x000000c6,0x000200f8,0x000000c8, + 0x0004003b,0x00000013,0x00000393,0x00000007,0x0004003b,0x00000013,0x00000396,0x00000007, + 0x0004003b,0x0000004d,0x00000398,0x00000007,0x0004003b,0x0000004d,0x00000399,0x00000007, + 0x0004003b,0x00000013,0x0000039b,0x00000007,0x00040039,0x00000035,0x00000394,0x00000037, + 0x00040039,0x00000035,0x00000395,0x00000052,0x0004003d,0x00000012,0x00000397,0x000000c6, + 0x0003003e,0x00000396,0x00000397,0x0003003e,0x00000398,0x00000394,0x0003003e,0x00000399, + 0x00000395,0x00070039,0x00000012,0x0000039a,0x0000009a,0x00000396,0x00000398,0x00000399, + 0x0003003e,0x00000393,0x0000039a,0x0004003d,0x00000012,0x0000039c,0x00000393,0x0003003e, + 0x0000039b,0x0000039c,0x00050039,0x00000006,0x0000039d,0x00000056,0x0000039b,0x000200fe, + 0x0000039d,0x00010038,0x00050036,0x00000006,0x000000ca,0x00000000,0x0000004e,0x00030037, + 0x0000004d,0x000000c9,0x000200f8,0x000000cb,0x0004003b,0x00000007,0x000003a0,0x00000007, + 0x0004003b,0x00000007,0x000003a2,0x00000007,0x0004003b,0x00000023,0x000003a3,0x00000007, + 0x0004003b,0x0000004d,0x000003ac,0x00000007,0x0004003b,0x0000004d,0x000003b7,0x00000007, + 0x0004003b,0x0000004d,0x000003b9,0x00000007,0x0004003b,0x000003ba,0x000003bb,0x00000007, + 0x0004003b,0x0000004d,0x000003be,0x00000007,0x0004003b,0x000003c1,0x000003c2,0x00000007, + 0x0004003b,0x0000004d,0x000003c4,0x00000007,0x0004003b,0x00000007,0x000003cb,0x00000007, + 0x0004003b,0x00000007,0x000003cd,0x00000007,0x0004003b,0x00000007,0x000003d2,0x00000007, + 0x0004003b,0x00000007,0x000003d4,0x00000007,0x0004003b,0x00000007,0x000003da,0x00000007, + 0x0004003b,0x00000007,0x000003db,0x00000007,0x0004003b,0x000003dc,0x000003dd,0x00000007, + 0x0004003b,0x00000023,0x000003de,0x00000007,0x0004003b,0x00000023,0x000003df,0x00000007, + 0x0004003b,0x00000007,0x000003e7,0x00000007,0x0004003b,0x00000007,0x000003fe,0x00000007, + 0x0004003b,0x00000007,0x00000400,0x00000007,0x0004003b,0x00000007,0x00000405,0x00000007, + 0x0004003b,0x00000007,0x00000407,0x00000007,0x0004003b,0x000002be,0x0000040f,0x00000007, + 0x0004003b,0x00000023,0x00000422,0x00000007,0x0004003b,0x00000433,0x00000434,0x00000007, + 0x0004003b,0x00000433,0x00000439,0x00000007,0x0003003e,0x000003a0,0x000003a1,0x0003003e, + 0x000003a2,0x000002f4,0x0003003e,0x000003a3,0x0000010c,0x000200f9,0x000003a4,0x000200f8, + 0x000003a4,0x000400f6,0x000003a6,0x000003a7,0x00000000,0x000200f9,0x000003a8,0x000200f8, + 0x000003a8,0x0004003d,0x00000022,0x000003a9,0x000003a3,0x000500b1,0x0000008b,0x000003ab, + 0x000003a9,0x000003aa,0x000400fa,0x000003ab,0x000003a5,0x000003a6,0x000200f8,0x000003a5, + 0x0004003d,0x00000022,0x000003b5,0x000003a3,0x00040039,0x00000035,0x000003b6,0x00000037, + 0x0004003d,0x00000035,0x000003b8,0x000000c9,0x0003003e,0x000003b7,0x000003b8,0x0003003e, + 0x000003bb,0x000003b4,0x00050041,0x0000004d,0x000003bc,0x000003bb,0x000003b5,0x0004003d, + 0x00000035,0x000003bd,0x000003bc,0x0003003e,0x000003b9,0x000003bd,0x0003003e,0x000003be, + 0x000003b6,0x00070039,0x00000035,0x000003bf,0x00000094,0x000003b7,0x000003b9,0x000003be, + 0x0003003e,0x000003ac,0x000003bf,0x0004003d,0x00000022,0x000003c3,0x000003a3,0x0004003d, + 0x00000035,0x000003c5,0x000003ac,0x0003003e,0x000003c4,0x000003c5,0x00050039,0x00000006, + 0x000003c6,0x00000064,0x000003c4,0x00040039,0x00000006,0x000003c7,0x00000074,0x00050085, + 0x00000006,0x000003c8,0x000003c6,0x000003c7,0x00050041,0x00000007,0x000003c9,0x000003c2, + 0x000003c3,0x0003003e,0x000003c9,0x000003c8,0x0004003d,0x00000022,0x000003ca,0x000003a3, + 0x0004003d,0x00000006,0x000003cc,0x000003a0,0x0003003e,0x000003cb,0x000003cc,0x00050041, + 0x00000007,0x000003ce,0x000003c2,0x000003ca,0x0004003d,0x00000006,0x000003cf,0x000003ce, + 0x0003003e,0x000003cd,0x000003cf,0x00060039,0x00000006,0x000003d0,0x0000001b,0x000003cb, + 0x000003cd,0x0003003e,0x000003a0,0x000003d0,0x0004003d,0x00000022,0x000003d1,0x000003a3, + 0x0004003d,0x00000006,0x000003d3,0x000003a2,0x0003003e,0x000003d2,0x000003d3,0x00050041, + 0x00000007,0x000003d5,0x000003c2,0x000003d1,0x0004003d,0x00000006,0x000003d6,0x000003d5, + 0x0003003e,0x000003d4,0x000003d6,0x00060039,0x00000006,0x000003d7,0x0000002b,0x000003d2, + 0x000003d4,0x0003003e,0x000003a2,0x000003d7,0x000200f9,0x000003a7,0x000200f8,0x000003a7, + 0x0004003d,0x00000022,0x000003d8,0x000003a3,0x00050080,0x00000022,0x000003d9,0x000003d8, + 0x00000112,0x0003003e,0x000003a3,0x000003d9,0x000200f9,0x000003a4,0x000200f8,0x000003a6, + 0x0003003e,0x000003da,0x000003a1,0x0003003e,0x000003db,0x000000e2,0x0003003e,0x000003dd, + 0x000001f0,0x0003003e,0x000003de,0x00000112,0x0003003e,0x000003df,0x00000112,0x000200f9, + 0x000003e0,0x000200f8,0x000003e0,0x000400f6,0x000003e2,0x000003e3,0x00000000,0x000200f9, + 0x000003e4,0x000200f8,0x000003e4,0x0004003d,0x00000022,0x000003e5,0x000003df,0x000500b1, + 0x0000008b,0x000003e6,0x000003e5,0x000003aa,0x000400fa,0x000003e6,0x000003e1,0x000003e2, + 0x000200f8,0x000003e1,0x0004003d,0x00000022,0x000003e8,0x000003df,0x00050041,0x00000007, + 0x000003e9,0x000003c2,0x000003e8,0x0004003d,0x00000006,0x000003ea,0x000003e9,0x00050041, + 0x00000007,0x000003eb,0x000003c2,0x0000010c,0x0004003d,0x00000006,0x000003ec,0x000003eb, + 0x00050083,0x00000006,0x000003ed,0x000003ea,0x000003ec,0x0006000c,0x00000006,0x000003ee, + 0x00000001,0x00000004,0x000003ed,0x0004003d,0x00000006,0x000003ef,0x000003a2,0x0004003d, + 0x00000006,0x000003f0,0x000003a0,0x00050083,0x00000006,0x000003f1,0x000003ef,0x000003f0, + 0x00050088,0x00000006,0x000003f2,0x000003ee,0x000003f1,0x0003003e,0x000003e7,0x000003f2, + 0x0004003d,0x00000006,0x000003f3,0x000003e7,0x000500b8,0x0000008b,0x000003f5,0x000003f3, + 0x000003f4,0x000300f7,0x000003f7,0x00000000,0x000400fa,0x000003f5,0x000003f6,0x000003fc, + 0x000200f8,0x000003f6,0x0004003d,0x00000022,0x000003f8,0x000003de,0x000500c4,0x000000ab, + 0x000003f9,0x000001f0,0x000003f8,0x0004003d,0x000000ab,0x000003fa,0x000003dd,0x000500c5, + 0x000000ab,0x000003fb,0x000003fa,0x000003f9,0x0003003e,0x000003dd,0x000003fb,0x000200f9, + 0x000003f7,0x000200f8,0x000003fc,0x0004003d,0x00000022,0x000003fd,0x000003df,0x0004003d, + 0x00000006,0x000003ff,0x000003da,0x0003003e,0x000003fe,0x000003ff,0x00050041,0x00000007, + 0x00000401,0x000003c2,0x000003fd,0x0004003d,0x00000006,0x00000402,0x00000401,0x0003003e, + 0x00000400,0x00000402,0x00060039,0x00000006,0x00000403,0x0000001b,0x000003fe,0x00000400, + 0x0003003e,0x000003da,0x00000403,0x0004003d,0x00000022,0x00000404,0x000003df,0x0004003d, + 0x00000006,0x00000406,0x000003db,0x0003003e,0x00000405,0x00000406,0x00050041,0x00000007, + 0x00000408,0x000003c2,0x00000404,0x0004003d,0x00000006,0x00000409,0x00000408,0x0003003e, + 0x00000407,0x00000409,0x00060039,0x00000006,0x0000040a,0x0000002b,0x00000405,0x00000407, + 0x0003003e,0x000003db,0x0000040a,0x000200f9,0x000003f7,0x000200f8,0x000003f7,0x000200f9, + 0x000003e3,0x000200f8,0x000003e3,0x0004003d,0x00000022,0x0000040b,0x000003df,0x00050080, + 0x00000022,0x0000040c,0x0000040b,0x00000112,0x0003003e,0x000003df,0x0000040c,0x0004003d, + 0x00000022,0x0000040d,0x000003de,0x00050080,0x00000022,0x0000040e,0x0000040d,0x00000112, + 0x0003003e,0x000003de,0x0000040e,0x000200f9,0x000003e0,0x000200f8,0x000003e2,0x00050041, + 0x00000007,0x00000410,0x000003c2,0x0000010c,0x0004003d,0x00000006,0x00000411,0x00000410, + 0x0004003d,0x00000006,0x00000412,0x000003db,0x000500ba,0x0000008b,0x00000413,0x00000411, + 0x00000412,0x000400a8,0x0000008b,0x00000414,0x00000413,0x000300f7,0x00000416,0x00000000, + 0x000400fa,0x00000414,0x00000415,0x00000416,0x000200f8,0x00000415,0x00050041,0x00000007, + 0x00000417,0x000003c2,0x0000010c,0x0004003d,0x00000006,0x00000418,0x00000417,0x0004003d, + 0x00000006,0x00000419,0x000003da,0x000500b8,0x0000008b,0x0000041a,0x00000418,0x00000419, + 0x000200f9,0x00000416,0x000200f8,0x00000416,0x000700f5,0x0000008b,0x0000041b,0x00000413, + 0x000003e2,0x0000041a,0x00000415,0x0003003e,0x0000040f,0x0000041b,0x0004003d,0x0000008b, + 0x0000041d,0x0000040f,0x000500a4,0x0000008b,0x0000041e,0x0000041c,0x0000041d,0x000300f7, + 0x00000420,0x00000000,0x000400fa,0x0000041e,0x0000041f,0x00000420,0x000200f8,0x0000041f, + 0x000200fe,0x000000e2,0x000200f8,0x00000420,0x0003003e,0x00000422,0x0000010c,0x000200f9, + 0x00000423,0x000200f8,0x00000423,0x000400f6,0x00000425,0x00000426,0x00000000,0x000200f9, + 0x00000427,0x000200f8,0x00000427,0x0004003d,0x00000022,0x00000428,0x00000422,0x0004007c, + 0x000000ab,0x00000429,0x00000428,0x000500b0,0x0000008b,0x0000042a,0x00000429,0x000000ac, + 0x000400fa,0x0000042a,0x00000424,0x00000425,0x000200f8,0x00000424,0x0004003d,0x000000ab, + 0x0000042b,0x000003dd,0x0004003d,0x00000022,0x00000432,0x00000422,0x0003003e,0x00000434, + 0x00000431,0x00050041,0x000003dc,0x00000435,0x00000434,0x00000432,0x0004003d,0x000000ab, + 0x00000436,0x00000435,0x000500c7,0x000000ab,0x00000437,0x0000042b,0x00000436,0x0004003d, + 0x00000022,0x00000438,0x00000422,0x0003003e,0x00000439,0x00000431,0x00050041,0x000003dc, + 0x0000043a,0x00000439,0x00000438,0x0004003d,0x000000ab,0x0000043b,0x0000043a,0x000500aa, + 0x0000008b,0x0000043c,0x00000437,0x0000043b,0x000300f7,0x0000043e,0x00000000,0x000400fa, + 0x0000043c,0x0000043d,0x0000043e,0x000200f8,0x0000043d,0x000200fe,0x000000e2,0x000200f8, + 0x0000043e,0x000200f9,0x00000426,0x000200f8,0x00000426,0x0004003d,0x00000022,0x00000440, + 0x00000422,0x00050080,0x00000022,0x00000441,0x00000440,0x00000112,0x0003003e,0x00000422, + 0x00000441,0x000200f9,0x00000423,0x000200f8,0x00000425,0x0004003d,0x00000006,0x00000442, + 0x000003a0,0x0004003d,0x00000006,0x00000443,0x000003a2,0x00050088,0x00000006,0x00000444, + 0x00000442,0x00000443,0x00050083,0x00000006,0x00000445,0x000000e3,0x00000444,0x000200fe, + 0x00000445,0x00010038,0x00050036,0x00000006,0x000000d2,0x00000000,0x000000cc,0x00030037, + 0x0000004d,0x000000cd,0x00030037,0x00000013,0x000000ce,0x00030037,0x00000013,0x000000cf, + 0x00030037,0x00000007,0x000000d0,0x00030037,0x00000007,0x000000d1,0x000200f8,0x000000d3, + 0x0004003b,0x00000013,0x00000448,0x00000007,0x0004003b,0x00000007,0x0000044c,0x00000007, + 0x0004003b,0x00000013,0x0000044d,0x00000007,0x0004003b,0x00000013,0x00000452,0x00000007, + 0x0004003b,0x00000013,0x00000455,0x00000007,0x0004003b,0x0000004d,0x00000457,0x00000007, + 0x0004003b,0x0000004d,0x00000458,0x00000007,0x0004003b,0x00000013,0x0000045a,0x00000007, + 0x0004003b,0x00000007,0x0000045d,0x00000007,0x0004003b,0x00000007,0x0000045f,0x00000007, + 0x0004003b,0x00000007,0x00000461,0x00000007,0x0004003b,0x00000007,0x00000463,0x00000007, + 0x0004003b,0x00000007,0x00000464,0x00000007,0x0004003b,0x00000007,0x00000467,0x00000007, + 0x0004003b,0x00000007,0x00000469,0x00000007,0x0004003b,0x00000007,0x0000046b,0x00000007, + 0x0004003b,0x00000007,0x0000046e,0x00000007,0x0004003b,0x00000007,0x00000470,0x00000007, + 0x0004003b,0x00000007,0x00000471,0x00000007,0x0004003b,0x00000007,0x0000047b,0x00000007, + 0x0004003b,0x00000007,0x0000047f,0x00000007,0x0004003b,0x0000004d,0x00000481,0x00000007, + 0x0004003b,0x00000007,0x00000483,0x00000007,0x0004003d,0x00000012,0x00000449,0x000000ce, + 0x0004003d,0x00000012,0x0000044a,0x000000cf,0x00050081,0x00000012,0x0000044b,0x00000449, + 0x0000044a,0x0003003e,0x00000448,0x0000044b,0x0003003e,0x0000044c,0x000000e2,0x0004003d, + 0x00000012,0x0000044e,0x00000448,0x0003003e,0x0000044d,0x0000044e,0x00050039,0x0000008b, + 0x0000044f,0x0000008e,0x0000044d,0x000300f7,0x00000451,0x00000000,0x000400fa,0x0000044f, + 0x00000450,0x00000451,0x000200f8,0x00000450,0x00040039,0x00000035,0x00000453,0x00000039, + 0x00040039,0x00000035,0x00000454,0x0000003b,0x0004003d,0x00000012,0x00000456,0x00000448, + 0x0003003e,0x00000455,0x00000456,0x0003003e,0x00000457,0x00000453,0x0003003e,0x00000458, + 0x00000454,0x00070039,0x00000012,0x00000459,0x0000009a,0x00000455,0x00000457,0x00000458, + 0x0003003e,0x00000452,0x00000459,0x0004003d,0x00000012,0x0000045b,0x00000452,0x0003003e, + 0x0000045a,0x0000045b,0x00050039,0x00000006,0x0000045c,0x00000059,0x0000045a,0x0003003e, + 0x0000045d,0x0000045c,0x00050039,0x00000006,0x0000045e,0x00000010,0x0000045d,0x0003003e, + 0x0000044c,0x0000045e,0x000200f9,0x00000451,0x000200f8,0x00000451,0x00040039,0x00000006, + 0x00000460,0x00000049,0x0003003e,0x0000045f,0x00000460,0x0004003d,0x00000006,0x00000462, + 0x0000044c,0x0003003e,0x00000461,0x00000462,0x0003003e,0x00000463,0x000000e2,0x0004003d, + 0x00000006,0x00000465,0x000000d1,0x0003003e,0x00000464,0x00000465,0x00070039,0x00000006, + 0x00000466,0x0000000c,0x00000461,0x00000463,0x00000464,0x0003003e,0x0000044c,0x00000466, + 0x00040039,0x00000006,0x00000468,0x0000004b,0x0003003e,0x00000467,0x00000468,0x0004003d, + 0x00000006,0x0000046a,0x00000467,0x0003003e,0x00000469,0x0000046a,0x0004003d,0x00000006, + 0x0000046c,0x0000044c,0x0003003e,0x0000046b,0x0000046c,0x00060039,0x00000006,0x0000046d, + 0x0000001b,0x00000469,0x0000046b,0x0004003d,0x00000006,0x0000046f,0x0000044c,0x0003003e, + 0x0000046e,0x0000046f,0x0003003e,0x00000470,0x0000046d,0x0004003d,0x00000006,0x00000472, + 0x000000d0,0x0003003e,0x00000471,0x00000472,0x00070039,0x00000006,0x00000473,0x0000000c, + 0x0000046e,0x00000470,0x00000471,0x0003003e,0x0000044c,0x00000473,0x0004003d,0x00000006, + 0x00000474,0x0000044c,0x00050085,0x00000006,0x00000475,0x00000474,0x000001b4,0x0006000c, + 0x00000006,0x00000476,0x00000001,0x00000001,0x00000475,0x000500ba,0x0000008b,0x00000477, + 0x00000476,0x000000e3,0x000600a9,0x00000006,0x00000478,0x00000477,0x000000e3,0x000000e2, + 0x0004003d,0x00000006,0x00000479,0x0000044c,0x00050085,0x00000006,0x0000047a,0x00000479, + 0x00000478,0x0003003e,0x0000044c,0x0000047a,0x0004003d,0x00000006,0x0000047c,0x0000044c, + 0x0004003d,0x00000006,0x0000047d,0x0000045f,0x00050081,0x00000006,0x0000047e,0x0000047c, + 0x0000047d,0x0003003e,0x0000047f,0x0000047e,0x00050039,0x00000006,0x00000480,0x00000010, + 0x0000047f,0x0003003e,0x0000047b,0x00000480,0x0004003d,0x00000035,0x00000482,0x000000cd, + 0x0003003e,0x00000481,0x00000482,0x0004003d,0x00000006,0x00000484,0x0000047b,0x0003003e, + 0x00000483,0x00000484,0x00060039,0x00000002,0x00000485,0x0000005e,0x00000481,0x00000483, + 0x0004003d,0x00000006,0x00000486,0x0000044c,0x000200fe,0x00000486,0x00010038,0x00050036, + 0x00000006,0x000000d5,0x00000000,0x00000054,0x00030037,0x00000013,0x000000d4,0x000200f8, + 0x000000d6,0x0004003b,0x00000013,0x00000489,0x00000007,0x0004003b,0x00000013,0x00000492, + 0x00000007,0x0004003b,0x0000004d,0x00000493,0x00000007,0x0004003b,0x0000004d,0x00000494, + 0x00000007,0x0004003b,0x00000007,0x00000496,0x00000007,0x0004003b,0x00000013,0x00000497, + 0x00000007,0x0004003b,0x00000007,0x0000049a,0x00000007,0x0004003d,0x00000012,0x0000048a, + 0x000000d4,0x00040039,0x00000012,0x0000048b,0x00000040,0x00040039,0x00000035,0x0000048c, + 0x00000037,0x0004006f,0x00000012,0x0000048d,0x0000048c,0x00050088,0x00000012,0x0000048e, + 0x0000048b,0x0000048d,0x00050083,0x00000012,0x0000048f,0x0000048a,0x0000048e,0x00040039, + 0x00000035,0x00000490,0x0000007f,0x00040039,0x00000035,0x00000491,0x00000081,0x0003003e, + 0x00000492,0x0000048f,0x0003003e,0x00000493,0x00000490,0x0003003e,0x00000494,0x00000491, + 0x00070039,0x00000012,0x00000495,0x0000009a,0x00000492,0x00000493,0x00000494,0x0003003e, + 0x00000489,0x00000495,0x0004003d,0x00000012,0x00000498,0x00000489,0x0003003e,0x00000497, + 0x00000498,0x00050039,0x00000006,0x00000499,0x00000061,0x00000497,0x0003003e,0x0000049a, + 0x00000499,0x00050039,0x00000006,0x0000049b,0x00000010,0x0000049a,0x0003003e,0x00000496, + 0x0000049b,0x0004003d,0x00000006,0x0000049c,0x00000496,0x000200fe,0x0000049c,0x00010038, + 0x00050036,0x00000002,0x000000d9,0x00000000,0x000000d7,0x00030037,0x0000004d,0x000000d8, + 0x000200f8,0x000000da,0x0004003b,0x00000013,0x0000049f,0x00000007,0x0004003b,0x00000013, + 0x000004a7,0x00000007,0x0004003b,0x0000004d,0x000004a8,0x00000007,0x0004003b,0x00000007, + 0x000004ab,0x00000007,0x0004003b,0x00000013,0x000004ac,0x00000007,0x0004003b,0x00000013, + 0x000004af,0x00000007,0x0004003b,0x00000007,0x000004b3,0x00000007,0x0004003b,0x0000004d, + 0x000004b4,0x00000007,0x0004003b,0x00000007,0x000004b7,0x00000007,0x0004003b,0x00000007, + 0x000004b8,0x00000007,0x0004003b,0x00000007,0x000004bb,0x00000007,0x0004003b,0x00000007, + 0x000004bc,0x00000007,0x0004003b,0x00000013,0x000004bf,0x00000007,0x0004003b,0x00000013, + 0x000004c1,0x00000007,0x0004003b,0x00000007,0x000004c3,0x00000007,0x0004003b,0x00000007, + 0x000004c5,0x00000007,0x0004003b,0x0000004d,0x000004c6,0x00000007,0x0004003b,0x00000013, + 0x000004c8,0x00000007,0x0004003b,0x00000013,0x000004cb,0x00000007,0x0004003b,0x00000007, + 0x000004ce,0x00000007,0x0004003b,0x00000007,0x000004cf,0x00000007,0x0004003b,0x00000007, + 0x000004d1,0x00000007,0x0004003b,0x00000013,0x000004d2,0x00000007,0x0004003b,0x00000013, + 0x000004d4,0x00000007,0x0004003b,0x00000007,0x000004d6,0x00000007,0x0004003b,0x00000007, + 0x000004d9,0x00000007,0x0004003b,0x0000004d,0x000004da,0x00000007,0x0004003b,0x00000013, + 0x000004dc,0x00000007,0x0004003b,0x00000007,0x000004df,0x00000007,0x0004003b,0x00000007, + 0x000004e0,0x00000007,0x0004003b,0x00000007,0x000004e2,0x00000007,0x0004003b,0x00000007, + 0x000004e5,0x00000007,0x0004003b,0x0000004d,0x000004e6,0x00000007,0x0004003b,0x00000013, + 0x000004e8,0x00000007,0x0004003b,0x00000013,0x000004ea,0x00000007,0x0004003b,0x00000007, + 0x000004ec,0x00000007,0x0004003b,0x00000007,0x000004ee,0x00000007,0x0004003b,0x00000076, + 0x000004f1,0x00000007,0x0004003b,0x0000004d,0x000004fc,0x00000007,0x0004003b,0x00000076, + 0x000004fe,0x00000007,0x0004003b,0x00000007,0x00000501,0x00000007,0x0004003b,0x0000004d, + 0x00000502,0x00000007,0x0004003b,0x0000004d,0x0000050b,0x00000007,0x0004003b,0x0000004d, + 0x0000050d,0x00000007,0x0004003b,0x00000007,0x0000050e,0x00000007,0x0004003d,0x00000035, + 0x000004a0,0x000000d8,0x0004006f,0x00000012,0x000004a1,0x000004a0,0x00050050,0x00000012, + 0x000004a2,0x000001c0,0x000001c0,0x00050081,0x00000012,0x000004a3,0x000004a1,0x000004a2, + 0x00040039,0x00000035,0x000004a4,0x00000037,0x0004006f,0x00000012,0x000004a5,0x000004a4, + 0x00050088,0x00000012,0x000004a6,0x000004a3,0x000004a5,0x0003003e,0x0000049f,0x000004a6, + 0x0004003d,0x00000035,0x000004a9,0x000000d8,0x0003003e,0x000004a8,0x000004a9,0x00050039, + 0x00000012,0x000004aa,0x0000006f,0x000004a8,0x0003003e,0x000004a7,0x000004aa,0x0004003d, + 0x00000012,0x000004ad,0x000004a7,0x0003003e,0x000004ac,0x000004ad,0x00050039,0x00000006, + 0x000004ae,0x00000084,0x000004ac,0x0003003e,0x000004ab,0x000004ae,0x0004003d,0x00000012, + 0x000004b0,0x0000049f,0x0004003d,0x00000012,0x000004b1,0x000004a7,0x00050081,0x00000012, + 0x000004b2,0x000004b0,0x000004b1,0x0003003e,0x000004af,0x000004b2,0x0004003d,0x00000035, + 0x000004b5,0x000000d8,0x0003003e,0x000004b4,0x000004b5,0x00050039,0x00000006,0x000004b6, + 0x00000072,0x000004b4,0x0003003e,0x000004b3,0x000004b6,0x0004003d,0x00000006,0x000004b9, + 0x000004b3,0x0003003e,0x000004b8,0x000004b9,0x00050039,0x00000006,0x000004ba,0x000000a9, + 0x000004b8,0x0003003e,0x000004b7,0x000004ba,0x0004003d,0x00000006,0x000004bd,0x000004b3, + 0x0003003e,0x000004bc,0x000004bd,0x00050039,0x00000006,0x000004be,0x000000a6,0x000004bc, + 0x0004003d,0x00000012,0x000004c0,0x0000049f,0x0003003e,0x000004bf,0x000004c0,0x0004003d, + 0x00000012,0x000004c2,0x000004a7,0x0003003e,0x000004c1,0x000004c2,0x0003003e,0x000004c3, + 0x000004be,0x00070039,0x00000006,0x000004c4,0x000000b9,0x000004bf,0x000004c1,0x000004c3, + 0x0003003e,0x000004bb,0x000004c4,0x0004003d,0x00000035,0x000004c7,0x000000d8,0x0003003e, + 0x000004c6,0x000004c7,0x0004003d,0x00000012,0x000004c9,0x0000049f,0x0003003e,0x000004c8, + 0x000004c9,0x00060039,0x00000006,0x000004ca,0x000000c3,0x000004c6,0x000004c8,0x0004003d, + 0x00000012,0x000004cc,0x0000049f,0x0003003e,0x000004cb,0x000004cc,0x00050039,0x00000006, + 0x000004cd,0x000000d5,0x000004cb,0x0003003e,0x000004ce,0x000004ca,0x0003003e,0x000004cf, + 0x000004cd,0x00060039,0x00000006,0x000004d0,0x0000002b,0x000004ce,0x000004cf,0x0003003e, + 0x000004c5,0x000004d0,0x0004003d,0x00000012,0x000004d3,0x0000049f,0x0003003e,0x000004d2, + 0x000004d3,0x0004003d,0x00000012,0x000004d5,0x000004a7,0x0003003e,0x000004d4,0x000004d5, + 0x0004003d,0x00000006,0x000004d7,0x000004b3,0x0003003e,0x000004d6,0x000004d7,0x00070039, + 0x00000006,0x000004d8,0x000000be,0x000004d2,0x000004d4,0x000004d6,0x0003003e,0x000004d1, + 0x000004d8,0x0004003d,0x00000035,0x000004db,0x000000d8,0x0003003e,0x000004da,0x000004db, + 0x0004003d,0x00000012,0x000004dd,0x0000049f,0x0003003e,0x000004dc,0x000004dd,0x00060039, + 0x00000006,0x000004de,0x000000c7,0x000004da,0x000004dc,0x0003003e,0x000004d9,0x000004de, + 0x0004003d,0x00000006,0x000004e1,0x000004d1,0x0003003e,0x000004e0,0x000004e1,0x0004003d, + 0x00000006,0x000004e3,0x000004d9,0x0003003e,0x000004e2,0x000004e3,0x00060039,0x00000006, + 0x000004e4,0x0000002b,0x000004e0,0x000004e2,0x0003003e,0x000004df,0x000004e4,0x0004003d, + 0x00000035,0x000004e7,0x000000d8,0x0003003e,0x000004e6,0x000004e7,0x0004003d,0x00000012, + 0x000004e9,0x0000049f,0x0003003e,0x000004e8,0x000004e9,0x0004003d,0x00000012,0x000004eb, + 0x000004a7,0x0003003e,0x000004ea,0x000004eb,0x0004003d,0x00000006,0x000004ed,0x000004bb, + 0x0003003e,0x000004ec,0x000004ed,0x0004003d,0x00000006,0x000004ef,0x000004c5,0x0003003e, + 0x000004ee,0x000004ef,0x00090039,0x00000006,0x000004f0,0x000000d2,0x000004e6,0x000004e8, + 0x000004ea,0x000004ec,0x000004ee,0x0003003e,0x000004e5,0x000004f0,0x0004003d,0x00000006, + 0x000004f2,0x000004df,0x00050041,0x00000007,0x000004f3,0x000004f1,0x00000143,0x0003003e, + 0x000004f3,0x000004f2,0x0004003d,0x00000006,0x000004f4,0x000004bb,0x00050041,0x00000007, + 0x000004f5,0x000004f1,0x000001f0,0x0003003e,0x000004f5,0x000004f4,0x0004003d,0x00000006, + 0x000004f6,0x000004c5,0x00050041,0x00000007,0x000004f8,0x000004f1,0x000004f7,0x0003003e, + 0x000004f8,0x000004f6,0x0004003d,0x00000006,0x000004f9,0x000004e5,0x00050041,0x00000007, + 0x000004fb,0x000004f1,0x000004fa,0x0003003e,0x000004fb,0x000004f9,0x0004003d,0x00000035, + 0x000004fd,0x000000d8,0x0003003e,0x000004fc,0x000004fd,0x0004003d,0x00000042,0x000004ff, + 0x000004f1,0x0003003e,0x000004fe,0x000004ff,0x00060039,0x00000002,0x00000500,0x0000007a, + 0x000004fc,0x000004fe,0x0004003d,0x00000035,0x00000503,0x000000d8,0x0003003e,0x00000502, + 0x00000503,0x00050039,0x00000006,0x00000504,0x000000ca,0x00000502,0x0003003e,0x00000501, + 0x00000504,0x0004003d,0x00000006,0x00000505,0x00000501,0x000500ba,0x0000008b,0x00000507, + 0x00000505,0x00000506,0x000300f7,0x00000509,0x00000000,0x000400fa,0x00000507,0x00000508, + 0x00000509,0x000200f8,0x00000508,0x0004003d,0x00000035,0x0000050a,0x000000d8,0x0003003e, + 0x0000050b,0x0000050a,0x00050039,0x00000035,0x0000050c,0x000000a3,0x0000050b,0x0003003e, + 0x0000050d,0x0000050c,0x0004003d,0x00000006,0x0000050f,0x00000501,0x0003003e,0x0000050e, + 0x0000050f,0x00060039,0x00000002,0x00000510,0x00000068,0x0000050d,0x0000050e,0x000200f9, + 0x00000509,0x000200f8,0x00000509,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_rcas_comp_spv.h b/gpu/vk/shaders/fsr3_rcas_comp_spv.h new file mode 100644 index 000000000..90f455760 --- /dev/null +++ b/gpu/vk/shaders/fsr3_rcas_comp_spv.h @@ -0,0 +1,694 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_RCAS_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000033d,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000038,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0008000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000031e, + 0x0000031f,0x00000320,0x00060010,0x00000004,0x00000011,0x00000040,0x00000001,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x455f4c47,0x735f5458,0x65646168,0x6d695f72,0x5f656761,0x64616f6c, + 0x726f665f,0x7474616d,0x00006465,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70, + 0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f, + 0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d, + 0x00000000,0x00060005,0x0000000b,0x41786666,0x6f6c4673,0x75287461,0x00003b31,0x00030005, + 0x0000000a,0x00000078,0x00060005,0x00000010,0x41786666,0x6e495573,0x28323374,0x003b3166, + 0x00030005,0x0000000f,0x00000078,0x000a0005,0x00000016,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000013,0x00637273, + 0x00030005,0x00000014,0x0066666f,0x00040005,0x00000015,0x73746962,0x00000000,0x000a0005, + 0x0000001b,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x00000018,0x00637273,0x00030005,0x00000019,0x00736e69,0x00040005, + 0x0000001a,0x73746962,0x00000000,0x00070005,0x00000021,0x4d786666,0x28337861,0x663b3166, + 0x31663b31,0x0000003b,0x00030005,0x0000001e,0x00000078,0x00030005,0x0000001f,0x00000079, + 0x00030005,0x00000020,0x0000007a,0x00070005,0x00000026,0x4d786666,0x28336e69,0x663b3166, + 0x31663b31,0x0000003b,0x00030005,0x00000023,0x00000078,0x00030005,0x00000024,0x00000079, + 0x00030005,0x00000025,0x0000007a,0x00070005,0x0000002a,0x52786666,0x70696365,0x61636f72, + 0x3166286c,0x0000003b,0x00030005,0x00000029,0x00000078,0x00060005,0x0000002d,0x53786666, + 0x72757461,0x28657461,0x003b3166,0x00030005,0x0000002c,0x00000078,0x00060005,0x00000032, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000030,0x00000078,0x00030005, + 0x00000031,0x00000079,0x000b0005,0x00000035,0x41786666,0x6f727070,0x616d6978,0x65526574, + 0x72706963,0x6c61636f,0x6964654d,0x66286d75,0x00003b31,0x00040005,0x00000034,0x756c6176, + 0x00000065,0x00070005,0x0000003a,0x52786666,0x70616d65,0x51726f46,0x28646175,0x003b3175, + 0x00030005,0x00000039,0x00000061,0x00050005,0x0000003e,0x53414352,0x666e6f43,0x00286769, + 0x00070005,0x00000046,0x64616f4c,0x53414352,0x706e495f,0x76287475,0x003b3269,0x00040005, + 0x00000045,0x50785069,0x0000736f,0x000a0005,0x0000004d,0x726f7453,0x73705565,0x656c6163, + 0x74754f64,0x28747570,0x3b326976,0x3b336676,0x00000000,0x00040005,0x0000004b,0x50785069, + 0x0000736f,0x00040005,0x0000004c,0x6c6f4366,0x0000726f,0x00050005,0x00000050,0x6f707845, + 0x65727573,0x00000028,0x000a0005,0x00000056,0x74697257,0x73705565,0x656c6163,0x74754f64, + 0x28747570,0x3b327576,0x3b336676,0x00000000,0x00050005,0x00000054,0x48785069,0x736f5072, + 0x00000000,0x00060005,0x00000055,0x73705566,0x656c6163,0x6c6f4364,0x0000726f,0x00070005, + 0x00000059,0x52727346,0x4c736163,0x4664616f,0x32697628,0x0000003b,0x00030005,0x00000058, + 0x00000070,0x00080005,0x0000005f,0x52727346,0x49736163,0x7475706e,0x31662846,0x3b31663b, + 0x003b3166,0x00030005,0x0000005c,0x00000072,0x00030005,0x0000005d,0x00000067,0x00030005, + 0x0000005e,0x00000062,0x00090005,0x00000068,0x52727346,0x46736163,0x3b316628,0x663b3166, + 0x75763b31,0x75763b32,0x00003b34,0x00040005,0x00000063,0x52786970,0x00000000,0x00040005, + 0x00000064,0x47786970,0x00000000,0x00040005,0x00000065,0x42786970,0x00000000,0x00030005, + 0x00000066,0x00007069,0x00030005,0x00000067,0x006e6f63,0x00060005,0x0000006c,0x72727543, + 0x746c6946,0x76287265,0x003b3275,0x00030005,0x0000006b,0x00736f70,0x00070005,0x00000074, + 0x53414352,0x33757628,0x3375763b,0x3375763b,0x0000003b,0x00060005,0x00000071,0x61636f4c, + 0x7268546c,0x49646165,0x00000064,0x00050005,0x00000072,0x6b726f57,0x756f7247,0x00644970, + 0x00040005,0x00000073,0x64697444,0x00000000,0x00030005,0x000000ab,0x00000062,0x00040005, + 0x000000ad,0x61726170,0x0000006d,0x00040005,0x000000b1,0x61726170,0x0000006d,0x00040005, + 0x000000bf,0x61726170,0x0000006d,0x00040005,0x000000c1,0x61726170,0x0000006d,0x00040005, + 0x000000c2,0x61726170,0x0000006d,0x00040005,0x000000c4,0x61726170,0x0000006d,0x00040005, + 0x000000c6,0x61726170,0x0000006d,0x00040005,0x000000c7,0x61726170,0x0000006d,0x00040005, + 0x000000c9,0x61726170,0x0000006d,0x00040005,0x000000ca,0x61726170,0x0000006d,0x00040005, + 0x000000cc,0x61726170,0x0000006d,0x00050005,0x000000d1,0x43526263,0x745f5341,0x00000000, + 0x00060006,0x000000d1,0x00000000,0x73616372,0x666e6f43,0x00006769,0x00040005,0x000000d3, + 0x43526263,0x00005341,0x00060005,0x000000db,0x63725f72,0x695f7361,0x7475706e,0x00000000, + 0x00070005,0x000000e3,0x755f7772,0x61637370,0x5f64656c,0x7074756f,0x00007475,0x00050005, + 0x000000eb,0x6f707865,0x65727573,0x00000000,0x00070005,0x000000ec,0x6e695f72,0x5f747570, + 0x6f707865,0x65727573,0x00000000,0x00040005,0x000000fc,0x61726170,0x0000006d,0x00040005, + 0x000000fd,0x61726170,0x0000006d,0x00040005,0x00000101,0x6c6f4366,0x0000726f,0x00040005, + 0x00000102,0x61726170,0x0000006d,0x00030005,0x00000113,0x00007073,0x00030005,0x00000116, + 0x00000062,0x00040005,0x0000011b,0x61726170,0x0000006d,0x00030005,0x0000011e,0x00000064, + 0x00040005,0x00000122,0x61726170,0x0000006d,0x00030005,0x00000125,0x00000065,0x00040005, + 0x00000126,0x61726170,0x0000006d,0x00030005,0x0000012a,0x00000066,0x00040005,0x0000012f, + 0x61726170,0x0000006d,0x00030005,0x00000132,0x00000068,0x00040005,0x00000136,0x61726170, + 0x0000006d,0x00030005,0x00000139,0x00005262,0x00030005,0x0000013c,0x00004762,0x00030005, + 0x0000013f,0x00004262,0x00030005,0x00000142,0x00005264,0x00030005,0x00000145,0x00004764, + 0x00030005,0x00000148,0x00004264,0x00030005,0x0000014b,0x00005265,0x00030005,0x0000014e, + 0x00004765,0x00030005,0x00000151,0x00004265,0x00030005,0x00000154,0x00005266,0x00030005, + 0x00000157,0x00004766,0x00030005,0x0000015a,0x00004266,0x00030005,0x0000015d,0x00005268, + 0x00030005,0x00000160,0x00004768,0x00030005,0x00000163,0x00004268,0x00040005,0x00000166, + 0x61726170,0x0000006d,0x00040005,0x00000168,0x61726170,0x0000006d,0x00040005,0x0000016a, + 0x61726170,0x0000006d,0x00040005,0x00000170,0x61726170,0x0000006d,0x00040005,0x00000172, + 0x61726170,0x0000006d,0x00040005,0x00000174,0x61726170,0x0000006d,0x00040005,0x0000017a, + 0x61726170,0x0000006d,0x00040005,0x0000017c,0x61726170,0x0000006d,0x00040005,0x0000017e, + 0x61726170,0x0000006d,0x00040005,0x00000184,0x61726170,0x0000006d,0x00040005,0x00000186, + 0x61726170,0x0000006d,0x00040005,0x00000188,0x61726170,0x0000006d,0x00040005,0x0000018e, + 0x61726170,0x0000006d,0x00040005,0x00000190,0x61726170,0x0000006d,0x00040005,0x00000192, + 0x61726170,0x0000006d,0x00030005,0x00000198,0x00004c62,0x00030005,0x000001a1,0x00004c64, + 0x00030005,0x000001a9,0x00004c65,0x00030005,0x000001b1,0x00004c66,0x00030005,0x000001b9, + 0x00004c68,0x00030005,0x000001c1,0x00007a6e,0x00040005,0x000001d2,0x61726170,0x0000006d, + 0x00040005,0x000001d4,0x61726170,0x0000006d,0x00040005,0x000001d6,0x61726170,0x0000006d, + 0x00040005,0x000001d9,0x61726170,0x0000006d,0x00040005,0x000001da,0x61726170,0x0000006d, + 0x00040005,0x000001dc,0x61726170,0x0000006d,0x00040005,0x000001df,0x61726170,0x0000006d, + 0x00040005,0x000001e1,0x61726170,0x0000006d,0x00040005,0x000001e3,0x61726170,0x0000006d, + 0x00040005,0x000001e6,0x61726170,0x0000006d,0x00040005,0x000001e7,0x61726170,0x0000006d, + 0x00040005,0x000001e9,0x61726170,0x0000006d,0x00040005,0x000001ed,0x61726170,0x0000006d, + 0x00040005,0x000001f0,0x61726170,0x0000006d,0x00040005,0x000001f6,0x52346e6d,0x00000000, + 0x00040005,0x000001f7,0x61726170,0x0000006d,0x00040005,0x000001f9,0x61726170,0x0000006d, + 0x00040005,0x000001fb,0x61726170,0x0000006d,0x00040005,0x000001fe,0x61726170,0x0000006d, + 0x00040005,0x000001ff,0x61726170,0x0000006d,0x00040005,0x00000202,0x47346e6d,0x00000000, + 0x00040005,0x00000203,0x61726170,0x0000006d,0x00040005,0x00000205,0x61726170,0x0000006d, + 0x00040005,0x00000207,0x61726170,0x0000006d,0x00040005,0x0000020a,0x61726170,0x0000006d, + 0x00040005,0x0000020b,0x61726170,0x0000006d,0x00040005,0x0000020e,0x42346e6d,0x00000000, + 0x00040005,0x0000020f,0x61726170,0x0000006d,0x00040005,0x00000211,0x61726170,0x0000006d, + 0x00040005,0x00000213,0x61726170,0x0000006d,0x00040005,0x00000216,0x61726170,0x0000006d, + 0x00040005,0x00000217,0x61726170,0x0000006d,0x00040005,0x0000021a,0x5234786d,0x00000000, + 0x00040005,0x0000021b,0x61726170,0x0000006d,0x00040005,0x0000021d,0x61726170,0x0000006d, + 0x00040005,0x0000021f,0x61726170,0x0000006d,0x00040005,0x00000224,0x4734786d,0x00000000, + 0x00040005,0x00000225,0x61726170,0x0000006d,0x00040005,0x00000227,0x61726170,0x0000006d, + 0x00040005,0x00000229,0x61726170,0x0000006d,0x00040005,0x0000022e,0x4234786d,0x00000000, + 0x00040005,0x0000022f,0x61726170,0x0000006d,0x00040005,0x00000231,0x61726170,0x0000006d, + 0x00040005,0x00000233,0x61726170,0x0000006d,0x00040005,0x0000023a,0x6b616570,0x00000043, + 0x00040005,0x0000023d,0x4d746968,0x00526e69,0x00040005,0x00000242,0x61726170,0x0000006d, + 0x00040005,0x00000245,0x4d746968,0x00476e69,0x00040005,0x00000249,0x61726170,0x0000006d, + 0x00040005,0x0000024c,0x4d746968,0x00426e69,0x00040005,0x00000250,0x61726170,0x0000006d, + 0x00040005,0x00000253,0x4d746968,0x00527861,0x00040005,0x0000025d,0x61726170,0x0000006d, + 0x00040005,0x00000260,0x4d746968,0x00477861,0x00040005,0x0000026a,0x61726170,0x0000006d, + 0x00040005,0x0000026d,0x4d746968,0x00427861,0x00040005,0x00000277,0x61726170,0x0000006d, + 0x00040005,0x0000027a,0x65626f6c,0x00000052,0x00040005,0x0000027f,0x65626f6c,0x00000047, + 0x00040005,0x00000284,0x65626f6c,0x00000042,0x00040005,0x00000289,0x65626f6c,0x00000000, + 0x00040005,0x0000028b,0x61726170,0x0000006d,0x00040005,0x0000028d,0x61726170,0x0000006d, + 0x00040005,0x0000028f,0x61726170,0x0000006d,0x00040005,0x00000292,0x61726170,0x0000006d, + 0x00040005,0x00000293,0x61726170,0x0000006d,0x00040005,0x00000296,0x61726170,0x0000006d, + 0x00040005,0x0000029e,0x4c706372,0x00000000,0x00040005,0x000002a2,0x61726170,0x0000006d, + 0x00030005,0x000002de,0x00000063,0x00040005,0x000002e0,0x61726170,0x0000006d,0x00040005, + 0x000002e1,0x61726170,0x0000006d,0x00040005,0x000002e2,0x61726170,0x0000006d,0x00040005, + 0x000002e3,0x61726170,0x0000006d,0x00040005,0x000002e5,0x61726170,0x0000006d,0x00040005, + 0x000002f1,0x61726170,0x0000006d,0x00040005,0x000002f3,0x61726170,0x0000006d,0x00030005, + 0x000002f6,0x00797867,0x00040005,0x000002f7,0x61726170,0x0000006d,0x00040005,0x00000305, + 0x61726170,0x0000006d,0x00040005,0x0000030d,0x61726170,0x0000006d,0x00040005,0x00000314, + 0x61726170,0x0000006d,0x00040005,0x0000031b,0x61726170,0x0000006d,0x00080005,0x0000031e, + 0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x44496e6f,0x00000000,0x00060005,0x0000031f, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000320,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x00000321,0x61726170,0x0000006d, + 0x00040005,0x00000323,0x61726170,0x0000006d,0x00040005,0x00000325,0x61726170,0x0000006d, + 0x00070005,0x0000032b,0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006, + 0x0000032b,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006,0x0000032b,0x00000001, + 0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006, + 0x0000032b,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x0000032b, + 0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065, + 0x00070006,0x0000032b,0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006, + 0x0000032b,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x0000032b, + 0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x0000032b, + 0x00000007,0x74694a66,0x00726574,0x00090006,0x0000032b,0x00000008,0x65725066,0x756f6976, + 0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x0000032b,0x00000009,0x746f4d66, + 0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000032b,0x0000000a,0x776f4466, + 0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000032b,0x0000000b,0x746f4d66, + 0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006, + 0x0000032b,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006,0x0000032b,0x0000000d, + 0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x0000032b, + 0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000032b,0x0000000f,0x6c654466, + 0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000032b,0x00000010,0x65695666, + 0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x0000032b, + 0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000032b,0x00000012,0x6c655666, + 0x7469636f,0x63614679,0x00726f74,0x00080006,0x0000032b,0x00000013,0x61655266,0x76697463, + 0x73656e65,0x61635373,0x0000656c,0x00080006,0x0000032b,0x00000014,0x61685366,0x676e6964, + 0x6e616843,0x63536567,0x00656c61,0x000a0006,0x0000032b,0x00000015,0x63634166,0x6c756d75, + 0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006,0x0000032b,0x00000016, + 0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000, + 0x00060005,0x0000032d,0x53466263,0x70553352,0x6c616373,0x00007265,0x00060005,0x00000330, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00060005,0x00000331,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00030047,0x000000d1,0x00000002,0x00050048,0x000000d1,0x00000000, + 0x00000023,0x00000000,0x00040047,0x000000d3,0x00000021,0x00000004,0x00040047,0x000000d3, + 0x00000022,0x00000000,0x00040047,0x000000db,0x00000021,0x00000001,0x00040047,0x000000db, + 0x00000022,0x00000000,0x00030047,0x000000e3,0x00000019,0x00040047,0x000000e3,0x00000021, + 0x00000002,0x00040047,0x000000e3,0x00000022,0x00000000,0x00040047,0x000000ec,0x00000021, + 0x00000000,0x00040047,0x000000ec,0x00000022,0x00000000,0x00040047,0x0000031e,0x0000000b, + 0x0000001b,0x00040047,0x0000031f,0x0000000b,0x0000001a,0x00040047,0x00000320,0x0000000b, + 0x0000001c,0x00030047,0x0000032b,0x00000002,0x00050048,0x0000032b,0x00000000,0x00000023, + 0x00000000,0x00050048,0x0000032b,0x00000001,0x00000023,0x00000008,0x00050048,0x0000032b, + 0x00000002,0x00000023,0x00000010,0x00050048,0x0000032b,0x00000003,0x00000023,0x00000018, + 0x00050048,0x0000032b,0x00000004,0x00000023,0x00000020,0x00050048,0x0000032b,0x00000005, + 0x00000023,0x00000028,0x00050048,0x0000032b,0x00000006,0x00000023,0x00000030,0x00050048, + 0x0000032b,0x00000007,0x00000023,0x00000040,0x00050048,0x0000032b,0x00000008,0x00000023, + 0x00000048,0x00050048,0x0000032b,0x00000009,0x00000023,0x00000050,0x00050048,0x0000032b, + 0x0000000a,0x00000023,0x00000058,0x00050048,0x0000032b,0x0000000b,0x00000023,0x00000060, + 0x00050048,0x0000032b,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000032b,0x0000000d, + 0x00000023,0x0000006c,0x00050048,0x0000032b,0x0000000e,0x00000023,0x00000070,0x00050048, + 0x0000032b,0x0000000f,0x00000023,0x00000074,0x00050048,0x0000032b,0x00000010,0x00000023, + 0x00000078,0x00050048,0x0000032b,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000032b, + 0x00000012,0x00000023,0x00000080,0x00050048,0x0000032b,0x00000013,0x00000023,0x00000084, + 0x00050048,0x0000032b,0x00000014,0x00000023,0x00000088,0x00050048,0x0000032b,0x00000015, + 0x00000023,0x0000008c,0x00050048,0x0000032b,0x00000016,0x00000023,0x00000090,0x00040047, + 0x0000032d,0x00000021,0x00000003,0x00040047,0x0000032d,0x00000022,0x00000000,0x00040047, + 0x00000330,0x00000021,0x000003e8,0x00040047,0x00000330,0x00000022,0x00000000,0x00040047, + 0x00000331,0x00000021,0x000003e9,0x00040047,0x00000331,0x00000022,0x00000000,0x00040047, + 0x0000033c,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002, + 0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00030016,0x00000008,0x00000020,0x00040021,0x00000009,0x00000008,0x00000007,0x00040020, + 0x0000000d,0x00000007,0x00000008,0x00040021,0x0000000e,0x00000006,0x0000000d,0x00060021, + 0x00000012,0x00000006,0x00000007,0x00000007,0x00000007,0x00060021,0x0000001d,0x00000008, + 0x0000000d,0x0000000d,0x0000000d,0x00040021,0x00000028,0x00000008,0x0000000d,0x00050021, + 0x0000002f,0x00000008,0x0000000d,0x0000000d,0x00040017,0x00000037,0x00000006,0x00000002, + 0x00040021,0x00000038,0x00000037,0x00000007,0x00040017,0x0000003c,0x00000006,0x00000004, + 0x00030021,0x0000003d,0x0000003c,0x00040015,0x00000040,0x00000020,0x00000001,0x00040017, + 0x00000041,0x00000040,0x00000002,0x00040020,0x00000042,0x00000007,0x00000041,0x00040017, + 0x00000043,0x00000008,0x00000004,0x00040021,0x00000044,0x00000043,0x00000042,0x00040017, + 0x00000048,0x00000008,0x00000003,0x00040020,0x00000049,0x00000007,0x00000048,0x00050021, + 0x0000004a,0x00000002,0x00000042,0x00000049,0x00030021,0x0000004f,0x00000008,0x00040020, + 0x00000052,0x00000007,0x00000037,0x00050021,0x00000053,0x00000002,0x00000052,0x00000049, + 0x00060021,0x0000005b,0x00000002,0x0000000d,0x0000000d,0x0000000d,0x00040020,0x00000061, + 0x00000007,0x0000003c,0x00080021,0x00000062,0x00000002,0x0000000d,0x0000000d,0x0000000d, + 0x00000052,0x00000061,0x00040021,0x0000006a,0x00000002,0x00000052,0x00040017,0x0000006e, + 0x00000006,0x00000003,0x00040020,0x0000006f,0x00000007,0x0000006e,0x00060021,0x00000070, + 0x00000002,0x0000006f,0x0000006f,0x0000006f,0x0004002b,0x00000040,0x00000088,0x00000000, + 0x0004002b,0x00000008,0x0000009c,0x3f800000,0x0004002b,0x00000008,0x000000a2,0x00000000, + 0x0004002b,0x00000006,0x000000ac,0x7ef19fff,0x0004002b,0x00000008,0x000000b8,0x40000000, + 0x0004002b,0x00000006,0x000000bd,0x00000001,0x0004002b,0x00000006,0x000000be,0x00000003, + 0x0003001e,0x000000d1,0x0000003c,0x00040020,0x000000d2,0x00000002,0x000000d1,0x0004003b, + 0x000000d2,0x000000d3,0x00000002,0x00040020,0x000000d4,0x00000002,0x0000003c,0x00090019, + 0x000000d9,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x00040020,0x000000da,0x00000000,0x000000d9,0x0004003b,0x000000da,0x000000db,0x00000000, + 0x00090019,0x000000e1,0x00000008,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000000,0x00040020,0x000000e2,0x00000000,0x000000e1,0x0004003b,0x000000e2,0x000000e3, + 0x00000000,0x0004003b,0x000000da,0x000000ec,0x00000000,0x0005002c,0x00000041,0x000000ee, + 0x00000088,0x00000088,0x0004002b,0x00000006,0x000000f0,0x00000000,0x00020014,0x000000f3, + 0x00040020,0x00000100,0x00000007,0x00000043,0x0004002b,0x00000006,0x0000010d,0x00000002, + 0x0004002b,0x00000040,0x00000118,0xffffffff,0x0005002c,0x00000041,0x00000119,0x00000088, + 0x00000118,0x0005002c,0x00000041,0x00000120,0x00000118,0x00000088,0x0004002b,0x00000040, + 0x0000012c,0x00000001,0x0005002c,0x00000041,0x0000012d,0x0000012c,0x00000088,0x0005002c, + 0x00000041,0x00000134,0x00000088,0x0000012c,0x0004002b,0x00000008,0x0000019a,0x3f000000, + 0x0004002b,0x00000008,0x000001c2,0x3e800000,0x0004002b,0x00000008,0x000001f2,0xbf000000, + 0x00040017,0x00000238,0x00000008,0x00000002,0x00040020,0x00000239,0x00000007,0x00000238, + 0x0004002b,0x00000008,0x0000023b,0xc0800000,0x0005002c,0x00000238,0x0000023c,0x0000009c, + 0x0000023b,0x0004002b,0x00000008,0x0000023f,0x40800000,0x0004002b,0x00000008,0x0000028a, + 0xbe400000,0x0004002b,0x00000006,0x000002fd,0x00000004,0x0004002b,0x00000006,0x00000307, + 0x00000008,0x00040020,0x0000031d,0x00000001,0x0000006e,0x0004003b,0x0000031d,0x0000031e, + 0x00000001,0x0004003b,0x0000031d,0x0000031f,0x00000001,0x0004003b,0x0000031d,0x00000320, + 0x00000001,0x0004002b,0x00000008,0x00000328,0x387fda40,0x0004002b,0x00000008,0x00000329, + 0x477fe000,0x0004002b,0x00000008,0x0000032a,0x37801002,0x0019001e,0x0000032b,0x00000041, + 0x00000041,0x00000041,0x00000041,0x00000041,0x00000041,0x00000043,0x00000238,0x00000238, + 0x00000238,0x00000238,0x00000238,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008, + 0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00000008,0x00040020,0x0000032c, + 0x00000002,0x0000032b,0x0004003b,0x0000032c,0x0000032d,0x00000002,0x0002001a,0x0000032e, + 0x00040020,0x0000032f,0x00000000,0x0000032e,0x0004003b,0x0000032f,0x00000330,0x00000000, + 0x0004003b,0x0000032f,0x00000331,0x00000000,0x0004002b,0x00000008,0x00000332,0x7f7fffff, + 0x0004002b,0x00000008,0x00000333,0x00800000,0x0004002b,0x00000008,0x00000334,0x3a1fe868, + 0x0004002b,0x00000008,0x00000335,0x3d800000,0x0004002b,0x00000008,0x00000336,0x3d3d70a4, + 0x0004002b,0x00000008,0x00000337,0x3e400000,0x0004002b,0x00000040,0x00000338,0x00000002, + 0x0004002b,0x00000040,0x00000339,0x00000003,0x0004002b,0x00000008,0x0000033a,0x461c4000, + 0x0004002b,0x00000006,0x0000033b,0x00000040,0x0006002c,0x0000006e,0x0000033c,0x0000033b, + 0x000000bd,0x000000bd,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, + 0x00000005,0x0004003b,0x0000006f,0x00000321,0x00000007,0x0004003b,0x0000006f,0x00000323, + 0x00000007,0x0004003b,0x0000006f,0x00000325,0x00000007,0x0004003d,0x0000006e,0x00000322, + 0x0000031e,0x0003003e,0x00000321,0x00000322,0x0004003d,0x0000006e,0x00000324,0x0000031f, + 0x0003003e,0x00000323,0x00000324,0x0004003d,0x0000006e,0x00000326,0x00000320,0x0003003e, + 0x00000325,0x00000326,0x00070039,0x00000002,0x00000327,0x00000074,0x00000321,0x00000323, + 0x00000325,0x000100fd,0x00010038,0x00050036,0x00000008,0x0000000b,0x00000000,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,0x00000006,0x00000076, + 0x0000000a,0x0004007c,0x00000008,0x00000077,0x00000076,0x000200fe,0x00000077,0x00010038, + 0x00050036,0x00000006,0x00000010,0x00000000,0x0000000e,0x00030037,0x0000000d,0x0000000f, + 0x000200f8,0x00000011,0x0004003d,0x00000008,0x0000007a,0x0000000f,0x0004007c,0x00000006, + 0x0000007b,0x0000007a,0x000200fe,0x0000007b,0x00010038,0x00050036,0x00000006,0x00000016, + 0x00000000,0x00000012,0x00030037,0x00000007,0x00000013,0x00030037,0x00000007,0x00000014, + 0x00030037,0x00000007,0x00000015,0x000200f8,0x00000017,0x0004003d,0x00000006,0x0000007e, + 0x00000013,0x0004003d,0x00000006,0x0000007f,0x00000014,0x0004007c,0x00000040,0x00000080, + 0x0000007f,0x0004003d,0x00000006,0x00000081,0x00000015,0x0004007c,0x00000040,0x00000082, + 0x00000081,0x000600cb,0x00000006,0x00000083,0x0000007e,0x00000080,0x00000082,0x000200fe, + 0x00000083,0x00010038,0x00050036,0x00000006,0x0000001b,0x00000000,0x00000012,0x00030037, + 0x00000007,0x00000018,0x00030037,0x00000007,0x00000019,0x00030037,0x00000007,0x0000001a, + 0x000200f8,0x0000001c,0x0004003d,0x00000006,0x00000086,0x00000018,0x0004003d,0x00000006, + 0x00000087,0x00000019,0x0004003d,0x00000006,0x00000089,0x0000001a,0x0004007c,0x00000040, + 0x0000008a,0x00000089,0x000700c9,0x00000006,0x0000008b,0x00000086,0x00000087,0x00000088, + 0x0000008a,0x000200fe,0x0000008b,0x00010038,0x00050036,0x00000008,0x00000021,0x00000000, + 0x0000001d,0x00030037,0x0000000d,0x0000001e,0x00030037,0x0000000d,0x0000001f,0x00030037, + 0x0000000d,0x00000020,0x000200f8,0x00000022,0x0004003d,0x00000008,0x0000008e,0x0000001e, + 0x0004003d,0x00000008,0x0000008f,0x0000001f,0x0004003d,0x00000008,0x00000090,0x00000020, + 0x0007000c,0x00000008,0x00000091,0x00000001,0x00000028,0x0000008f,0x00000090,0x0007000c, + 0x00000008,0x00000092,0x00000001,0x00000028,0x0000008e,0x00000091,0x000200fe,0x00000092, + 0x00010038,0x00050036,0x00000008,0x00000026,0x00000000,0x0000001d,0x00030037,0x0000000d, + 0x00000023,0x00030037,0x0000000d,0x00000024,0x00030037,0x0000000d,0x00000025,0x000200f8, + 0x00000027,0x0004003d,0x00000008,0x00000095,0x00000023,0x0004003d,0x00000008,0x00000096, + 0x00000024,0x0004003d,0x00000008,0x00000097,0x00000025,0x0007000c,0x00000008,0x00000098, + 0x00000001,0x00000025,0x00000096,0x00000097,0x0007000c,0x00000008,0x00000099,0x00000001, + 0x00000025,0x00000095,0x00000098,0x000200fe,0x00000099,0x00010038,0x00050036,0x00000008, + 0x0000002a,0x00000000,0x00000028,0x00030037,0x0000000d,0x00000029,0x000200f8,0x0000002b, + 0x0004003d,0x00000008,0x0000009d,0x00000029,0x00050088,0x00000008,0x0000009e,0x0000009c, + 0x0000009d,0x000200fe,0x0000009e,0x00010038,0x00050036,0x00000008,0x0000002d,0x00000000, + 0x00000028,0x00030037,0x0000000d,0x0000002c,0x000200f8,0x0000002e,0x0004003d,0x00000008, + 0x000000a1,0x0000002c,0x0008000c,0x00000008,0x000000a3,0x00000001,0x0000002b,0x000000a1, + 0x000000a2,0x0000009c,0x000200fe,0x000000a3,0x00010038,0x00050036,0x00000008,0x00000032, + 0x00000000,0x0000002f,0x00030037,0x0000000d,0x00000030,0x00030037,0x0000000d,0x00000031, + 0x000200f8,0x00000033,0x0004003d,0x00000008,0x000000a6,0x00000030,0x0004003d,0x00000008, + 0x000000a7,0x00000031,0x0007000c,0x00000008,0x000000a8,0x00000001,0x00000025,0x000000a6, + 0x000000a7,0x000200fe,0x000000a8,0x00010038,0x00050036,0x00000008,0x00000035,0x00000000, + 0x00000028,0x00030037,0x0000000d,0x00000034,0x000200f8,0x00000036,0x0004003b,0x0000000d, + 0x000000ab,0x00000007,0x0004003b,0x0000000d,0x000000ad,0x00000007,0x0004003b,0x00000007, + 0x000000b1,0x00000007,0x0004003d,0x00000008,0x000000ae,0x00000034,0x0003003e,0x000000ad, + 0x000000ae,0x00050039,0x00000006,0x000000af,0x00000010,0x000000ad,0x00050082,0x00000006, + 0x000000b0,0x000000ac,0x000000af,0x0003003e,0x000000b1,0x000000b0,0x00050039,0x00000008, + 0x000000b2,0x0000000b,0x000000b1,0x0003003e,0x000000ab,0x000000b2,0x0004003d,0x00000008, + 0x000000b3,0x000000ab,0x0004003d,0x00000008,0x000000b4,0x000000ab,0x0004007f,0x00000008, + 0x000000b5,0x000000b4,0x0004003d,0x00000008,0x000000b6,0x00000034,0x00050085,0x00000008, + 0x000000b7,0x000000b5,0x000000b6,0x00050081,0x00000008,0x000000b9,0x000000b7,0x000000b8, + 0x00050085,0x00000008,0x000000ba,0x000000b3,0x000000b9,0x000200fe,0x000000ba,0x00010038, + 0x00050036,0x00000037,0x0000003a,0x00000000,0x00000038,0x00030037,0x00000007,0x00000039, + 0x000200f8,0x0000003b,0x0004003b,0x00000007,0x000000bf,0x00000007,0x0004003b,0x00000007, + 0x000000c1,0x00000007,0x0004003b,0x00000007,0x000000c2,0x00000007,0x0004003b,0x00000007, + 0x000000c4,0x00000007,0x0004003b,0x00000007,0x000000c6,0x00000007,0x0004003b,0x00000007, + 0x000000c7,0x00000007,0x0004003b,0x00000007,0x000000c9,0x00000007,0x0004003b,0x00000007, + 0x000000ca,0x00000007,0x0004003b,0x00000007,0x000000cc,0x00000007,0x0004003d,0x00000006, + 0x000000c0,0x00000039,0x0003003e,0x000000bf,0x000000c0,0x0003003e,0x000000c1,0x000000bd, + 0x0003003e,0x000000c2,0x000000be,0x00070039,0x00000006,0x000000c3,0x00000016,0x000000bf, + 0x000000c1,0x000000c2,0x0004003d,0x00000006,0x000000c5,0x00000039,0x0003003e,0x000000c4, + 0x000000c5,0x0003003e,0x000000c6,0x000000be,0x0003003e,0x000000c7,0x000000be,0x00070039, + 0x00000006,0x000000c8,0x00000016,0x000000c4,0x000000c6,0x000000c7,0x0003003e,0x000000c9, + 0x000000c8,0x0004003d,0x00000006,0x000000cb,0x00000039,0x0003003e,0x000000ca,0x000000cb, + 0x0003003e,0x000000cc,0x000000bd,0x00070039,0x00000006,0x000000cd,0x0000001b,0x000000c9, + 0x000000ca,0x000000cc,0x00050050,0x00000037,0x000000ce,0x000000c3,0x000000cd,0x000200fe, + 0x000000ce,0x00010038,0x00050036,0x0000003c,0x0000003e,0x00000000,0x0000003d,0x000200f8, + 0x0000003f,0x00050041,0x000000d4,0x000000d5,0x000000d3,0x00000088,0x0004003d,0x0000003c, + 0x000000d6,0x000000d5,0x000200fe,0x000000d6,0x00010038,0x00050036,0x00000043,0x00000046, + 0x00000000,0x00000044,0x00030037,0x00000042,0x00000045,0x000200f8,0x00000047,0x0004003d, + 0x000000d9,0x000000dc,0x000000db,0x0004003d,0x00000041,0x000000dd,0x00000045,0x0007005f, + 0x00000043,0x000000de,0x000000dc,0x000000dd,0x00000002,0x00000088,0x000200fe,0x000000de, + 0x00010038,0x00050036,0x00000002,0x0000004d,0x00000000,0x0000004a,0x00030037,0x00000042, + 0x0000004b,0x00030037,0x00000049,0x0000004c,0x000200f8,0x0000004e,0x0004003d,0x000000e1, + 0x000000e4,0x000000e3,0x0004003d,0x00000041,0x000000e5,0x0000004b,0x0004003d,0x00000048, + 0x000000e6,0x0000004c,0x00050051,0x00000008,0x000000e7,0x000000e6,0x00000000,0x00050051, + 0x00000008,0x000000e8,0x000000e6,0x00000001,0x00050051,0x00000008,0x000000e9,0x000000e6, + 0x00000002,0x00070050,0x00000043,0x000000ea,0x000000e7,0x000000e8,0x000000e9,0x0000009c, + 0x00040063,0x000000e4,0x000000e5,0x000000ea,0x000100fd,0x00010038,0x00050036,0x00000008, + 0x00000050,0x00000000,0x0000004f,0x000200f8,0x00000051,0x0004003b,0x0000000d,0x000000eb, + 0x00000007,0x0004003d,0x000000d9,0x000000ed,0x000000ec,0x0007005f,0x00000043,0x000000ef, + 0x000000ed,0x000000ee,0x00000002,0x00000088,0x00050051,0x00000008,0x000000f1,0x000000ef, + 0x00000000,0x0003003e,0x000000eb,0x000000f1,0x0004003d,0x00000008,0x000000f2,0x000000eb, + 0x000500b4,0x000000f3,0x000000f4,0x000000f2,0x000000a2,0x000300f7,0x000000f6,0x00000000, + 0x000400fa,0x000000f4,0x000000f5,0x000000f6,0x000200f8,0x000000f5,0x0003003e,0x000000eb, + 0x0000009c,0x000200f9,0x000000f6,0x000200f8,0x000000f6,0x0004003d,0x00000008,0x000000f7, + 0x000000eb,0x000200fe,0x000000f7,0x00010038,0x00050036,0x00000002,0x00000056,0x00000000, + 0x00000053,0x00030037,0x00000052,0x00000054,0x00030037,0x00000049,0x00000055,0x000200f8, + 0x00000057,0x0004003b,0x00000042,0x000000fc,0x00000007,0x0004003b,0x00000049,0x000000fd, + 0x00000007,0x0004003d,0x00000037,0x000000fa,0x00000054,0x0004007c,0x00000041,0x000000fb, + 0x000000fa,0x0003003e,0x000000fc,0x000000fb,0x0004003d,0x00000048,0x000000fe,0x00000055, + 0x0003003e,0x000000fd,0x000000fe,0x00060039,0x00000002,0x000000ff,0x0000004d,0x000000fc, + 0x000000fd,0x000100fd,0x00010038,0x00050036,0x00000043,0x00000059,0x00000000,0x00000044, + 0x00030037,0x00000042,0x00000058,0x000200f8,0x0000005a,0x0004003b,0x00000100,0x00000101, + 0x00000007,0x0004003b,0x00000042,0x00000102,0x00000007,0x0004003d,0x00000041,0x00000103, + 0x00000058,0x0003003e,0x00000102,0x00000103,0x00050039,0x00000043,0x00000104,0x00000046, + 0x00000102,0x0003003e,0x00000101,0x00000104,0x00040039,0x00000008,0x00000105,0x00000050, + 0x0004003d,0x00000043,0x00000106,0x00000101,0x0008004f,0x00000048,0x00000107,0x00000106, + 0x00000106,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000048,0x00000108,0x00000107, + 0x00000105,0x00050041,0x0000000d,0x00000109,0x00000101,0x000000f0,0x00050051,0x00000008, + 0x0000010a,0x00000108,0x00000000,0x0003003e,0x00000109,0x0000010a,0x00050041,0x0000000d, + 0x0000010b,0x00000101,0x000000bd,0x00050051,0x00000008,0x0000010c,0x00000108,0x00000001, + 0x0003003e,0x0000010b,0x0000010c,0x00050041,0x0000000d,0x0000010e,0x00000101,0x0000010d, + 0x00050051,0x00000008,0x0000010f,0x00000108,0x00000002,0x0003003e,0x0000010e,0x0000010f, + 0x0004003d,0x00000043,0x00000110,0x00000101,0x000200fe,0x00000110,0x00010038,0x00050036, + 0x00000002,0x0000005f,0x00000000,0x0000005b,0x00030037,0x0000000d,0x0000005c,0x00030037, + 0x0000000d,0x0000005d,0x00030037,0x0000000d,0x0000005e,0x000200f8,0x00000060,0x000100fd, + 0x00010038,0x00050036,0x00000002,0x00000068,0x00000000,0x00000062,0x00030037,0x0000000d, + 0x00000063,0x00030037,0x0000000d,0x00000064,0x00030037,0x0000000d,0x00000065,0x00030037, + 0x00000052,0x00000066,0x00030037,0x00000061,0x00000067,0x000200f8,0x00000069,0x0004003b, + 0x00000042,0x00000113,0x00000007,0x0004003b,0x00000049,0x00000116,0x00000007,0x0004003b, + 0x00000042,0x0000011b,0x00000007,0x0004003b,0x00000049,0x0000011e,0x00000007,0x0004003b, + 0x00000042,0x00000122,0x00000007,0x0004003b,0x00000049,0x00000125,0x00000007,0x0004003b, + 0x00000042,0x00000126,0x00000007,0x0004003b,0x00000049,0x0000012a,0x00000007,0x0004003b, + 0x00000042,0x0000012f,0x00000007,0x0004003b,0x00000049,0x00000132,0x00000007,0x0004003b, + 0x00000042,0x00000136,0x00000007,0x0004003b,0x0000000d,0x00000139,0x00000007,0x0004003b, + 0x0000000d,0x0000013c,0x00000007,0x0004003b,0x0000000d,0x0000013f,0x00000007,0x0004003b, + 0x0000000d,0x00000142,0x00000007,0x0004003b,0x0000000d,0x00000145,0x00000007,0x0004003b, + 0x0000000d,0x00000148,0x00000007,0x0004003b,0x0000000d,0x0000014b,0x00000007,0x0004003b, + 0x0000000d,0x0000014e,0x00000007,0x0004003b,0x0000000d,0x00000151,0x00000007,0x0004003b, + 0x0000000d,0x00000154,0x00000007,0x0004003b,0x0000000d,0x00000157,0x00000007,0x0004003b, + 0x0000000d,0x0000015a,0x00000007,0x0004003b,0x0000000d,0x0000015d,0x00000007,0x0004003b, + 0x0000000d,0x00000160,0x00000007,0x0004003b,0x0000000d,0x00000163,0x00000007,0x0004003b, + 0x0000000d,0x00000166,0x00000007,0x0004003b,0x0000000d,0x00000168,0x00000007,0x0004003b, + 0x0000000d,0x0000016a,0x00000007,0x0004003b,0x0000000d,0x00000170,0x00000007,0x0004003b, + 0x0000000d,0x00000172,0x00000007,0x0004003b,0x0000000d,0x00000174,0x00000007,0x0004003b, + 0x0000000d,0x0000017a,0x00000007,0x0004003b,0x0000000d,0x0000017c,0x00000007,0x0004003b, + 0x0000000d,0x0000017e,0x00000007,0x0004003b,0x0000000d,0x00000184,0x00000007,0x0004003b, + 0x0000000d,0x00000186,0x00000007,0x0004003b,0x0000000d,0x00000188,0x00000007,0x0004003b, + 0x0000000d,0x0000018e,0x00000007,0x0004003b,0x0000000d,0x00000190,0x00000007,0x0004003b, + 0x0000000d,0x00000192,0x00000007,0x0004003b,0x0000000d,0x00000198,0x00000007,0x0004003b, + 0x0000000d,0x000001a1,0x00000007,0x0004003b,0x0000000d,0x000001a9,0x00000007,0x0004003b, + 0x0000000d,0x000001b1,0x00000007,0x0004003b,0x0000000d,0x000001b9,0x00000007,0x0004003b, + 0x0000000d,0x000001c1,0x00000007,0x0004003b,0x0000000d,0x000001d2,0x00000007,0x0004003b, + 0x0000000d,0x000001d4,0x00000007,0x0004003b,0x0000000d,0x000001d6,0x00000007,0x0004003b, + 0x0000000d,0x000001d9,0x00000007,0x0004003b,0x0000000d,0x000001da,0x00000007,0x0004003b, + 0x0000000d,0x000001dc,0x00000007,0x0004003b,0x0000000d,0x000001df,0x00000007,0x0004003b, + 0x0000000d,0x000001e1,0x00000007,0x0004003b,0x0000000d,0x000001e3,0x00000007,0x0004003b, + 0x0000000d,0x000001e6,0x00000007,0x0004003b,0x0000000d,0x000001e7,0x00000007,0x0004003b, + 0x0000000d,0x000001e9,0x00000007,0x0004003b,0x0000000d,0x000001ed,0x00000007,0x0004003b, + 0x0000000d,0x000001f0,0x00000007,0x0004003b,0x0000000d,0x000001f6,0x00000007,0x0004003b, + 0x0000000d,0x000001f7,0x00000007,0x0004003b,0x0000000d,0x000001f9,0x00000007,0x0004003b, + 0x0000000d,0x000001fb,0x00000007,0x0004003b,0x0000000d,0x000001fe,0x00000007,0x0004003b, + 0x0000000d,0x000001ff,0x00000007,0x0004003b,0x0000000d,0x00000202,0x00000007,0x0004003b, + 0x0000000d,0x00000203,0x00000007,0x0004003b,0x0000000d,0x00000205,0x00000007,0x0004003b, + 0x0000000d,0x00000207,0x00000007,0x0004003b,0x0000000d,0x0000020a,0x00000007,0x0004003b, + 0x0000000d,0x0000020b,0x00000007,0x0004003b,0x0000000d,0x0000020e,0x00000007,0x0004003b, + 0x0000000d,0x0000020f,0x00000007,0x0004003b,0x0000000d,0x00000211,0x00000007,0x0004003b, + 0x0000000d,0x00000213,0x00000007,0x0004003b,0x0000000d,0x00000216,0x00000007,0x0004003b, + 0x0000000d,0x00000217,0x00000007,0x0004003b,0x0000000d,0x0000021a,0x00000007,0x0004003b, + 0x0000000d,0x0000021b,0x00000007,0x0004003b,0x0000000d,0x0000021d,0x00000007,0x0004003b, + 0x0000000d,0x0000021f,0x00000007,0x0004003b,0x0000000d,0x00000224,0x00000007,0x0004003b, + 0x0000000d,0x00000225,0x00000007,0x0004003b,0x0000000d,0x00000227,0x00000007,0x0004003b, + 0x0000000d,0x00000229,0x00000007,0x0004003b,0x0000000d,0x0000022e,0x00000007,0x0004003b, + 0x0000000d,0x0000022f,0x00000007,0x0004003b,0x0000000d,0x00000231,0x00000007,0x0004003b, + 0x0000000d,0x00000233,0x00000007,0x0004003b,0x00000239,0x0000023a,0x00000007,0x0004003b, + 0x0000000d,0x0000023d,0x00000007,0x0004003b,0x0000000d,0x00000242,0x00000007,0x0004003b, + 0x0000000d,0x00000245,0x00000007,0x0004003b,0x0000000d,0x00000249,0x00000007,0x0004003b, + 0x0000000d,0x0000024c,0x00000007,0x0004003b,0x0000000d,0x00000250,0x00000007,0x0004003b, + 0x0000000d,0x00000253,0x00000007,0x0004003b,0x0000000d,0x0000025d,0x00000007,0x0004003b, + 0x0000000d,0x00000260,0x00000007,0x0004003b,0x0000000d,0x0000026a,0x00000007,0x0004003b, + 0x0000000d,0x0000026d,0x00000007,0x0004003b,0x0000000d,0x00000277,0x00000007,0x0004003b, + 0x0000000d,0x0000027a,0x00000007,0x0004003b,0x0000000d,0x0000027f,0x00000007,0x0004003b, + 0x0000000d,0x00000284,0x00000007,0x0004003b,0x0000000d,0x00000289,0x00000007,0x0004003b, + 0x0000000d,0x0000028b,0x00000007,0x0004003b,0x0000000d,0x0000028d,0x00000007,0x0004003b, + 0x0000000d,0x0000028f,0x00000007,0x0004003b,0x0000000d,0x00000292,0x00000007,0x0004003b, + 0x0000000d,0x00000293,0x00000007,0x0004003b,0x00000007,0x00000296,0x00000007,0x0004003b, + 0x0000000d,0x0000029e,0x00000007,0x0004003b,0x0000000d,0x000002a2,0x00000007,0x0004003d, + 0x00000037,0x00000114,0x00000066,0x0004007c,0x00000041,0x00000115,0x00000114,0x0003003e, + 0x00000113,0x00000115,0x0004003d,0x00000041,0x00000117,0x00000113,0x00050080,0x00000041, + 0x0000011a,0x00000117,0x00000119,0x0003003e,0x0000011b,0x0000011a,0x00050039,0x00000043, + 0x0000011c,0x00000059,0x0000011b,0x0008004f,0x00000048,0x0000011d,0x0000011c,0x0000011c, + 0x00000000,0x00000001,0x00000002,0x0003003e,0x00000116,0x0000011d,0x0004003d,0x00000041, + 0x0000011f,0x00000113,0x00050080,0x00000041,0x00000121,0x0000011f,0x00000120,0x0003003e, + 0x00000122,0x00000121,0x00050039,0x00000043,0x00000123,0x00000059,0x00000122,0x0008004f, + 0x00000048,0x00000124,0x00000123,0x00000123,0x00000000,0x00000001,0x00000002,0x0003003e, + 0x0000011e,0x00000124,0x0004003d,0x00000041,0x00000127,0x00000113,0x0003003e,0x00000126, + 0x00000127,0x00050039,0x00000043,0x00000128,0x00000059,0x00000126,0x0008004f,0x00000048, + 0x00000129,0x00000128,0x00000128,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000125, + 0x00000129,0x0004003d,0x00000041,0x0000012b,0x00000113,0x00050080,0x00000041,0x0000012e, + 0x0000012b,0x0000012d,0x0003003e,0x0000012f,0x0000012e,0x00050039,0x00000043,0x00000130, + 0x00000059,0x0000012f,0x0008004f,0x00000048,0x00000131,0x00000130,0x00000130,0x00000000, + 0x00000001,0x00000002,0x0003003e,0x0000012a,0x00000131,0x0004003d,0x00000041,0x00000133, + 0x00000113,0x00050080,0x00000041,0x00000135,0x00000133,0x00000134,0x0003003e,0x00000136, + 0x00000135,0x00050039,0x00000043,0x00000137,0x00000059,0x00000136,0x0008004f,0x00000048, + 0x00000138,0x00000137,0x00000137,0x00000000,0x00000001,0x00000002,0x0003003e,0x00000132, + 0x00000138,0x00050041,0x0000000d,0x0000013a,0x00000116,0x000000f0,0x0004003d,0x00000008, + 0x0000013b,0x0000013a,0x0003003e,0x00000139,0x0000013b,0x00050041,0x0000000d,0x0000013d, + 0x00000116,0x000000bd,0x0004003d,0x00000008,0x0000013e,0x0000013d,0x0003003e,0x0000013c, + 0x0000013e,0x00050041,0x0000000d,0x00000140,0x00000116,0x0000010d,0x0004003d,0x00000008, + 0x00000141,0x00000140,0x0003003e,0x0000013f,0x00000141,0x00050041,0x0000000d,0x00000143, + 0x0000011e,0x000000f0,0x0004003d,0x00000008,0x00000144,0x00000143,0x0003003e,0x00000142, + 0x00000144,0x00050041,0x0000000d,0x00000146,0x0000011e,0x000000bd,0x0004003d,0x00000008, + 0x00000147,0x00000146,0x0003003e,0x00000145,0x00000147,0x00050041,0x0000000d,0x00000149, + 0x0000011e,0x0000010d,0x0004003d,0x00000008,0x0000014a,0x00000149,0x0003003e,0x00000148, + 0x0000014a,0x00050041,0x0000000d,0x0000014c,0x00000125,0x000000f0,0x0004003d,0x00000008, + 0x0000014d,0x0000014c,0x0003003e,0x0000014b,0x0000014d,0x00050041,0x0000000d,0x0000014f, + 0x00000125,0x000000bd,0x0004003d,0x00000008,0x00000150,0x0000014f,0x0003003e,0x0000014e, + 0x00000150,0x00050041,0x0000000d,0x00000152,0x00000125,0x0000010d,0x0004003d,0x00000008, + 0x00000153,0x00000152,0x0003003e,0x00000151,0x00000153,0x00050041,0x0000000d,0x00000155, + 0x0000012a,0x000000f0,0x0004003d,0x00000008,0x00000156,0x00000155,0x0003003e,0x00000154, + 0x00000156,0x00050041,0x0000000d,0x00000158,0x0000012a,0x000000bd,0x0004003d,0x00000008, + 0x00000159,0x00000158,0x0003003e,0x00000157,0x00000159,0x00050041,0x0000000d,0x0000015b, + 0x0000012a,0x0000010d,0x0004003d,0x00000008,0x0000015c,0x0000015b,0x0003003e,0x0000015a, + 0x0000015c,0x00050041,0x0000000d,0x0000015e,0x00000132,0x000000f0,0x0004003d,0x00000008, + 0x0000015f,0x0000015e,0x0003003e,0x0000015d,0x0000015f,0x00050041,0x0000000d,0x00000161, + 0x00000132,0x000000bd,0x0004003d,0x00000008,0x00000162,0x00000161,0x0003003e,0x00000160, + 0x00000162,0x00050041,0x0000000d,0x00000164,0x00000132,0x0000010d,0x0004003d,0x00000008, + 0x00000165,0x00000164,0x0003003e,0x00000163,0x00000165,0x0004003d,0x00000008,0x00000167, + 0x00000139,0x0003003e,0x00000166,0x00000167,0x0004003d,0x00000008,0x00000169,0x0000013c, + 0x0003003e,0x00000168,0x00000169,0x0004003d,0x00000008,0x0000016b,0x0000013f,0x0003003e, + 0x0000016a,0x0000016b,0x00070039,0x00000002,0x0000016c,0x0000005f,0x00000166,0x00000168, + 0x0000016a,0x0004003d,0x00000008,0x0000016d,0x00000166,0x0003003e,0x00000139,0x0000016d, + 0x0004003d,0x00000008,0x0000016e,0x00000168,0x0003003e,0x0000013c,0x0000016e,0x0004003d, + 0x00000008,0x0000016f,0x0000016a,0x0003003e,0x0000013f,0x0000016f,0x0004003d,0x00000008, + 0x00000171,0x00000142,0x0003003e,0x00000170,0x00000171,0x0004003d,0x00000008,0x00000173, + 0x00000145,0x0003003e,0x00000172,0x00000173,0x0004003d,0x00000008,0x00000175,0x00000148, + 0x0003003e,0x00000174,0x00000175,0x00070039,0x00000002,0x00000176,0x0000005f,0x00000170, + 0x00000172,0x00000174,0x0004003d,0x00000008,0x00000177,0x00000170,0x0003003e,0x00000142, + 0x00000177,0x0004003d,0x00000008,0x00000178,0x00000172,0x0003003e,0x00000145,0x00000178, + 0x0004003d,0x00000008,0x00000179,0x00000174,0x0003003e,0x00000148,0x00000179,0x0004003d, + 0x00000008,0x0000017b,0x0000014b,0x0003003e,0x0000017a,0x0000017b,0x0004003d,0x00000008, + 0x0000017d,0x0000014e,0x0003003e,0x0000017c,0x0000017d,0x0004003d,0x00000008,0x0000017f, + 0x00000151,0x0003003e,0x0000017e,0x0000017f,0x00070039,0x00000002,0x00000180,0x0000005f, + 0x0000017a,0x0000017c,0x0000017e,0x0004003d,0x00000008,0x00000181,0x0000017a,0x0003003e, + 0x0000014b,0x00000181,0x0004003d,0x00000008,0x00000182,0x0000017c,0x0003003e,0x0000014e, + 0x00000182,0x0004003d,0x00000008,0x00000183,0x0000017e,0x0003003e,0x00000151,0x00000183, + 0x0004003d,0x00000008,0x00000185,0x00000154,0x0003003e,0x00000184,0x00000185,0x0004003d, + 0x00000008,0x00000187,0x00000157,0x0003003e,0x00000186,0x00000187,0x0004003d,0x00000008, + 0x00000189,0x0000015a,0x0003003e,0x00000188,0x00000189,0x00070039,0x00000002,0x0000018a, + 0x0000005f,0x00000184,0x00000186,0x00000188,0x0004003d,0x00000008,0x0000018b,0x00000184, + 0x0003003e,0x00000154,0x0000018b,0x0004003d,0x00000008,0x0000018c,0x00000186,0x0003003e, + 0x00000157,0x0000018c,0x0004003d,0x00000008,0x0000018d,0x00000188,0x0003003e,0x0000015a, + 0x0000018d,0x0004003d,0x00000008,0x0000018f,0x0000015d,0x0003003e,0x0000018e,0x0000018f, + 0x0004003d,0x00000008,0x00000191,0x00000160,0x0003003e,0x00000190,0x00000191,0x0004003d, + 0x00000008,0x00000193,0x00000163,0x0003003e,0x00000192,0x00000193,0x00070039,0x00000002, + 0x00000194,0x0000005f,0x0000018e,0x00000190,0x00000192,0x0004003d,0x00000008,0x00000195, + 0x0000018e,0x0003003e,0x0000015d,0x00000195,0x0004003d,0x00000008,0x00000196,0x00000190, + 0x0003003e,0x00000160,0x00000196,0x0004003d,0x00000008,0x00000197,0x00000192,0x0003003e, + 0x00000163,0x00000197,0x0004003d,0x00000008,0x00000199,0x0000013f,0x00050085,0x00000008, + 0x0000019b,0x00000199,0x0000019a,0x0004003d,0x00000008,0x0000019c,0x00000139,0x00050085, + 0x00000008,0x0000019d,0x0000019c,0x0000019a,0x0004003d,0x00000008,0x0000019e,0x0000013c, + 0x00050081,0x00000008,0x0000019f,0x0000019d,0x0000019e,0x00050081,0x00000008,0x000001a0, + 0x0000019b,0x0000019f,0x0003003e,0x00000198,0x000001a0,0x0004003d,0x00000008,0x000001a2, + 0x00000148,0x00050085,0x00000008,0x000001a3,0x000001a2,0x0000019a,0x0004003d,0x00000008, + 0x000001a4,0x00000142,0x00050085,0x00000008,0x000001a5,0x000001a4,0x0000019a,0x0004003d, + 0x00000008,0x000001a6,0x00000145,0x00050081,0x00000008,0x000001a7,0x000001a5,0x000001a6, + 0x00050081,0x00000008,0x000001a8,0x000001a3,0x000001a7,0x0003003e,0x000001a1,0x000001a8, + 0x0004003d,0x00000008,0x000001aa,0x00000151,0x00050085,0x00000008,0x000001ab,0x000001aa, + 0x0000019a,0x0004003d,0x00000008,0x000001ac,0x0000014b,0x00050085,0x00000008,0x000001ad, + 0x000001ac,0x0000019a,0x0004003d,0x00000008,0x000001ae,0x0000014e,0x00050081,0x00000008, + 0x000001af,0x000001ad,0x000001ae,0x00050081,0x00000008,0x000001b0,0x000001ab,0x000001af, + 0x0003003e,0x000001a9,0x000001b0,0x0004003d,0x00000008,0x000001b2,0x0000015a,0x00050085, + 0x00000008,0x000001b3,0x000001b2,0x0000019a,0x0004003d,0x00000008,0x000001b4,0x00000154, + 0x00050085,0x00000008,0x000001b5,0x000001b4,0x0000019a,0x0004003d,0x00000008,0x000001b6, + 0x00000157,0x00050081,0x00000008,0x000001b7,0x000001b5,0x000001b6,0x00050081,0x00000008, + 0x000001b8,0x000001b3,0x000001b7,0x0003003e,0x000001b1,0x000001b8,0x0004003d,0x00000008, + 0x000001ba,0x00000163,0x00050085,0x00000008,0x000001bb,0x000001ba,0x0000019a,0x0004003d, + 0x00000008,0x000001bc,0x0000015d,0x00050085,0x00000008,0x000001bd,0x000001bc,0x0000019a, + 0x0004003d,0x00000008,0x000001be,0x00000160,0x00050081,0x00000008,0x000001bf,0x000001bd, + 0x000001be,0x00050081,0x00000008,0x000001c0,0x000001bb,0x000001bf,0x0003003e,0x000001b9, + 0x000001c0,0x0004003d,0x00000008,0x000001c3,0x00000198,0x00050085,0x00000008,0x000001c4, + 0x000001c2,0x000001c3,0x0004003d,0x00000008,0x000001c5,0x000001a1,0x00050085,0x00000008, + 0x000001c6,0x000001c2,0x000001c5,0x00050081,0x00000008,0x000001c7,0x000001c4,0x000001c6, + 0x0004003d,0x00000008,0x000001c8,0x000001b1,0x00050085,0x00000008,0x000001c9,0x000001c2, + 0x000001c8,0x00050081,0x00000008,0x000001ca,0x000001c7,0x000001c9,0x0004003d,0x00000008, + 0x000001cb,0x000001b9,0x00050085,0x00000008,0x000001cc,0x000001c2,0x000001cb,0x00050081, + 0x00000008,0x000001cd,0x000001ca,0x000001cc,0x0004003d,0x00000008,0x000001ce,0x000001a9, + 0x00050083,0x00000008,0x000001cf,0x000001cd,0x000001ce,0x0003003e,0x000001c1,0x000001cf, + 0x0004003d,0x00000008,0x000001d0,0x000001c1,0x0006000c,0x00000008,0x000001d1,0x00000001, + 0x00000004,0x000001d0,0x0004003d,0x00000008,0x000001d3,0x00000198,0x0003003e,0x000001d2, + 0x000001d3,0x0004003d,0x00000008,0x000001d5,0x000001a1,0x0003003e,0x000001d4,0x000001d5, + 0x0004003d,0x00000008,0x000001d7,0x000001a9,0x0003003e,0x000001d6,0x000001d7,0x00070039, + 0x00000008,0x000001d8,0x00000021,0x000001d2,0x000001d4,0x000001d6,0x0003003e,0x000001d9, + 0x000001d8,0x0004003d,0x00000008,0x000001db,0x000001b1,0x0003003e,0x000001da,0x000001db, + 0x0004003d,0x00000008,0x000001dd,0x000001b9,0x0003003e,0x000001dc,0x000001dd,0x00070039, + 0x00000008,0x000001de,0x00000021,0x000001d9,0x000001da,0x000001dc,0x0004003d,0x00000008, + 0x000001e0,0x00000198,0x0003003e,0x000001df,0x000001e0,0x0004003d,0x00000008,0x000001e2, + 0x000001a1,0x0003003e,0x000001e1,0x000001e2,0x0004003d,0x00000008,0x000001e4,0x000001a9, + 0x0003003e,0x000001e3,0x000001e4,0x00070039,0x00000008,0x000001e5,0x00000026,0x000001df, + 0x000001e1,0x000001e3,0x0003003e,0x000001e6,0x000001e5,0x0004003d,0x00000008,0x000001e8, + 0x000001b1,0x0003003e,0x000001e7,0x000001e8,0x0004003d,0x00000008,0x000001ea,0x000001b9, + 0x0003003e,0x000001e9,0x000001ea,0x00070039,0x00000008,0x000001eb,0x00000026,0x000001e6, + 0x000001e7,0x000001e9,0x00050083,0x00000008,0x000001ec,0x000001de,0x000001eb,0x0003003e, + 0x000001ed,0x000001ec,0x00050039,0x00000008,0x000001ee,0x00000035,0x000001ed,0x00050085, + 0x00000008,0x000001ef,0x000001d1,0x000001ee,0x0003003e,0x000001f0,0x000001ef,0x00050039, + 0x00000008,0x000001f1,0x0000002d,0x000001f0,0x0003003e,0x000001c1,0x000001f1,0x0004003d, + 0x00000008,0x000001f3,0x000001c1,0x00050085,0x00000008,0x000001f4,0x000001f2,0x000001f3, + 0x00050081,0x00000008,0x000001f5,0x000001f4,0x0000009c,0x0003003e,0x000001c1,0x000001f5, + 0x0004003d,0x00000008,0x000001f8,0x00000139,0x0003003e,0x000001f7,0x000001f8,0x0004003d, + 0x00000008,0x000001fa,0x00000142,0x0003003e,0x000001f9,0x000001fa,0x0004003d,0x00000008, + 0x000001fc,0x00000154,0x0003003e,0x000001fb,0x000001fc,0x00070039,0x00000008,0x000001fd, + 0x00000026,0x000001f7,0x000001f9,0x000001fb,0x0003003e,0x000001fe,0x000001fd,0x0004003d, + 0x00000008,0x00000200,0x0000015d,0x0003003e,0x000001ff,0x00000200,0x00060039,0x00000008, + 0x00000201,0x00000032,0x000001fe,0x000001ff,0x0003003e,0x000001f6,0x00000201,0x0004003d, + 0x00000008,0x00000204,0x0000013c,0x0003003e,0x00000203,0x00000204,0x0004003d,0x00000008, + 0x00000206,0x00000145,0x0003003e,0x00000205,0x00000206,0x0004003d,0x00000008,0x00000208, + 0x00000157,0x0003003e,0x00000207,0x00000208,0x00070039,0x00000008,0x00000209,0x00000026, + 0x00000203,0x00000205,0x00000207,0x0003003e,0x0000020a,0x00000209,0x0004003d,0x00000008, + 0x0000020c,0x00000160,0x0003003e,0x0000020b,0x0000020c,0x00060039,0x00000008,0x0000020d, + 0x00000032,0x0000020a,0x0000020b,0x0003003e,0x00000202,0x0000020d,0x0004003d,0x00000008, + 0x00000210,0x0000013f,0x0003003e,0x0000020f,0x00000210,0x0004003d,0x00000008,0x00000212, + 0x00000148,0x0003003e,0x00000211,0x00000212,0x0004003d,0x00000008,0x00000214,0x0000015a, + 0x0003003e,0x00000213,0x00000214,0x00070039,0x00000008,0x00000215,0x00000026,0x0000020f, + 0x00000211,0x00000213,0x0003003e,0x00000216,0x00000215,0x0004003d,0x00000008,0x00000218, + 0x00000163,0x0003003e,0x00000217,0x00000218,0x00060039,0x00000008,0x00000219,0x00000032, + 0x00000216,0x00000217,0x0003003e,0x0000020e,0x00000219,0x0004003d,0x00000008,0x0000021c, + 0x00000139,0x0003003e,0x0000021b,0x0000021c,0x0004003d,0x00000008,0x0000021e,0x00000142, + 0x0003003e,0x0000021d,0x0000021e,0x0004003d,0x00000008,0x00000220,0x00000154,0x0003003e, + 0x0000021f,0x00000220,0x00070039,0x00000008,0x00000221,0x00000021,0x0000021b,0x0000021d, + 0x0000021f,0x0004003d,0x00000008,0x00000222,0x0000015d,0x0007000c,0x00000008,0x00000223, + 0x00000001,0x00000028,0x00000221,0x00000222,0x0003003e,0x0000021a,0x00000223,0x0004003d, + 0x00000008,0x00000226,0x0000013c,0x0003003e,0x00000225,0x00000226,0x0004003d,0x00000008, + 0x00000228,0x00000145,0x0003003e,0x00000227,0x00000228,0x0004003d,0x00000008,0x0000022a, + 0x00000157,0x0003003e,0x00000229,0x0000022a,0x00070039,0x00000008,0x0000022b,0x00000021, + 0x00000225,0x00000227,0x00000229,0x0004003d,0x00000008,0x0000022c,0x00000160,0x0007000c, + 0x00000008,0x0000022d,0x00000001,0x00000028,0x0000022b,0x0000022c,0x0003003e,0x00000224, + 0x0000022d,0x0004003d,0x00000008,0x00000230,0x0000013f,0x0003003e,0x0000022f,0x00000230, + 0x0004003d,0x00000008,0x00000232,0x00000148,0x0003003e,0x00000231,0x00000232,0x0004003d, + 0x00000008,0x00000234,0x0000015a,0x0003003e,0x00000233,0x00000234,0x00070039,0x00000008, + 0x00000235,0x00000021,0x0000022f,0x00000231,0x00000233,0x0004003d,0x00000008,0x00000236, + 0x00000163,0x0007000c,0x00000008,0x00000237,0x00000001,0x00000028,0x00000235,0x00000236, + 0x0003003e,0x0000022e,0x00000237,0x0003003e,0x0000023a,0x0000023c,0x0004003d,0x00000008, + 0x0000023e,0x000001f6,0x0004003d,0x00000008,0x00000240,0x0000021a,0x00050085,0x00000008, + 0x00000241,0x0000023f,0x00000240,0x0003003e,0x00000242,0x00000241,0x00050039,0x00000008, + 0x00000243,0x0000002a,0x00000242,0x00050085,0x00000008,0x00000244,0x0000023e,0x00000243, + 0x0003003e,0x0000023d,0x00000244,0x0004003d,0x00000008,0x00000246,0x00000202,0x0004003d, + 0x00000008,0x00000247,0x00000224,0x00050085,0x00000008,0x00000248,0x0000023f,0x00000247, + 0x0003003e,0x00000249,0x00000248,0x00050039,0x00000008,0x0000024a,0x0000002a,0x00000249, + 0x00050085,0x00000008,0x0000024b,0x00000246,0x0000024a,0x0003003e,0x00000245,0x0000024b, + 0x0004003d,0x00000008,0x0000024d,0x0000020e,0x0004003d,0x00000008,0x0000024e,0x0000022e, + 0x00050085,0x00000008,0x0000024f,0x0000023f,0x0000024e,0x0003003e,0x00000250,0x0000024f, + 0x00050039,0x00000008,0x00000251,0x0000002a,0x00000250,0x00050085,0x00000008,0x00000252, + 0x0000024d,0x00000251,0x0003003e,0x0000024c,0x00000252,0x00050041,0x0000000d,0x00000254, + 0x0000023a,0x000000f0,0x0004003d,0x00000008,0x00000255,0x00000254,0x0004003d,0x00000008, + 0x00000256,0x0000021a,0x00050083,0x00000008,0x00000257,0x00000255,0x00000256,0x0004003d, + 0x00000008,0x00000258,0x000001f6,0x00050085,0x00000008,0x00000259,0x0000023f,0x00000258, + 0x00050041,0x0000000d,0x0000025a,0x0000023a,0x000000bd,0x0004003d,0x00000008,0x0000025b, + 0x0000025a,0x00050081,0x00000008,0x0000025c,0x00000259,0x0000025b,0x0003003e,0x0000025d, + 0x0000025c,0x00050039,0x00000008,0x0000025e,0x0000002a,0x0000025d,0x00050085,0x00000008, + 0x0000025f,0x00000257,0x0000025e,0x0003003e,0x00000253,0x0000025f,0x00050041,0x0000000d, + 0x00000261,0x0000023a,0x000000f0,0x0004003d,0x00000008,0x00000262,0x00000261,0x0004003d, + 0x00000008,0x00000263,0x00000224,0x00050083,0x00000008,0x00000264,0x00000262,0x00000263, + 0x0004003d,0x00000008,0x00000265,0x00000202,0x00050085,0x00000008,0x00000266,0x0000023f, + 0x00000265,0x00050041,0x0000000d,0x00000267,0x0000023a,0x000000bd,0x0004003d,0x00000008, + 0x00000268,0x00000267,0x00050081,0x00000008,0x00000269,0x00000266,0x00000268,0x0003003e, + 0x0000026a,0x00000269,0x00050039,0x00000008,0x0000026b,0x0000002a,0x0000026a,0x00050085, + 0x00000008,0x0000026c,0x00000264,0x0000026b,0x0003003e,0x00000260,0x0000026c,0x00050041, + 0x0000000d,0x0000026e,0x0000023a,0x000000f0,0x0004003d,0x00000008,0x0000026f,0x0000026e, + 0x0004003d,0x00000008,0x00000270,0x0000022e,0x00050083,0x00000008,0x00000271,0x0000026f, + 0x00000270,0x0004003d,0x00000008,0x00000272,0x0000020e,0x00050085,0x00000008,0x00000273, + 0x0000023f,0x00000272,0x00050041,0x0000000d,0x00000274,0x0000023a,0x000000bd,0x0004003d, + 0x00000008,0x00000275,0x00000274,0x00050081,0x00000008,0x00000276,0x00000273,0x00000275, + 0x0003003e,0x00000277,0x00000276,0x00050039,0x00000008,0x00000278,0x0000002a,0x00000277, + 0x00050085,0x00000008,0x00000279,0x00000271,0x00000278,0x0003003e,0x0000026d,0x00000279, + 0x0004003d,0x00000008,0x0000027b,0x0000023d,0x0004007f,0x00000008,0x0000027c,0x0000027b, + 0x0004003d,0x00000008,0x0000027d,0x00000253,0x0007000c,0x00000008,0x0000027e,0x00000001, + 0x00000028,0x0000027c,0x0000027d,0x0003003e,0x0000027a,0x0000027e,0x0004003d,0x00000008, + 0x00000280,0x00000245,0x0004007f,0x00000008,0x00000281,0x00000280,0x0004003d,0x00000008, + 0x00000282,0x00000260,0x0007000c,0x00000008,0x00000283,0x00000001,0x00000028,0x00000281, + 0x00000282,0x0003003e,0x0000027f,0x00000283,0x0004003d,0x00000008,0x00000285,0x0000024c, + 0x0004007f,0x00000008,0x00000286,0x00000285,0x0004003d,0x00000008,0x00000287,0x0000026d, + 0x0007000c,0x00000008,0x00000288,0x00000001,0x00000028,0x00000286,0x00000287,0x0003003e, + 0x00000284,0x00000288,0x0004003d,0x00000008,0x0000028c,0x0000027a,0x0003003e,0x0000028b, + 0x0000028c,0x0004003d,0x00000008,0x0000028e,0x0000027f,0x0003003e,0x0000028d,0x0000028e, + 0x0004003d,0x00000008,0x00000290,0x00000284,0x0003003e,0x0000028f,0x00000290,0x00070039, + 0x00000008,0x00000291,0x00000021,0x0000028b,0x0000028d,0x0000028f,0x0003003e,0x00000292, + 0x00000291,0x0003003e,0x00000293,0x000000a2,0x00060039,0x00000008,0x00000294,0x00000032, + 0x00000292,0x00000293,0x0007000c,0x00000008,0x00000295,0x00000001,0x00000028,0x0000028a, + 0x00000294,0x00050041,0x00000007,0x00000297,0x00000067,0x000000f0,0x0004003d,0x00000006, + 0x00000298,0x00000297,0x0003003e,0x00000296,0x00000298,0x00050039,0x00000008,0x00000299, + 0x0000000b,0x00000296,0x00050085,0x00000008,0x0000029a,0x00000295,0x00000299,0x0003003e, + 0x00000289,0x0000029a,0x0004003d,0x00000008,0x0000029b,0x000001c1,0x0004003d,0x00000008, + 0x0000029c,0x00000289,0x00050085,0x00000008,0x0000029d,0x0000029c,0x0000029b,0x0003003e, + 0x00000289,0x0000029d,0x0004003d,0x00000008,0x0000029f,0x00000289,0x00050085,0x00000008, + 0x000002a0,0x0000023f,0x0000029f,0x00050081,0x00000008,0x000002a1,0x000002a0,0x0000009c, + 0x0003003e,0x000002a2,0x000002a1,0x00050039,0x00000008,0x000002a3,0x00000035,0x000002a2, + 0x0003003e,0x0000029e,0x000002a3,0x0004003d,0x00000008,0x000002a4,0x00000289,0x0004003d, + 0x00000008,0x000002a5,0x00000139,0x00050085,0x00000008,0x000002a6,0x000002a4,0x000002a5, + 0x0004003d,0x00000008,0x000002a7,0x00000289,0x0004003d,0x00000008,0x000002a8,0x00000142, + 0x00050085,0x00000008,0x000002a9,0x000002a7,0x000002a8,0x00050081,0x00000008,0x000002aa, + 0x000002a6,0x000002a9,0x0004003d,0x00000008,0x000002ab,0x00000289,0x0004003d,0x00000008, + 0x000002ac,0x0000015d,0x00050085,0x00000008,0x000002ad,0x000002ab,0x000002ac,0x00050081, + 0x00000008,0x000002ae,0x000002aa,0x000002ad,0x0004003d,0x00000008,0x000002af,0x00000289, + 0x0004003d,0x00000008,0x000002b0,0x00000154,0x00050085,0x00000008,0x000002b1,0x000002af, + 0x000002b0,0x00050081,0x00000008,0x000002b2,0x000002ae,0x000002b1,0x0004003d,0x00000008, + 0x000002b3,0x0000014b,0x00050081,0x00000008,0x000002b4,0x000002b2,0x000002b3,0x0004003d, + 0x00000008,0x000002b5,0x0000029e,0x00050085,0x00000008,0x000002b6,0x000002b4,0x000002b5, + 0x0003003e,0x00000063,0x000002b6,0x0004003d,0x00000008,0x000002b7,0x00000289,0x0004003d, + 0x00000008,0x000002b8,0x0000013c,0x00050085,0x00000008,0x000002b9,0x000002b7,0x000002b8, + 0x0004003d,0x00000008,0x000002ba,0x00000289,0x0004003d,0x00000008,0x000002bb,0x00000145, + 0x00050085,0x00000008,0x000002bc,0x000002ba,0x000002bb,0x00050081,0x00000008,0x000002bd, + 0x000002b9,0x000002bc,0x0004003d,0x00000008,0x000002be,0x00000289,0x0004003d,0x00000008, + 0x000002bf,0x00000160,0x00050085,0x00000008,0x000002c0,0x000002be,0x000002bf,0x00050081, + 0x00000008,0x000002c1,0x000002bd,0x000002c0,0x0004003d,0x00000008,0x000002c2,0x00000289, + 0x0004003d,0x00000008,0x000002c3,0x00000157,0x00050085,0x00000008,0x000002c4,0x000002c2, + 0x000002c3,0x00050081,0x00000008,0x000002c5,0x000002c1,0x000002c4,0x0004003d,0x00000008, + 0x000002c6,0x0000014e,0x00050081,0x00000008,0x000002c7,0x000002c5,0x000002c6,0x0004003d, + 0x00000008,0x000002c8,0x0000029e,0x00050085,0x00000008,0x000002c9,0x000002c7,0x000002c8, + 0x0003003e,0x00000064,0x000002c9,0x0004003d,0x00000008,0x000002ca,0x00000289,0x0004003d, + 0x00000008,0x000002cb,0x0000013f,0x00050085,0x00000008,0x000002cc,0x000002ca,0x000002cb, + 0x0004003d,0x00000008,0x000002cd,0x00000289,0x0004003d,0x00000008,0x000002ce,0x00000148, + 0x00050085,0x00000008,0x000002cf,0x000002cd,0x000002ce,0x00050081,0x00000008,0x000002d0, + 0x000002cc,0x000002cf,0x0004003d,0x00000008,0x000002d1,0x00000289,0x0004003d,0x00000008, + 0x000002d2,0x00000163,0x00050085,0x00000008,0x000002d3,0x000002d1,0x000002d2,0x00050081, + 0x00000008,0x000002d4,0x000002d0,0x000002d3,0x0004003d,0x00000008,0x000002d5,0x00000289, + 0x0004003d,0x00000008,0x000002d6,0x0000015a,0x00050085,0x00000008,0x000002d7,0x000002d5, + 0x000002d6,0x00050081,0x00000008,0x000002d8,0x000002d4,0x000002d7,0x0004003d,0x00000008, + 0x000002d9,0x00000151,0x00050081,0x00000008,0x000002da,0x000002d8,0x000002d9,0x0004003d, + 0x00000008,0x000002db,0x0000029e,0x00050085,0x00000008,0x000002dc,0x000002da,0x000002db, + 0x0003003e,0x00000065,0x000002dc,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000006c, + 0x00000000,0x0000006a,0x00030037,0x00000052,0x0000006b,0x000200f8,0x0000006d,0x0004003b, + 0x00000049,0x000002de,0x00000007,0x0004003b,0x0000000d,0x000002e0,0x00000007,0x0004003b, + 0x0000000d,0x000002e1,0x00000007,0x0004003b,0x0000000d,0x000002e2,0x00000007,0x0004003b, + 0x00000052,0x000002e3,0x00000007,0x0004003b,0x00000061,0x000002e5,0x00000007,0x0004003b, + 0x00000052,0x000002f1,0x00000007,0x0004003b,0x00000049,0x000002f3,0x00000007,0x00040039, + 0x0000003c,0x000002df,0x0000003e,0x0004003d,0x00000037,0x000002e4,0x0000006b,0x0003003e, + 0x000002e3,0x000002e4,0x0003003e,0x000002e5,0x000002df,0x00090039,0x00000002,0x000002e6, + 0x00000068,0x000002e0,0x000002e1,0x000002e2,0x000002e3,0x000002e5,0x0004003d,0x00000008, + 0x000002e7,0x000002e0,0x00050041,0x0000000d,0x000002e8,0x000002de,0x000000f0,0x0003003e, + 0x000002e8,0x000002e7,0x0004003d,0x00000008,0x000002e9,0x000002e1,0x00050041,0x0000000d, + 0x000002ea,0x000002de,0x000000bd,0x0003003e,0x000002ea,0x000002e9,0x0004003d,0x00000008, + 0x000002eb,0x000002e2,0x00050041,0x0000000d,0x000002ec,0x000002de,0x0000010d,0x0003003e, + 0x000002ec,0x000002eb,0x00040039,0x00000008,0x000002ed,0x00000050,0x0004003d,0x00000048, + 0x000002ee,0x000002de,0x00060050,0x00000048,0x000002ef,0x000002ed,0x000002ed,0x000002ed, + 0x00050088,0x00000048,0x000002f0,0x000002ee,0x000002ef,0x0003003e,0x000002de,0x000002f0, + 0x0004003d,0x00000037,0x000002f2,0x0000006b,0x0003003e,0x000002f1,0x000002f2,0x0004003d, + 0x00000048,0x000002f4,0x000002de,0x0003003e,0x000002f3,0x000002f4,0x00060039,0x00000002, + 0x000002f5,0x00000056,0x000002f1,0x000002f3,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000074,0x00000000,0x00000070,0x00030037,0x0000006f,0x00000071,0x00030037,0x0000006f, + 0x00000072,0x00030037,0x0000006f,0x00000073,0x000200f8,0x00000075,0x0004003b,0x00000052, + 0x000002f6,0x00000007,0x0004003b,0x00000007,0x000002f7,0x00000007,0x0004003b,0x00000052, + 0x00000305,0x00000007,0x0004003b,0x00000052,0x0000030d,0x00000007,0x0004003b,0x00000052, + 0x00000314,0x00000007,0x0004003b,0x00000052,0x0000031b,0x00000007,0x00050041,0x00000007, + 0x000002f8,0x00000071,0x000000f0,0x0004003d,0x00000006,0x000002f9,0x000002f8,0x0003003e, + 0x000002f7,0x000002f9,0x00050039,0x00000037,0x000002fa,0x0000003a,0x000002f7,0x00050041, + 0x00000007,0x000002fb,0x00000072,0x000000f0,0x0004003d,0x00000006,0x000002fc,0x000002fb, + 0x000500c4,0x00000006,0x000002fe,0x000002fc,0x000002fd,0x00050041,0x00000007,0x000002ff, + 0x00000072,0x000000bd,0x0004003d,0x00000006,0x00000300,0x000002ff,0x000500c4,0x00000006, + 0x00000301,0x00000300,0x000002fd,0x00050050,0x00000037,0x00000302,0x000002fe,0x00000301, + 0x00050080,0x00000037,0x00000303,0x000002fa,0x00000302,0x0003003e,0x000002f6,0x00000303, + 0x0004003d,0x00000037,0x00000304,0x000002f6,0x0003003e,0x00000305,0x00000304,0x00050039, + 0x00000002,0x00000306,0x0000006c,0x00000305,0x00050041,0x00000007,0x00000308,0x000002f6, + 0x000000f0,0x0004003d,0x00000006,0x00000309,0x00000308,0x00050080,0x00000006,0x0000030a, + 0x00000309,0x00000307,0x00050041,0x00000007,0x0000030b,0x000002f6,0x000000f0,0x0003003e, + 0x0000030b,0x0000030a,0x0004003d,0x00000037,0x0000030c,0x000002f6,0x0003003e,0x0000030d, + 0x0000030c,0x00050039,0x00000002,0x0000030e,0x0000006c,0x0000030d,0x00050041,0x00000007, + 0x0000030f,0x000002f6,0x000000bd,0x0004003d,0x00000006,0x00000310,0x0000030f,0x00050080, + 0x00000006,0x00000311,0x00000310,0x00000307,0x00050041,0x00000007,0x00000312,0x000002f6, + 0x000000bd,0x0003003e,0x00000312,0x00000311,0x0004003d,0x00000037,0x00000313,0x000002f6, + 0x0003003e,0x00000314,0x00000313,0x00050039,0x00000002,0x00000315,0x0000006c,0x00000314, + 0x00050041,0x00000007,0x00000316,0x000002f6,0x000000f0,0x0004003d,0x00000006,0x00000317, + 0x00000316,0x00050082,0x00000006,0x00000318,0x00000317,0x00000307,0x00050041,0x00000007, + 0x00000319,0x000002f6,0x000000f0,0x0003003e,0x00000319,0x00000318,0x0004003d,0x00000037, + 0x0000031a,0x000002f6,0x0003003e,0x0000031b,0x0000031a,0x00050039,0x00000002,0x0000031c, + 0x0000006c,0x0000031b,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_shading_change_comp_spv.h b/gpu/vk/shaders/fsr3_shading_change_comp_spv.h new file mode 100644 index 000000000..892d24cc5 --- /dev/null +++ b/gpu/vk/shaders/fsr3_shading_change_comp_spv.h @@ -0,0 +1,282 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_SHADING_CHANGE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000013d,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x00000032,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e, + 0x00000000,0x0003000e,0x00000000,0x00000001,0x0006000f,0x00000005,0x00000004,0x6e69616d, + 0x00000000,0x00000128,0x00060010,0x00000004,0x00000011,0x00000008,0x00000008,0x00000001, + 0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265, + 0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47, + 0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63, + 0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c, + 0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63, + 0x69645f65,0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x00060005, + 0x0000000a,0x53786666,0x72757461,0x28657461,0x003b3166,0x00030005,0x00000009,0x00000078, + 0x00060005,0x00000011,0x4d786666,0x76286e69,0x763b3266,0x003b3266,0x00030005,0x0000000f, + 0x00000078,0x00030005,0x00000010,0x00000079,0x00060005,0x00000016,0x4d786666,0x66287861, + 0x31663b31,0x0000003b,0x00030005,0x00000014,0x00000078,0x00030005,0x00000015,0x00000079, + 0x00060005,0x0000001a,0x4d786666,0x76287861,0x763b3266,0x003b3266,0x00030005,0x00000018, + 0x00000078,0x00030005,0x00000019,0x00000079,0x00050005,0x0000001f,0x646e6552,0x69537265, + 0x0028657a,0x00040005,0x00000022,0x7474694a,0x00287265,0x00080005,0x00000028,0x53746547, + 0x694d4450,0x6d694470,0x69736e65,0x28736e6f,0x003b3175,0x00050005,0x00000027,0x70694d75, + 0x6576654c,0x0000006c,0x00090005,0x0000002d,0x706d6153,0x5053656c,0x70694d44,0x6576654c, + 0x6676286c,0x31753b32,0x0000003b,0x00030005,0x0000002b,0x00565566,0x00050005,0x0000002c, + 0x4c70696d,0x6c657665,0x00000000,0x00090005,0x00000033,0x726f7453,0x61685365,0x676e6964, + 0x6e616843,0x76286567,0x663b3269,0x00003b31,0x00040005,0x00000031,0x50785069,0x0000736f, + 0x00060005,0x00000032,0x61685366,0x676e6964,0x6e616843,0x00006567,0x00090005,0x00000035, + 0x64616853,0x43676e69,0x676e6168,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00080005, + 0x0000003b,0x6d616c43,0x28765570,0x3b326676,0x3b326976,0x3b326976,0x00000000,0x00030005, + 0x00000038,0x00765566,0x00060005,0x00000039,0x78655469,0x65727574,0x657a6953,0x00000000, + 0x00060005,0x0000003a,0x73655269,0x6372756f,0x7a695365,0x00000065,0x00070005,0x00000041, + 0x6e4f7349,0x65726353,0x76286e65,0x763b3269,0x003b3269,0x00030005,0x0000003f,0x00736f70, + 0x00040005,0x00000040,0x657a6973,0x00000000,0x00080005,0x00000045,0x64616853,0x43676e69, + 0x676e6168,0x6d754c65,0x666e4961,0x0000006f,0x00060006,0x00000045,0x00000000,0x6d615366, + 0x73656c70,0x00000000,0x000c0005,0x0000004a,0x706d6f43,0x53657475,0x69646168,0x6843676e, + 0x65676e61,0x616d754c,0x32697628,0x3266763b,0x3269763b,0x0000003b,0x00040005,0x00000047, + 0x50785069,0x0000736f,0x00030005,0x00000048,0x00765566,0x00060005,0x00000049,0x72754369, + 0x746e6572,0x657a6953,0x00000000,0x00070005,0x0000004e,0x64616853,0x43676e69,0x676e6168, + 0x69762865,0x00003b32,0x00040005,0x0000004d,0x50785069,0x0000736f,0x00070005,0x00000066, + 0x53466263,0x50553352,0x4c414353,0x745f5245,0x00000000,0x00060006,0x00000066,0x00000000, + 0x6e655269,0x53726564,0x00657a69,0x000a0006,0x00000066,0x00000001,0x65725069,0x756f6976, + 0x61724673,0x6552656d,0x7265646e,0x657a6953,0x00000000,0x00070006,0x00000066,0x00000002, + 0x73705569,0x656c6163,0x657a6953,0x00000000,0x000a0006,0x00000066,0x00000003,0x65725069, + 0x756f6976,0x61724673,0x7055656d,0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000066, + 0x00000004,0x78614d69,0x646e6552,0x69537265,0x0000657a,0x00070006,0x00000066,0x00000005, + 0x78614d69,0x63737055,0x53656c61,0x00657a69,0x00080006,0x00000066,0x00000006,0x76654466, + 0x54656369,0x6569566f,0x70654477,0x00006874,0x00050006,0x00000066,0x00000007,0x74694a66, + 0x00726574,0x00090006,0x00000066,0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d, + 0x72657474,0x00000000,0x00080006,0x00000066,0x00000009,0x746f4d66,0x566e6f69,0x6f746365, + 0x61635372,0x0000656c,0x00080006,0x00000066,0x0000000a,0x776f4466,0x6163736e,0x6146656c, + 0x726f7463,0x00000000,0x000b0006,0x00000066,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365, + 0x74694a72,0x43726574,0x65636e61,0x74616c6c,0x006e6f69,0x00060006,0x00000066,0x0000000c, + 0x6e615466,0x666c6148,0x00564f46,0x00090006,0x00000066,0x0000000d,0x74694a66,0x53726574, + 0x65757165,0x4c65636e,0x74676e65,0x00000068,0x00060006,0x00000066,0x0000000e,0x6c654466, + 0x69546174,0x0000656d,0x00080006,0x00000066,0x0000000f,0x6c654466,0x72506174,0x70784565, + 0x7275736f,0x00000065,0x000a0006,0x00000066,0x00000010,0x65695666,0x61705377,0x6f546563, + 0x6574654d,0x61467372,0x726f7463,0x00000000,0x00060006,0x00000066,0x00000011,0x61724666, + 0x6e49656d,0x00786564,0x00070006,0x00000066,0x00000012,0x6c655666,0x7469636f,0x63614679, + 0x00726f74,0x00080006,0x00000066,0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373, + 0x0000656c,0x00080006,0x00000066,0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567, + 0x00656c61,0x000a0006,0x00000066,0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e, + 0x65506465,0x61724672,0x0000656d,0x000b0006,0x00000066,0x00000016,0x6e694d66,0x6f736944, + 0x756c6363,0x6e6f6973,0x75636341,0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x00000068, + 0x53466263,0x70553352,0x6c616373,0x00007265,0x00050005,0x00000077,0x70735f72,0x696d5f64, + 0x00007370,0x00060005,0x00000081,0x694c5f73,0x7261656e,0x6d616c43,0x00000070,0x00070005, + 0x0000008e,0x735f7772,0x69646168,0x635f676e,0x676e6168,0x00000065,0x00060005,0x0000009a, + 0x6d615366,0x4c656c70,0x7461636f,0x006e6f69,0x00070005,0x0000009f,0x616c4366,0x6465706d, + 0x61636f4c,0x6e6f6974,0x00000000,0x00040005,0x000000a4,0x61726170,0x0000006d,0x00040005, + 0x000000a6,0x61726170,0x0000006d,0x00040005,0x000000a8,0x61726170,0x0000006d,0x00040005, + 0x000000a9,0x61726170,0x0000006d,0x00050005,0x000000ab,0x616c4366,0x6465706d,0x00007655, + 0x00040005,0x000000bd,0x70694d66,0x00007655,0x00040005,0x000000c0,0x61726170,0x0000006d, + 0x00040005,0x000000c2,0x61726170,0x0000006d,0x00040005,0x000000c4,0x61726170,0x0000006d, + 0x00040005,0x000000c5,0x61726170,0x0000006d,0x00050005,0x000000c8,0x70694d69,0x6576654c, + 0x0000006c,0x00040005,0x000000d1,0x6d615366,0x00656c70,0x00040005,0x000000d4,0x61726170, + 0x0000006d,0x00040005,0x000000d6,0x61726170,0x0000006d,0x00040005,0x000000d9,0x6f666e69, + 0x00000000,0x00040005,0x000000eb,0x61726170,0x0000006d,0x00040005,0x000000ec,0x61726170, + 0x0000006d,0x00030005,0x000000f0,0x00765566,0x00050005,0x000000f8,0x4a765566,0x65747469, + 0x00646572,0x00040005,0x000000ff,0x6f666e69,0x00000000,0x00040005,0x00000101,0x61726170, + 0x0000006d,0x00040005,0x00000103,0x61726170,0x0000006d,0x00060005,0x00000106,0x61685366, + 0x676e6964,0x6e616843,0x00006567,0x00050005,0x00000107,0x70694d69,0x6576654c,0x0000006c, + 0x00040005,0x00000116,0x61726170,0x0000006d,0x00040005,0x00000118,0x61726170,0x0000006d, + 0x00040005,0x0000011f,0x61726170,0x0000006d,0x00040005,0x00000122,0x61726170,0x0000006d, + 0x00040005,0x00000124,0x61726170,0x0000006d,0x00080005,0x00000128,0x475f6c67,0x61626f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00040005,0x0000012c,0x61726170,0x0000006d, + 0x00060005,0x00000131,0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00030047,0x00000066, + 0x00000002,0x00050048,0x00000066,0x00000000,0x00000023,0x00000000,0x00050048,0x00000066, + 0x00000001,0x00000023,0x00000008,0x00050048,0x00000066,0x00000002,0x00000023,0x00000010, + 0x00050048,0x00000066,0x00000003,0x00000023,0x00000018,0x00050048,0x00000066,0x00000004, + 0x00000023,0x00000020,0x00050048,0x00000066,0x00000005,0x00000023,0x00000028,0x00050048, + 0x00000066,0x00000006,0x00000023,0x00000030,0x00050048,0x00000066,0x00000007,0x00000023, + 0x00000040,0x00050048,0x00000066,0x00000008,0x00000023,0x00000048,0x00050048,0x00000066, + 0x00000009,0x00000023,0x00000050,0x00050048,0x00000066,0x0000000a,0x00000023,0x00000058, + 0x00050048,0x00000066,0x0000000b,0x00000023,0x00000060,0x00050048,0x00000066,0x0000000c, + 0x00000023,0x00000068,0x00050048,0x00000066,0x0000000d,0x00000023,0x0000006c,0x00050048, + 0x00000066,0x0000000e,0x00000023,0x00000070,0x00050048,0x00000066,0x0000000f,0x00000023, + 0x00000074,0x00050048,0x00000066,0x00000010,0x00000023,0x00000078,0x00050048,0x00000066, + 0x00000011,0x00000023,0x0000007c,0x00050048,0x00000066,0x00000012,0x00000023,0x00000080, + 0x00050048,0x00000066,0x00000013,0x00000023,0x00000084,0x00050048,0x00000066,0x00000014, + 0x00000023,0x00000088,0x00050048,0x00000066,0x00000015,0x00000023,0x0000008c,0x00050048, + 0x00000066,0x00000016,0x00000023,0x00000090,0x00040047,0x00000068,0x00000021,0x00000002, + 0x00040047,0x00000068,0x00000022,0x00000000,0x00040047,0x00000077,0x00000021,0x00000000, + 0x00040047,0x00000077,0x00000022,0x00000000,0x00040047,0x00000081,0x00000021,0x000003e9, + 0x00040047,0x00000081,0x00000022,0x00000000,0x00040047,0x0000008e,0x00000021,0x00000001, + 0x00040047,0x0000008e,0x00000022,0x00000000,0x00040047,0x00000128,0x0000000b,0x0000001c, + 0x00040047,0x00000131,0x00000021,0x000003e8,0x00040047,0x00000131,0x00000022,0x00000000, + 0x00040047,0x0000013c,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003, + 0x00000002,0x00030016,0x00000006,0x00000020,0x00040020,0x00000007,0x00000007,0x00000006, + 0x00040021,0x00000008,0x00000006,0x00000007,0x00040017,0x0000000c,0x00000006,0x00000002, + 0x00040020,0x0000000d,0x00000007,0x0000000c,0x00050021,0x0000000e,0x0000000c,0x0000000d, + 0x0000000d,0x00050021,0x00000013,0x00000006,0x00000007,0x00000007,0x00040015,0x0000001c, + 0x00000020,0x00000001,0x00040017,0x0000001d,0x0000001c,0x00000002,0x00030021,0x0000001e, + 0x0000001d,0x00030021,0x00000021,0x0000000c,0x00040015,0x00000024,0x00000020,0x00000000, + 0x00040020,0x00000025,0x00000007,0x00000024,0x00040021,0x00000026,0x0000001d,0x00000025, + 0x00050021,0x0000002a,0x0000000c,0x0000000d,0x00000025,0x00040020,0x0000002f,0x00000007, + 0x0000001d,0x00050021,0x00000030,0x00000002,0x0000002f,0x00000007,0x00060021,0x00000037, + 0x0000000c,0x0000000d,0x0000002f,0x0000002f,0x00020014,0x0000003d,0x00050021,0x0000003e, + 0x0000003d,0x0000002f,0x0000002f,0x0004002b,0x00000024,0x00000043,0x00000003,0x0004001c, + 0x00000044,0x00000006,0x00000043,0x0003001e,0x00000045,0x00000044,0x00060021,0x00000046, + 0x00000045,0x0000002f,0x0000000d,0x0000001d,0x00040021,0x0000004c,0x00000002,0x0000002f, + 0x0004002b,0x00000006,0x00000051,0x00000000,0x0004002b,0x00000006,0x00000052,0x3f800000, + 0x00040017,0x00000065,0x00000006,0x00000004,0x0019001e,0x00000066,0x0000001d,0x0000001d, + 0x0000001d,0x0000001d,0x0000001d,0x0000001d,0x00000065,0x0000000c,0x0000000c,0x0000000c, + 0x0000000c,0x0000000c,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000067,0x00000002, + 0x00000066,0x0004003b,0x00000067,0x00000068,0x00000002,0x0004002b,0x0000001c,0x00000069, + 0x00000000,0x00040020,0x0000006a,0x00000002,0x0000001d,0x0004002b,0x0000001c,0x0000006f, + 0x00000007,0x00040020,0x00000070,0x00000002,0x0000000c,0x00090019,0x00000075,0x00000006, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x00000076, + 0x00000000,0x00000075,0x0004003b,0x00000076,0x00000077,0x00000000,0x0002001a,0x0000007f, + 0x00040020,0x00000080,0x00000000,0x0000007f,0x0004003b,0x00000080,0x00000081,0x00000000, + 0x0003001b,0x00000083,0x00000075,0x00090019,0x0000008c,0x00000006,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x0000000f,0x00040020,0x0000008d,0x00000000,0x0000008c, + 0x0004003b,0x0000008d,0x0000008e,0x00000000,0x0004002b,0x00000006,0x00000095,0x3f000000, + 0x0005002c,0x0000000c,0x000000a0,0x00000095,0x00000095,0x00040017,0x000000b4,0x00000024, + 0x00000002,0x00040017,0x000000b8,0x0000003d,0x00000002,0x0004002b,0x00000024,0x000000bf, + 0x00000000,0x00040020,0x000000c7,0x00000007,0x0000001c,0x0004002b,0x0000001c,0x000000cf, + 0x00000003,0x00040020,0x000000d8,0x00000007,0x00000045,0x0004002b,0x00000024,0x000000dd, + 0x00000001,0x0004002b,0x0000001c,0x000000e4,0x00000001,0x00040017,0x00000126,0x00000024, + 0x00000003,0x00040020,0x00000127,0x00000001,0x00000126,0x0004003b,0x00000127,0x00000128, + 0x00000001,0x0004002b,0x00000006,0x0000012e,0x387fda40,0x0004002b,0x00000006,0x0000012f, + 0x477fe000,0x0004002b,0x00000006,0x00000130,0x37801002,0x0004003b,0x00000080,0x00000131, + 0x00000000,0x0004002b,0x00000006,0x00000132,0x7f7fffff,0x0004002b,0x00000006,0x00000133, + 0x00800000,0x0004002b,0x00000006,0x00000134,0x3a1fe868,0x0004002b,0x00000006,0x00000135, + 0x3d800000,0x0004002b,0x00000006,0x00000136,0x3d3d70a4,0x0004002b,0x00000006,0x00000137, + 0x3e400000,0x0004002b,0x00000006,0x00000138,0x40000000,0x0004002b,0x0000001c,0x00000139, + 0x00000002,0x0004002b,0x00000006,0x0000013a,0x461c4000,0x0004002b,0x00000024,0x0000013b, + 0x00000008,0x0006002c,0x00000126,0x0000013c,0x0000013b,0x0000013b,0x000000dd,0x00050036, + 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000002f, + 0x0000012c,0x00000007,0x0004003d,0x00000126,0x00000129,0x00000128,0x0007004f,0x000000b4, + 0x0000012a,0x00000129,0x00000129,0x00000000,0x00000001,0x0004007c,0x0000001d,0x0000012b, + 0x0000012a,0x0003003e,0x0000012c,0x0000012b,0x00050039,0x00000002,0x0000012d,0x0000004e, + 0x0000012c,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003d,0x00000006,0x00000050, + 0x00000009,0x0008000c,0x00000006,0x00000053,0x00000001,0x0000002b,0x00000050,0x00000051, + 0x00000052,0x000200fe,0x00000053,0x00010038,0x00050036,0x0000000c,0x00000011,0x00000000, + 0x0000000e,0x00030037,0x0000000d,0x0000000f,0x00030037,0x0000000d,0x00000010,0x000200f8, + 0x00000012,0x0004003d,0x0000000c,0x00000056,0x0000000f,0x0004003d,0x0000000c,0x00000057, + 0x00000010,0x0007000c,0x0000000c,0x00000058,0x00000001,0x00000025,0x00000056,0x00000057, + 0x000200fe,0x00000058,0x00010038,0x00050036,0x00000006,0x00000016,0x00000000,0x00000013, + 0x00030037,0x00000007,0x00000014,0x00030037,0x00000007,0x00000015,0x000200f8,0x00000017, + 0x0004003d,0x00000006,0x0000005b,0x00000014,0x0004003d,0x00000006,0x0000005c,0x00000015, + 0x0007000c,0x00000006,0x0000005d,0x00000001,0x00000028,0x0000005b,0x0000005c,0x000200fe, + 0x0000005d,0x00010038,0x00050036,0x0000000c,0x0000001a,0x00000000,0x0000000e,0x00030037, + 0x0000000d,0x00000018,0x00030037,0x0000000d,0x00000019,0x000200f8,0x0000001b,0x0004003d, + 0x0000000c,0x00000060,0x00000018,0x0004003d,0x0000000c,0x00000061,0x00000019,0x0007000c, + 0x0000000c,0x00000062,0x00000001,0x00000028,0x00000060,0x00000061,0x000200fe,0x00000062, + 0x00010038,0x00050036,0x0000001d,0x0000001f,0x00000000,0x0000001e,0x000200f8,0x00000020, + 0x00050041,0x0000006a,0x0000006b,0x00000068,0x00000069,0x0004003d,0x0000001d,0x0000006c, + 0x0000006b,0x000200fe,0x0000006c,0x00010038,0x00050036,0x0000000c,0x00000022,0x00000000, + 0x00000021,0x000200f8,0x00000023,0x00050041,0x00000070,0x00000071,0x00000068,0x0000006f, + 0x0004003d,0x0000000c,0x00000072,0x00000071,0x000200fe,0x00000072,0x00010038,0x00050036, + 0x0000001d,0x00000028,0x00000000,0x00000026,0x00030037,0x00000025,0x00000027,0x000200f8, + 0x00000029,0x0004003d,0x00000075,0x00000078,0x00000077,0x0004003d,0x00000024,0x00000079, + 0x00000027,0x0004007c,0x0000001c,0x0000007a,0x00000079,0x00050067,0x0000001d,0x0000007b, + 0x00000078,0x0000007a,0x000200fe,0x0000007b,0x00010038,0x00050036,0x0000000c,0x0000002d, + 0x00000000,0x0000002a,0x00030037,0x0000000d,0x0000002b,0x00030037,0x00000025,0x0000002c, + 0x000200f8,0x0000002e,0x0004003d,0x00000075,0x0000007e,0x00000077,0x0004003d,0x0000007f, + 0x00000082,0x00000081,0x00050056,0x00000083,0x00000084,0x0000007e,0x00000082,0x0004003d, + 0x0000000c,0x00000085,0x0000002b,0x0004003d,0x00000024,0x00000086,0x0000002c,0x00040070, + 0x00000006,0x00000087,0x00000086,0x00070058,0x00000065,0x00000088,0x00000084,0x00000085, + 0x00000002,0x00000087,0x0007004f,0x0000000c,0x00000089,0x00000088,0x00000088,0x00000000, + 0x00000001,0x000200fe,0x00000089,0x00010038,0x00050036,0x00000002,0x00000033,0x00000000, + 0x00000030,0x00030037,0x0000002f,0x00000031,0x00030037,0x00000007,0x00000032,0x000200f8, + 0x00000034,0x0004003d,0x0000008c,0x0000008f,0x0000008e,0x0004003d,0x0000001d,0x00000090, + 0x00000031,0x0004003d,0x00000006,0x00000091,0x00000032,0x00070050,0x00000065,0x00000092, + 0x00000091,0x00000051,0x00000051,0x00000051,0x00040063,0x0000008f,0x00000090,0x00000092, + 0x000100fd,0x00010038,0x00050036,0x0000001d,0x00000035,0x00000000,0x0000001e,0x000200f8, + 0x00000036,0x00040039,0x0000001d,0x00000093,0x0000001f,0x0004006f,0x0000000c,0x00000094, + 0x00000093,0x0005008e,0x0000000c,0x00000096,0x00000094,0x00000095,0x0004006e,0x0000001d, + 0x00000097,0x00000096,0x000200fe,0x00000097,0x00010038,0x00050036,0x0000000c,0x0000003b, + 0x00000000,0x00000037,0x00030037,0x0000000d,0x00000038,0x00030037,0x0000002f,0x00000039, + 0x00030037,0x0000002f,0x0000003a,0x000200f8,0x0000003c,0x0004003b,0x0000000d,0x0000009a, + 0x00000007,0x0004003b,0x0000000d,0x0000009f,0x00000007,0x0004003b,0x0000000d,0x000000a4, + 0x00000007,0x0004003b,0x0000000d,0x000000a6,0x00000007,0x0004003b,0x0000000d,0x000000a8, + 0x00000007,0x0004003b,0x0000000d,0x000000a9,0x00000007,0x0004003b,0x0000000d,0x000000ab, + 0x00000007,0x0004003d,0x0000000c,0x0000009b,0x00000038,0x0004003d,0x0000001d,0x0000009c, + 0x00000039,0x0004006f,0x0000000c,0x0000009d,0x0000009c,0x00050085,0x0000000c,0x0000009e, + 0x0000009b,0x0000009d,0x0003003e,0x0000009a,0x0000009e,0x0004003d,0x0000001d,0x000000a1, + 0x00000039,0x0004006f,0x0000000c,0x000000a2,0x000000a1,0x00050083,0x0000000c,0x000000a3, + 0x000000a2,0x000000a0,0x0004003d,0x0000000c,0x000000a5,0x0000009a,0x0003003e,0x000000a4, + 0x000000a5,0x0003003e,0x000000a6,0x000000a3,0x00060039,0x0000000c,0x000000a7,0x00000011, + 0x000000a4,0x000000a6,0x0003003e,0x000000a8,0x000000a0,0x0003003e,0x000000a9,0x000000a7, + 0x00060039,0x0000000c,0x000000aa,0x0000001a,0x000000a8,0x000000a9,0x0003003e,0x0000009f, + 0x000000aa,0x0004003d,0x0000000c,0x000000ac,0x0000009f,0x0004003d,0x0000001d,0x000000ad, + 0x0000003a,0x0004006f,0x0000000c,0x000000ae,0x000000ad,0x00050088,0x0000000c,0x000000af, + 0x000000ac,0x000000ae,0x0003003e,0x000000ab,0x000000af,0x0004003d,0x0000000c,0x000000b0, + 0x000000ab,0x000200fe,0x000000b0,0x00010038,0x00050036,0x0000003d,0x00000041,0x00000000, + 0x0000003e,0x00030037,0x0000002f,0x0000003f,0x00030037,0x0000002f,0x00000040,0x000200f8, + 0x00000042,0x0004003d,0x0000001d,0x000000b3,0x0000003f,0x0004007c,0x000000b4,0x000000b5, + 0x000000b3,0x0004003d,0x0000001d,0x000000b6,0x00000040,0x0004007c,0x000000b4,0x000000b7, + 0x000000b6,0x000500b0,0x000000b8,0x000000b9,0x000000b5,0x000000b7,0x0004009b,0x0000003d, + 0x000000ba,0x000000b9,0x000200fe,0x000000ba,0x00010038,0x00050036,0x00000045,0x0000004a, + 0x00000000,0x00000046,0x00030037,0x0000002f,0x00000047,0x00030037,0x0000000d,0x00000048, + 0x00030037,0x0000001d,0x00000049,0x000200f8,0x0000004b,0x0004003b,0x0000000d,0x000000bd, + 0x00000007,0x0004003b,0x00000025,0x000000c0,0x00000007,0x0004003b,0x0000000d,0x000000c2, + 0x00000007,0x0004003b,0x0000002f,0x000000c4,0x00000007,0x0004003b,0x0000002f,0x000000c5, + 0x00000007,0x0004003b,0x000000c7,0x000000c8,0x00000007,0x0004003b,0x0000000d,0x000000d1, + 0x00000007,0x0004003b,0x0000000d,0x000000d4,0x00000007,0x0004003b,0x00000025,0x000000d6, + 0x00000007,0x0004003b,0x000000d8,0x000000d9,0x00000007,0x00040039,0x0000001d,0x000000be, + 0x00000035,0x0003003e,0x000000c0,0x000000bf,0x00050039,0x0000001d,0x000000c1,0x00000028, + 0x000000c0,0x0004003d,0x0000000c,0x000000c3,0x00000048,0x0003003e,0x000000c2,0x000000c3, + 0x0003003e,0x000000c4,0x000000be,0x0003003e,0x000000c5,0x000000c1,0x00070039,0x0000000c, + 0x000000c6,0x0000003b,0x000000c2,0x000000c4,0x000000c5,0x0003003e,0x000000bd,0x000000c6, + 0x0003003e,0x000000c8,0x00000069,0x000200f9,0x000000c9,0x000200f8,0x000000c9,0x000400f6, + 0x000000cb,0x000000cc,0x00000000,0x000200f9,0x000000cd,0x000200f8,0x000000cd,0x0004003d, + 0x0000001c,0x000000ce,0x000000c8,0x000500b1,0x0000003d,0x000000d0,0x000000ce,0x000000cf, + 0x000400fa,0x000000d0,0x000000ca,0x000000cb,0x000200f8,0x000000ca,0x0004003d,0x0000001c, + 0x000000d2,0x000000c8,0x0004007c,0x00000024,0x000000d3,0x000000d2,0x0004003d,0x0000000c, + 0x000000d5,0x000000bd,0x0003003e,0x000000d4,0x000000d5,0x0003003e,0x000000d6,0x000000d3, + 0x00060039,0x0000000c,0x000000d7,0x0000002d,0x000000d4,0x000000d6,0x0003003e,0x000000d1, + 0x000000d7,0x0004003d,0x0000001c,0x000000da,0x000000c8,0x00050041,0x00000007,0x000000db, + 0x000000d1,0x000000bf,0x0004003d,0x00000006,0x000000dc,0x000000db,0x00050041,0x00000007, + 0x000000de,0x000000d1,0x000000dd,0x0004003d,0x00000006,0x000000df,0x000000de,0x00050085, + 0x00000006,0x000000e0,0x000000dc,0x000000df,0x0006000c,0x00000006,0x000000e1,0x00000001, + 0x00000004,0x000000e0,0x00060041,0x00000007,0x000000e2,0x000000d9,0x00000069,0x000000da, + 0x0003003e,0x000000e2,0x000000e1,0x000200f9,0x000000cc,0x000200f8,0x000000cc,0x0004003d, + 0x0000001c,0x000000e3,0x000000c8,0x00050080,0x0000001c,0x000000e5,0x000000e3,0x000000e4, + 0x0003003e,0x000000c8,0x000000e5,0x000200f9,0x000000c9,0x000200f8,0x000000cb,0x0004003d, + 0x00000045,0x000000e6,0x000000d9,0x000200fe,0x000000e6,0x00010038,0x00050036,0x00000002, + 0x0000004e,0x00000000,0x0000004c,0x00030037,0x0000002f,0x0000004d,0x000200f8,0x0000004f, + 0x0004003b,0x0000002f,0x000000eb,0x00000007,0x0004003b,0x0000002f,0x000000ec,0x00000007, + 0x0004003b,0x0000000d,0x000000f0,0x00000007,0x0004003b,0x0000000d,0x000000f8,0x00000007, + 0x0004003b,0x000000d8,0x000000ff,0x00000007,0x0004003b,0x0000002f,0x00000101,0x00000007, + 0x0004003b,0x0000000d,0x00000103,0x00000007,0x0004003b,0x00000007,0x00000106,0x00000007, + 0x0004003b,0x000000c7,0x00000107,0x00000007,0x0004003b,0x00000007,0x00000116,0x00000007, + 0x0004003b,0x00000007,0x00000118,0x00000007,0x0004003b,0x00000007,0x0000011f,0x00000007, + 0x0004003b,0x0000002f,0x00000122,0x00000007,0x0004003b,0x00000007,0x00000124,0x00000007, + 0x0004003d,0x0000001d,0x000000e9,0x0000004d,0x00040039,0x0000001d,0x000000ea,0x00000035, + 0x0003003e,0x000000eb,0x000000e9,0x0003003e,0x000000ec,0x000000ea,0x00060039,0x0000003d, + 0x000000ed,0x00000041,0x000000eb,0x000000ec,0x000300f7,0x000000ef,0x00000000,0x000400fa, + 0x000000ed,0x000000ee,0x000000ef,0x000200f8,0x000000ee,0x0004003d,0x0000001d,0x000000f1, + 0x0000004d,0x0004006f,0x0000000c,0x000000f2,0x000000f1,0x00050050,0x0000000c,0x000000f3, + 0x00000095,0x00000095,0x00050081,0x0000000c,0x000000f4,0x000000f2,0x000000f3,0x00040039, + 0x0000001d,0x000000f5,0x00000035,0x0004006f,0x0000000c,0x000000f6,0x000000f5,0x00050088, + 0x0000000c,0x000000f7,0x000000f4,0x000000f6,0x0003003e,0x000000f0,0x000000f7,0x0004003d, + 0x0000000c,0x000000f9,0x000000f0,0x00040039,0x0000000c,0x000000fa,0x00000022,0x00040039, + 0x0000001d,0x000000fb,0x0000001f,0x0004006f,0x0000000c,0x000000fc,0x000000fb,0x00050088, + 0x0000000c,0x000000fd,0x000000fa,0x000000fc,0x00050081,0x0000000c,0x000000fe,0x000000f9, + 0x000000fd,0x0003003e,0x000000f8,0x000000fe,0x00040039,0x0000001d,0x00000100,0x00000035, + 0x0004003d,0x0000001d,0x00000102,0x0000004d,0x0003003e,0x00000101,0x00000102,0x0004003d, + 0x0000000c,0x00000104,0x000000f8,0x0003003e,0x00000103,0x00000104,0x00070039,0x00000045, + 0x00000105,0x0000004a,0x00000101,0x00000103,0x00000100,0x0003003e,0x000000ff,0x00000105, + 0x0003003e,0x00000106,0x00000051,0x0003003e,0x00000107,0x00000069,0x000200f9,0x00000108, + 0x000200f8,0x00000108,0x000400f6,0x0000010a,0x0000010b,0x00000000,0x000200f9,0x0000010c, + 0x000200f8,0x0000010c,0x0004003d,0x0000001c,0x0000010d,0x00000107,0x000500b1,0x0000003d, + 0x0000010e,0x0000010d,0x000000cf,0x000400fa,0x0000010e,0x00000109,0x0000010a,0x000200f8, + 0x00000109,0x0004003d,0x0000001c,0x0000010f,0x00000107,0x00060041,0x00000007,0x00000110, + 0x000000ff,0x00000069,0x0000010f,0x0004003d,0x00000006,0x00000111,0x00000110,0x000500ba, + 0x0000003d,0x00000112,0x00000111,0x00000051,0x000300f7,0x00000114,0x00000000,0x000400fa, + 0x00000112,0x00000113,0x00000114,0x000200f8,0x00000113,0x0004003d,0x0000001c,0x00000115, + 0x00000107,0x0004003d,0x00000006,0x00000117,0x00000106,0x0003003e,0x00000116,0x00000117, + 0x00060041,0x00000007,0x00000119,0x000000ff,0x00000069,0x00000115,0x0004003d,0x00000006, + 0x0000011a,0x00000119,0x0003003e,0x00000118,0x0000011a,0x00060039,0x00000006,0x0000011b, + 0x00000016,0x00000116,0x00000118,0x00050085,0x00000006,0x0000011c,0x0000011b,0x00000052, + 0x0003003e,0x00000106,0x0000011c,0x000200f9,0x00000114,0x000200f8,0x00000114,0x000200f9, + 0x0000010b,0x000200f8,0x0000010b,0x0004003d,0x0000001c,0x0000011d,0x00000107,0x00050080, + 0x0000001c,0x0000011e,0x0000011d,0x000000e4,0x0003003e,0x00000107,0x0000011e,0x000200f9, + 0x00000108,0x000200f8,0x0000010a,0x0004003d,0x00000006,0x00000120,0x00000106,0x0003003e, + 0x0000011f,0x00000120,0x00050039,0x00000006,0x00000121,0x0000000a,0x0000011f,0x0004003d, + 0x0000001d,0x00000123,0x0000004d,0x0003003e,0x00000122,0x00000123,0x0003003e,0x00000124, + 0x00000121,0x00060039,0x00000002,0x00000125,0x00000033,0x00000122,0x00000124,0x000200f9, + 0x000000ef,0x000200f8,0x000000ef,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h b/gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h new file mode 100644 index 000000000..ec5446d11 --- /dev/null +++ b/gpu/vk/shaders/fsr3_shading_change_pyramid_comp_spv.h @@ -0,0 +1,1903 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_SHADING_CHANGE_PYRAMID_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000091b,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x00020011,0x0000003d,0x00020011,0x00000044,0x0006000b,0x00000001,0x4c534c47, + 0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,0x0007000f,0x00000005, + 0x00000004,0x6e69616d,0x00000000,0x00000905,0x00000907,0x00060010,0x00000004,0x00000011, + 0x00000100,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x000b0004,0x455f4c47, + 0x735f5458,0x6c706d61,0x656c7265,0x745f7373,0x75747865,0x665f6572,0x74636e75,0x736e6f69, + 0x00000000,0x000b0004,0x455f4c47,0x735f5458,0x65646168,0x78655f72,0x63696c70,0x615f7469, + 0x68746972,0x6974656d,0x79745f63,0x00736570,0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45, + 0x74735f70,0x5f656c79,0x656e696c,0x7269645f,0x69746365,0x00006576,0x00080004,0x475f4c47, + 0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65,0x74636572,0x00657669,0x00090004,0x4b5f4c47, + 0x735f5248,0x65646168,0x75735f72,0x6f726762,0x625f7075,0x63697361,0x00000000,0x00080004, + 0x4b5f4c47,0x735f5248,0x65646168,0x75735f72,0x6f726762,0x715f7075,0x00646175,0x00040005, + 0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c,0x42786666,0x69667469,0x45646c65, + 0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000,0x00030005,0x00000009,0x00637273, + 0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b,0x73746962,0x00000000,0x000a0005, + 0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e,0x73614d74,0x3175286b,0x3b31753b, + 0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005,0x0000000f,0x00736e69,0x00040005, + 0x00000010,0x73746962,0x00000000,0x00060005,0x00000018,0x4d786666,0x66286e69,0x31663b31, + 0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005,0x00000017,0x00000079,0x00060005, + 0x0000001f,0x4d786666,0x69286e69,0x31693b31,0x0000003b,0x00030005,0x0000001d,0x00000078, + 0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023,0x4d786666,0x66287861,0x31663b31, + 0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005,0x00000022,0x00000079,0x00060005, + 0x00000027,0x4d786666,0x69287861,0x31693b31,0x0000003b,0x00030005,0x00000025,0x00000078, + 0x00030005,0x00000026,0x00000079,0x00060005,0x0000002b,0x50786666,0x6628776f,0x31663b31, + 0x0000003b,0x00030005,0x00000029,0x00000078,0x00030005,0x0000002a,0x00000079,0x000a0005, + 0x00000030,0x52786666,0x70616d65,0x57726f46,0x52657661,0x63756465,0x6e6f6974,0x3b317528, + 0x00000000,0x00030005,0x0000002f,0x00000061,0x00050005,0x00000034,0x646e6552,0x69537265, + 0x0028657a,0x00090005,0x00000036,0x76657250,0x73756f69,0x6d617246,0x6e655265,0x53726564, + 0x28657a69,0x00000000,0x00040005,0x0000003a,0x7474694a,0x00287265,0x00080005,0x0000003c, + 0x76657250,0x73756f69,0x6d617246,0x74694a65,0x28726574,0x00000000,0x00070005,0x0000003f, + 0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028,0x00050005,0x00000042,0x4370694d, + 0x746e756f,0x00000028,0x00060005,0x00000044,0x576d754e,0x476b726f,0x70756f72,0x00002873, + 0x00070005,0x00000047,0x6b726f57,0x756f7247,0x66664f70,0x28746573,0x00000000,0x00080005, + 0x0000004c,0x64616f4c,0x72727543,0x4c746e65,0x28616d75,0x3b326976,0x00000000,0x00040005, + 0x0000004b,0x50785069,0x0000736f,0x00080005,0x0000004f,0x64616f4c,0x76657250,0x73756f69, + 0x616d754c,0x32697628,0x0000003b,0x00040005,0x0000004e,0x50785069,0x0000736f,0x000a0005, + 0x00000053,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f,0x6365566e,0x28726f74,0x3b326976, + 0x00000000,0x00050005,0x00000052,0x49785069,0x7475706e,0x00000000,0x00050005,0x00000055, + 0x6f707845,0x65727573,0x00000028,0x00080005,0x0000005a,0x6f4c5752,0x79506461,0x696d6172, + 0x69762864,0x31753b32,0x0000003b,0x00040005,0x00000058,0x50785069,0x0000736f,0x00040005, + 0x00000059,0x65646e69,0x00000078,0x00090005,0x00000061,0x726f7453,0x72795065,0x64696d61, + 0x32697628,0x3266763b,0x3b31753b,0x00000000,0x00040005,0x0000005e,0x50785069,0x0000736f, + 0x00050005,0x0000005f,0x5674756f,0x65756c61,0x00000000,0x00040005,0x00000060,0x65646e69, + 0x00000078,0x000a0005,0x00000065,0x5f445053,0x72636e49,0x65736165,0x6d6f7441,0x6f436369, + 0x65746e75,0x31752872,0x0000003b,0x00050005,0x00000064,0x43647073,0x746e756f,0x00007265, + 0x00080005,0x00000067,0x5f445053,0x65736552,0x6f744174,0x4363696d,0x746e756f,0x00287265, + 0x00080005,0x0000006c,0x446e694d,0x64697669,0x79426465,0x2878614d,0x663b3166,0x00003b31, + 0x00030005,0x0000006a,0x00003076,0x00030005,0x0000006b,0x00003176,0x00060005,0x00000071, + 0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005,0x00000070,0x00765566,0x00080005, + 0x00000077,0x6d616c43,0x616f4c70,0x69762864,0x69763b32,0x69763b32,0x00003b32,0x00050005, + 0x00000074,0x53785069,0x6c706d61,0x00000065,0x00050005,0x00000075,0x4f785069,0x65736666, + 0x00000074,0x00060005,0x00000076,0x78655469,0x65727574,0x657a6953,0x00000000,0x000a0005, + 0x0000007a,0x49647053,0x6572636e,0x41657361,0x696d6f74,0x756f4363,0x7265746e,0x3b317528, + 0x00000000,0x00040005,0x00000079,0x63696c73,0x00000065,0x00080005,0x0000007c,0x47647053, + 0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000,0x00090005,0x0000007f,0x52647053, + 0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00040005,0x0000007e, + 0x63696c73,0x00000065,0x00050005,0x00000083,0x706d6153,0x6553656c,0x00000074,0x00060006, + 0x00000083,0x00000000,0x6d615366,0x73656c70,0x00000000,0x000b0005,0x00000087,0x74726f53, + 0x28746553,0x75727473,0x532d7463,0x6c706d61,0x74655365,0x5b31662d,0x3b315d35,0x00000000, + 0x00040005,0x00000086,0x74655366,0x00000000,0x00160005,0x0000008d,0x706d6f43,0x4d657475, + 0x6d696e69,0x69446d75,0x72656666,0x65636e65,0x32697628,0x7274733b,0x2d746375,0x706d6153, + 0x6553656c,0x31662d74,0x315d355b,0x7274733b,0x2d746375,0x706d6153,0x6553656c,0x31662d74, + 0x315d355b,0x0000003b,0x00040005,0x0000008a,0x50785069,0x0000736f,0x00040005,0x0000008b, + 0x74655366,0x00000030,0x00040005,0x0000008c,0x74655366,0x00000031,0x000b0005,0x00000091, + 0x43746547,0x65727275,0x754c746e,0x6942616d,0x656e696c,0x61537261,0x656c706d,0x66762873, + 0x00003b32,0x00030005,0x00000090,0x00765566,0x000a0005,0x00000093,0x76657250,0x73756f69, + 0x616d754c,0x696c6942,0x7261656e,0x706d6153,0x4473656c,0x00617461,0x00050006,0x00000093, + 0x00000000,0x74655366,0x00000000,0x00080006,0x00000093,0x00000001,0x45734962,0x74736978, + 0x53676e69,0x6c706d61,0x00000065,0x000c0005,0x00000097,0x50746547,0x69766572,0x4c73756f, + 0x42616d75,0x6e696c69,0x53726165,0x6c706d61,0x76287365,0x763b3266,0x003b3266,0x00030005, + 0x00000095,0x00765566,0x00060005,0x00000096,0x746f4d66,0x566e6f69,0x6f746365,0x00000072, + 0x00090005,0x0000009d,0x706d6f43,0x44657475,0x28666669,0x3b326976,0x3b326676,0x3b326676, + 0x00000000,0x00040005,0x0000009a,0x50785069,0x0000736f,0x00030005,0x0000009b,0x00765566, + 0x00060005,0x0000009c,0x746f4d66,0x566e6f69,0x6f746365,0x00000072,0x00090005,0x000000a3, + 0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567,0x753b3266,0x00003b31,0x00040005, + 0x000000a1,0x50785069,0x0000736f,0x00040005,0x000000a2,0x63696c73,0x00000065,0x00060005, + 0x000000a8,0x4c647053,0x2864616f,0x3b326976,0x003b3175,0x00030005,0x000000a6,0x00786574, + 0x00040005,0x000000a7,0x63696c73,0x00000065,0x00090005,0x000000b0,0x52647053,0x63756465, + 0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466,0x00030005,0x000000ac,0x00003076, + 0x00030005,0x000000ad,0x00003176,0x00030005,0x000000ae,0x00003276,0x00030005,0x000000af, + 0x00003376,0x00080005,0x000000b7,0x53647053,0x65726f74,0x32697628,0x3466763b,0x3b31753b, + 0x003b3175,0x00030005,0x000000b3,0x00786970,0x00050005,0x000000b4,0x5674756f,0x65756c61, + 0x00000000,0x00040005,0x000000b5,0x65646e69,0x00000078,0x00040005,0x000000b6,0x63696c73, + 0x00000065,0x00090005,0x000000bc,0x4c647053,0x4964616f,0x7265746e,0x6964656d,0x28657461, + 0x753b3175,0x00003b31,0x00030005,0x000000ba,0x00000078,0x00030005,0x000000bb,0x00000079, + 0x000a0005,0x000000c2,0x53647053,0x65726f74,0x65746e49,0x64656d72,0x65746169,0x3b317528, + 0x763b3175,0x003b3466,0x00030005,0x000000bf,0x00000078,0x00030005,0x000000c0,0x00000079, + 0x00040005,0x000000c1,0x756c6176,0x00000065,0x000a0005,0x000000c4,0x53786666,0x6f576470, + 0x72676b72,0x5370756f,0x66667568,0x6142656c,0x65697272,0x00002872,0x00090005,0x000000ca, + 0x45647053,0x57746978,0x676b726f,0x70756f72,0x3b317528,0x753b3175,0x00003b31,0x00060005, + 0x000000c7,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00080005,0x000000c8,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x000000c9,0x63696c73, + 0x00000065,0x00070005,0x000000ce,0x52647053,0x63756465,0x61755165,0x66762864,0x00003b34, + 0x00030005,0x000000cd,0x00000076,0x000b0005,0x000000d7,0x52647053,0x63756465,0x616f4c65, + 0x76283464,0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005,0x000000d2, + 0x00003069,0x00030005,0x000000d3,0x00003169,0x00030005,0x000000d4,0x00003269,0x00030005, + 0x000000d5,0x00003369,0x00040005,0x000000d6,0x63696c73,0x00000065,0x00080005,0x000000dc, + 0x52647053,0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005,0x000000da, + 0x65736162,0x00000000,0x00040005,0x000000db,0x63696c73,0x00000065,0x000e0005,0x000000e3, + 0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834,0x75763b32, + 0x75763b32,0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000de,0x00003069,0x00030005, + 0x000000df,0x00003169,0x00030005,0x000000e0,0x00003269,0x00030005,0x000000e1,0x00003369, + 0x00040005,0x000000e2,0x63696c73,0x00000065,0x000b0005,0x000000e7,0x52647053,0x63756465, + 0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000,0x00040005, + 0x000000e5,0x65736162,0x00000000,0x00040005,0x000000e6,0x63696c73,0x00000065,0x00100005, + 0x000000f0,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x6e495f31,0x6e697274, + 0x73636973,0x3b317528,0x763b3175,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00030005, + 0x000000ea,0x00000078,0x00030005,0x000000eb,0x00000079,0x00050005,0x000000ec,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x000000ed,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x000000ee,0x0070696d,0x00040005,0x000000ef,0x63696c73, + 0x00000065,0x000d0005,0x000000f8,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73, + 0x31752831,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000f2, + 0x00000078,0x00030005,0x000000f3,0x00000079,0x00050005,0x000000f4,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000f5,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000f6,0x0070696d,0x00040005,0x000000f7,0x63696c73,0x00000065, + 0x000c0005,0x00000100,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31, + 0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000fa,0x00000078,0x00030005, + 0x000000fb,0x00000079,0x00050005,0x000000fc,0x6b726f77,0x756f7247,0x00444970,0x00080005, + 0x000000fd,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005, + 0x000000fe,0x0070696d,0x00040005,0x000000ff,0x63696c73,0x00000065,0x000c0005,0x00000108, + 0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b, + 0x753b3175,0x00003b31,0x00030005,0x00000102,0x00000078,0x00030005,0x00000103,0x00000079, + 0x00050005,0x00000104,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000105,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000106,0x0070696d, + 0x00040005,0x00000107,0x63696c73,0x00000065,0x000c0005,0x00000110,0x44647053,0x736e776f, + 0x6c706d61,0x70694d65,0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31, + 0x00030005,0x0000010a,0x00000078,0x00030005,0x0000010b,0x00000079,0x00050005,0x0000010c, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000010d,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00030005,0x0000010e,0x0070696d,0x00040005,0x0000010f, + 0x63696c73,0x00000065,0x000b0005,0x00000117,0x44647053,0x736e776f,0x6c706d61,0x70694d65, + 0x7628355f,0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x00000113,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x00000114,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x00000115,0x0070696d,0x00040005,0x00000116,0x63696c73, + 0x00000065,0x000b0005,0x0000011e,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73, + 0x31752837,0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x0000011a,0x00000078,0x00030005, + 0x0000011b,0x00000079,0x00040005,0x0000011c,0x7370696d,0x00000000,0x00040005,0x0000011d, + 0x63696c73,0x00000065,0x000e0005,0x00000128,0x44647053,0x736e776f,0x6c706d61,0x78654e65, + 0x756f4674,0x31752872,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000, + 0x00030005,0x00000121,0x00000078,0x00030005,0x00000122,0x00000079,0x00050005,0x00000123, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000124,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000125,0x65736162,0x0070694d,0x00040005, + 0x00000126,0x7370696d,0x00000000,0x00040005,0x00000127,0x63696c73,0x00000065,0x000a0005, + 0x00000130,0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175, + 0x00003b31,0x00050005,0x0000012b,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000012c, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x0000012d, + 0x7370696d,0x00000000,0x00060005,0x0000012e,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00040005,0x0000012f,0x63696c73,0x00000065,0x000b0005,0x00000139,0x44647053,0x736e776f, + 0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005, + 0x00000133,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000134,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000135,0x7370696d,0x00000000, + 0x00060005,0x00000136,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x00000137, + 0x63696c73,0x00000065,0x00060005,0x00000138,0x6b726f77,0x756f7247,0x66664f70,0x00746573, + 0x000b0005,0x00000140,0x706d6f43,0x53657475,0x69646168,0x6843676e,0x65676e61,0x61727950, + 0x2864696d,0x3b337576,0x003b3175,0x00050005,0x0000013e,0x6b726f57,0x756f7247,0x00644970, + 0x00070005,0x0000013f,0x61636f4c,0x7268546c,0x49646165,0x7865646e,0x00000000,0x00040005, + 0x0000016d,0x61726170,0x0000006d,0x00040005,0x0000016f,0x61726170,0x0000006d,0x00040005, + 0x00000170,0x61726170,0x0000006d,0x00040005,0x00000173,0x61726170,0x0000006d,0x00040005, + 0x00000174,0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005, + 0x00000178,0x61726170,0x0000006d,0x00040005,0x0000017a,0x61726170,0x0000006d,0x00040005, + 0x0000017b,0x61726170,0x0000006d,0x00040005,0x0000017d,0x61726170,0x0000006d,0x00040005, + 0x0000017f,0x61726170,0x0000006d,0x00040005,0x00000180,0x61726170,0x0000006d,0x00040005, + 0x00000182,0x61726170,0x0000006d,0x00040005,0x00000183,0x61726170,0x0000006d,0x00040005, + 0x00000184,0x61726170,0x0000006d,0x00070005,0x00000189,0x53466263,0x50553352,0x4c414353, + 0x745f5245,0x00000000,0x00060006,0x00000189,0x00000000,0x6e655269,0x53726564,0x00657a69, + 0x000a0006,0x00000189,0x00000001,0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e, + 0x657a6953,0x00000000,0x00070006,0x00000189,0x00000002,0x73705569,0x656c6163,0x657a6953, + 0x00000000,0x000a0006,0x00000189,0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d, + 0x6c616373,0x7a695365,0x00000065,0x00070006,0x00000189,0x00000004,0x78614d69,0x646e6552, + 0x69537265,0x0000657a,0x00070006,0x00000189,0x00000005,0x78614d69,0x63737055,0x53656c61, + 0x00657a69,0x00080006,0x00000189,0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477, + 0x00006874,0x00050006,0x00000189,0x00000007,0x74694a66,0x00726574,0x00090006,0x00000189, + 0x00000008,0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006, + 0x00000189,0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006, + 0x00000189,0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006, + 0x00000189,0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61, + 0x74616c6c,0x006e6f69,0x00060006,0x00000189,0x0000000c,0x6e615466,0x666c6148,0x00564f46, + 0x00090006,0x00000189,0x0000000d,0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65, + 0x00000068,0x00060006,0x00000189,0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006, + 0x00000189,0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006, + 0x00000189,0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463, + 0x00000000,0x00060006,0x00000189,0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006, + 0x00000189,0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74,0x00080006,0x00000189, + 0x00000013,0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c,0x00080006,0x00000189, + 0x00000014,0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61,0x000a0006,0x00000189, + 0x00000015,0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d, + 0x000b0006,0x00000189,0x00000016,0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341, + 0x616c756d,0x6e6f6974,0x00000000,0x00060005,0x0000018b,0x53466263,0x70553352,0x6c616373, + 0x00007265,0x00040005,0x000001a7,0x50536263,0x00745f44,0x00050006,0x000001a7,0x00000000, + 0x7370696d,0x00000000,0x00070006,0x000001a7,0x00000001,0x576d756e,0x476b726f,0x70756f72, + 0x00000073,0x00070006,0x000001a7,0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573, + 0x00060006,0x000001a7,0x00000003,0x646e6572,0x69537265,0x0000657a,0x00040005,0x000001a9, + 0x50536263,0x00000044,0x00060005,0x000001bb,0x75635f72,0x6e657272,0x756c5f74,0x0000616d, + 0x00060005,0x000001c3,0x72705f72,0x6f697665,0x6c5f7375,0x00616d75,0x00090005,0x000001ca, + 0x69645f72,0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005, + 0x000001d1,0x6f707865,0x65727573,0x00000000,0x00070005,0x000001d2,0x6e695f72,0x5f747570, + 0x6f707865,0x65727573,0x00000000,0x00050005,0x000001e6,0x735f7772,0x6d5f6470,0x00307069, + 0x00050005,0x000001f0,0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001fa,0x735f7772, + 0x6d5f6470,0x00327069,0x00050005,0x00000204,0x735f7772,0x6d5f6470,0x00337069,0x00050005, + 0x0000020f,0x735f7772,0x6d5f6470,0x00347069,0x00050005,0x00000219,0x735f7772,0x6d5f6470, + 0x00357069,0x00080005,0x00000260,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f, + 0x00000000,0x00030005,0x00000267,0x0000006d,0x00040005,0x00000268,0x61726170,0x0000006d, + 0x00040005,0x00000269,0x61726170,0x0000006d,0x00040005,0x00000270,0x61726170,0x0000006d, + 0x00040005,0x00000271,0x61726170,0x0000006d,0x00040005,0x00000290,0x75736572,0x0000746c, + 0x00040005,0x00000297,0x61726170,0x0000006d,0x00040005,0x0000029a,0x61726170,0x0000006d, + 0x00040005,0x0000029c,0x61726170,0x0000006d,0x00040005,0x0000029d,0x61726170,0x0000006d, + 0x00040005,0x000002a3,0x61726170,0x0000006d,0x00040005,0x000002a6,0x61726170,0x0000006d, + 0x00040005,0x000002a8,0x61726170,0x0000006d,0x00040005,0x000002a9,0x61726170,0x0000006d, + 0x00050005,0x000002b0,0x43647073,0x746e756f,0x00007265,0x00040005,0x000002b1,0x61726170, + 0x0000006d,0x00040005,0x000002b9,0x706d5466,0x00000000,0x00040005,0x000002bb,0x61726170, + 0x0000006d,0x00040005,0x000002be,0x61726170,0x0000006d,0x00040005,0x000002c2,0x61726170, + 0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d,0x00040005,0x000002cc,0x706d5466, + 0x00000000,0x00040005,0x000002ce,0x61726170,0x0000006d,0x00040005,0x000002d1,0x61726170, + 0x0000006d,0x00040005,0x000002d5,0x61726170,0x0000006d,0x00040005,0x000002d8,0x61726170, + 0x0000006d,0x00040005,0x000002df,0x706d5466,0x00000000,0x00040005,0x000002e0,0x61726170, + 0x0000006d,0x00040005,0x000002e3,0x61726170,0x0000006d,0x00040005,0x000002e7,0x61726170, + 0x0000006d,0x00040005,0x000002ea,0x61726170,0x0000006d,0x00040005,0x000002f1,0x706d5466, + 0x00000000,0x00040005,0x000002f2,0x61726170,0x0000006d,0x00040005,0x000002f5,0x61726170, + 0x0000006d,0x00040005,0x000002f9,0x61726170,0x0000006d,0x00040005,0x000002fc,0x61726170, + 0x0000006d,0x00040005,0x00000303,0x706d5466,0x00000000,0x00040005,0x00000304,0x61726170, + 0x0000006d,0x00040005,0x00000307,0x61726170,0x0000006d,0x00040005,0x0000030b,0x61726170, + 0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d,0x00040005,0x00000315,0x706d5466, + 0x00000000,0x00040005,0x00000316,0x61726170,0x0000006d,0x00040005,0x00000319,0x61726170, + 0x0000006d,0x00040005,0x0000031d,0x61726170,0x0000006d,0x00040005,0x00000320,0x61726170, + 0x0000006d,0x00040005,0x00000327,0x706d5466,0x00000000,0x00040005,0x00000328,0x61726170, + 0x0000006d,0x00040005,0x0000032b,0x61726170,0x0000006d,0x00040005,0x0000032f,0x61726170, + 0x0000006d,0x00040005,0x00000332,0x61726170,0x0000006d,0x00040005,0x00000339,0x706d5466, + 0x00000000,0x00040005,0x0000033a,0x61726170,0x0000006d,0x00040005,0x0000033d,0x61726170, + 0x0000006d,0x00040005,0x00000341,0x61726170,0x0000006d,0x00040005,0x00000344,0x61726170, + 0x0000006d,0x00040005,0x0000034b,0x706d5466,0x00000000,0x00040005,0x0000034c,0x61726170, + 0x0000006d,0x00040005,0x0000034f,0x61726170,0x0000006d,0x00040005,0x00000353,0x61726170, + 0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d,0x00050005,0x0000035d,0x6e694d66, + 0x66666944,0x00000000,0x00030005,0x0000035f,0x00000061,0x00030005,0x00000360,0x00000062, + 0x00040005,0x00000361,0x61726170,0x0000006d,0x00040005,0x00000365,0x61726170,0x0000006d, + 0x00040005,0x00000369,0x78614d66,0x00000000,0x00040005,0x0000036a,0x61726170,0x0000006d, + 0x00040005,0x0000036d,0x61726170,0x0000006d,0x00030005,0x00000376,0x00000069,0x00040005, + 0x00000383,0x66694466,0x00000066,0x00050005,0x000003c2,0x4a765566,0x65747469,0x00646572, + 0x00050005,0x000003c9,0x73614269,0x736f5065,0x00000000,0x00060005,0x000003d0,0x6d615369, + 0x49656c70,0x7865646e,0x00000000,0x00050005,0x000003d8,0x6d615369,0x50656c70,0x0000736f, + 0x00040005,0x000003e2,0x61726170,0x0000006d,0x00040005,0x000003e4,0x61726170,0x0000006d, + 0x00050005,0x000003e6,0x65646e69,0x6c626178,0x00000065,0x00040005,0x000003e9,0x61726170, + 0x0000006d,0x00040005,0x000003eb,0x74655366,0x00000000,0x00040005,0x000003ed,0x61726170, + 0x0000006d,0x00040005,0x000003f5,0x61726170,0x0000006d,0x00040005,0x000003f8,0x61726170, + 0x0000006d,0x00040005,0x000003fd,0x61726170,0x0000006d,0x00040005,0x00000400,0x61726170, + 0x0000006d,0x00050005,0x00000408,0x4a765566,0x65747469,0x00646572,0x00060005,0x0000040f, + 0x70655266,0x656a6f72,0x64657463,0x00007655,0x00040005,0x00000414,0x61746164,0x00000000, + 0x00040005,0x00000415,0x61726170,0x0000006d,0x00050005,0x0000041e,0x73614269,0x736f5065, + 0x00000000,0x00060005,0x00000425,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00050005, + 0x0000042d,0x6d615369,0x50656c70,0x0000736f,0x00040005,0x00000430,0x61726170,0x0000006d, + 0x00040005,0x00000432,0x61726170,0x0000006d,0x00050005,0x00000433,0x65646e69,0x6c626178, + 0x00000065,0x00040005,0x00000436,0x61726170,0x0000006d,0x00040005,0x00000439,0x61726170, + 0x0000006d,0x00040005,0x00000443,0x61726170,0x0000006d,0x00040005,0x00000446,0x61726170, + 0x0000006d,0x00040005,0x0000044b,0x61726170,0x0000006d,0x00040005,0x0000044e,0x61726170, + 0x0000006d,0x00050005,0x00000456,0x6e694d66,0x66666944,0x00000000,0x00060005,0x00000457, + 0x72754366,0x746e6572,0x706d6153,0x0073656c,0x00040005,0x00000458,0x61726170,0x0000006d, + 0x00060005,0x0000045b,0x76657270,0x73756f69,0x61746144,0x00000000,0x00040005,0x0000045c, + 0x61726170,0x0000006d,0x00040005,0x0000045e,0x61726170,0x0000006d,0x00040005,0x00000465, + 0x61726170,0x0000006d,0x00040005,0x00000467,0x61726170,0x0000006d,0x00040005,0x00000469, + 0x61726170,0x0000006d,0x00060005,0x00000470,0x53785069,0x6c706d61,0x736f5065,0x00000000, + 0x00040005,0x00000474,0x61726170,0x0000006d,0x00040005,0x00000475,0x61726170,0x0000006d, + 0x00040005,0x00000476,0x61726170,0x0000006d,0x00080005,0x00000478,0x6c694466,0x64657461, + 0x69746f4d,0x65566e6f,0x726f7463,0x00000000,0x00040005,0x00000479,0x61726170,0x0000006d, + 0x00030005,0x0000047c,0x00765566,0x00090005,0x00000485,0x61635366,0x4164656c,0x6953646e, + 0x64656e67,0x616d754c,0x66666944,0x00000000,0x00040005,0x00000486,0x61726170,0x0000006d, + 0x00040005,0x00000488,0x61726170,0x0000006d,0x00040005,0x0000048a,0x61726170,0x0000006d, + 0x00040005,0x0000048d,0x74754f66,0x00747570,0x00040005,0x0000049f,0x61726170,0x0000006d, + 0x00040005,0x000004a1,0x61726170,0x0000006d,0x00040005,0x000004b7,0x61726170,0x0000006d, + 0x00040005,0x000004b9,0x61726170,0x0000006d,0x00040005,0x000004bc,0x61726170,0x0000006d, + 0x00070005,0x000004c3,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005, + 0x000004c9,0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000004ce, + 0x49647073,0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x000004d3,0x49647073, + 0x7265746e,0x6964656d,0x41657461,0x00000000,0x00040005,0x000004f5,0x61726170,0x0000006d, + 0x00030005,0x000004ff,0x00003076,0x00030005,0x00000501,0x00003176,0x00030005,0x00000504, + 0x00003276,0x00030005,0x00000507,0x00003376,0x00040005,0x0000050a,0x61726170,0x0000006d, + 0x00040005,0x0000050c,0x61726170,0x0000006d,0x00040005,0x0000050e,0x61726170,0x0000006d, + 0x00040005,0x00000510,0x61726170,0x0000006d,0x00030005,0x00000517,0x00003076,0x00040005, + 0x0000051a,0x61726170,0x0000006d,0x00040005,0x0000051b,0x61726170,0x0000006d,0x00030005, + 0x0000051e,0x00003176,0x00040005,0x00000521,0x61726170,0x0000006d,0x00040005,0x00000522, + 0x61726170,0x0000006d,0x00030005,0x00000525,0x00003276,0x00040005,0x00000528,0x61726170, + 0x0000006d,0x00040005,0x00000529,0x61726170,0x0000006d,0x00030005,0x0000052c,0x00003376, + 0x00040005,0x0000052f,0x61726170,0x0000006d,0x00040005,0x00000530,0x61726170,0x0000006d, + 0x00040005,0x00000533,0x61726170,0x0000006d,0x00040005,0x00000535,0x61726170,0x0000006d, + 0x00040005,0x00000537,0x61726170,0x0000006d,0x00040005,0x00000539,0x61726170,0x0000006d, + 0x00040005,0x0000054a,0x61726170,0x0000006d,0x00040005,0x0000054b,0x61726170,0x0000006d, + 0x00040005,0x0000054c,0x61726170,0x0000006d,0x00040005,0x0000054d,0x61726170,0x0000006d, + 0x00040005,0x0000054e,0x61726170,0x0000006d,0x00030005,0x00000553,0x00003076,0x00040005, + 0x00000557,0x61726170,0x0000006d,0x00040005,0x00000558,0x61726170,0x0000006d,0x00030005, + 0x0000055b,0x00003176,0x00040005,0x0000055f,0x61726170,0x0000006d,0x00040005,0x00000560, + 0x61726170,0x0000006d,0x00030005,0x00000563,0x00003276,0x00040005,0x00000567,0x61726170, + 0x0000006d,0x00040005,0x00000568,0x61726170,0x0000006d,0x00030005,0x0000056b,0x00003376, + 0x00040005,0x0000056f,0x61726170,0x0000006d,0x00040005,0x00000570,0x61726170,0x0000006d, + 0x00040005,0x00000573,0x61726170,0x0000006d,0x00040005,0x00000575,0x61726170,0x0000006d, + 0x00040005,0x00000577,0x61726170,0x0000006d,0x00040005,0x00000579,0x61726170,0x0000006d, + 0x00040005,0x00000586,0x61726170,0x0000006d,0x00040005,0x00000587,0x61726170,0x0000006d, + 0x00040005,0x00000588,0x61726170,0x0000006d,0x00040005,0x00000589,0x61726170,0x0000006d, + 0x00040005,0x0000058a,0x61726170,0x0000006d,0x00030005,0x0000058f,0x00786574,0x00030005, + 0x0000059d,0x00786970,0x00030005,0x000005ab,0x00000076,0x00040005,0x000005ae,0x61726170, + 0x0000006d,0x00040005,0x000005af,0x61726170,0x0000006d,0x00040005,0x000005b3,0x61726170, + 0x0000006d,0x00040005,0x000005b5,0x61726170,0x0000006d,0x00040005,0x000005b8,0x61726170, + 0x0000006d,0x00040005,0x000005b9,0x61726170,0x0000006d,0x00040005,0x000005d6,0x61726170, + 0x0000006d,0x00040005,0x000005d7,0x61726170,0x0000006d,0x00040005,0x000005db,0x61726170, + 0x0000006d,0x00040005,0x000005dd,0x61726170,0x0000006d,0x00040005,0x000005e0,0x61726170, + 0x0000006d,0x00040005,0x000005e1,0x61726170,0x0000006d,0x00040005,0x000005fe,0x61726170, + 0x0000006d,0x00040005,0x000005ff,0x61726170,0x0000006d,0x00040005,0x00000603,0x61726170, + 0x0000006d,0x00040005,0x00000605,0x61726170,0x0000006d,0x00040005,0x00000608,0x61726170, + 0x0000006d,0x00040005,0x00000609,0x61726170,0x0000006d,0x00040005,0x00000628,0x61726170, + 0x0000006d,0x00040005,0x00000629,0x61726170,0x0000006d,0x00040005,0x0000062d,0x61726170, + 0x0000006d,0x00040005,0x0000062f,0x61726170,0x0000006d,0x00040005,0x00000632,0x61726170, + 0x0000006d,0x00040005,0x00000633,0x61726170,0x0000006d,0x00040005,0x0000063b,0x61726170, + 0x0000006d,0x00040005,0x00000640,0x61726170,0x0000006d,0x00040005,0x00000645,0x61726170, + 0x0000006d,0x00040005,0x0000064a,0x61726170,0x0000006d,0x00040005,0x00000660,0x61726170, + 0x0000006d,0x00040005,0x00000661,0x61726170,0x0000006d,0x00040005,0x00000664,0x61726170, + 0x0000006d,0x00040005,0x00000665,0x61726170,0x0000006d,0x00040005,0x0000066c,0x61726170, + 0x0000006d,0x00040005,0x0000066d,0x61726170,0x0000006d,0x00040005,0x0000066e,0x61726170, + 0x0000006d,0x00040005,0x00000680,0x61726170,0x0000006d,0x00040005,0x00000681,0x61726170, + 0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005,0x00000685,0x61726170, + 0x0000006d,0x00040005,0x0000068d,0x61726170,0x0000006d,0x00040005,0x0000068e,0x61726170, + 0x0000006d,0x00040005,0x0000068f,0x61726170,0x0000006d,0x00040005,0x000006a0,0x61726170, + 0x0000006d,0x00040005,0x000006a1,0x61726170,0x0000006d,0x00040005,0x000006a4,0x61726170, + 0x0000006d,0x00040005,0x000006a5,0x61726170,0x0000006d,0x00040005,0x000006ad,0x61726170, + 0x0000006d,0x00040005,0x000006ae,0x61726170,0x0000006d,0x00040005,0x000006af,0x61726170, + 0x0000006d,0x00040005,0x000006c1,0x61726170,0x0000006d,0x00040005,0x000006c2,0x61726170, + 0x0000006d,0x00040005,0x000006c5,0x61726170,0x0000006d,0x00040005,0x000006c6,0x61726170, + 0x0000006d,0x00040005,0x000006cf,0x61726170,0x0000006d,0x00040005,0x000006d0,0x61726170, + 0x0000006d,0x00040005,0x000006d1,0x61726170,0x0000006d,0x00040005,0x000006d5,0x61726170, + 0x0000006d,0x00040005,0x000006d7,0x61726170,0x0000006d,0x00040005,0x000006d9,0x61726170, + 0x0000006d,0x00040005,0x000006db,0x61726170,0x0000006d,0x00040005,0x000006dd,0x61726170, + 0x0000006d,0x00040005,0x000006df,0x61726170,0x0000006d,0x00030005,0x000006e2,0x00000076, + 0x00040005,0x000006e3,0x61726170,0x0000006d,0x00040005,0x000006e5,0x61726170,0x0000006d, + 0x00040005,0x000006e8,0x61726170,0x0000006d,0x00040005,0x000006fc,0x61726170,0x0000006d, + 0x00040005,0x000006fd,0x61726170,0x0000006d,0x00040005,0x000006ff,0x61726170,0x0000006d, + 0x00040005,0x00000701,0x61726170,0x0000006d,0x00040005,0x00000709,0x61726170,0x0000006d, + 0x00040005,0x0000070a,0x61726170,0x0000006d,0x00040005,0x0000070c,0x61726170,0x0000006d, + 0x00030005,0x00000713,0x00000076,0x00040005,0x0000071b,0x61726170,0x0000006d,0x00040005, + 0x0000071c,0x61726170,0x0000006d,0x00040005,0x0000071e,0x61726170,0x0000006d,0x00040005, + 0x00000732,0x61726170,0x0000006d,0x00040005,0x00000733,0x61726170,0x0000006d,0x00040005, + 0x00000735,0x61726170,0x0000006d,0x00040005,0x00000737,0x61726170,0x0000006d,0x00040005, + 0x00000741,0x61726170,0x0000006d,0x00040005,0x00000742,0x61726170,0x0000006d,0x00040005, + 0x00000743,0x61726170,0x0000006d,0x00030005,0x0000074a,0x00000076,0x00040005,0x00000751, + 0x61726170,0x0000006d,0x00040005,0x00000752,0x61726170,0x0000006d,0x00040005,0x00000754, + 0x61726170,0x0000006d,0x00040005,0x00000768,0x61726170,0x0000006d,0x00040005,0x00000769, + 0x61726170,0x0000006d,0x00040005,0x0000076b,0x61726170,0x0000006d,0x00040005,0x0000076d, + 0x61726170,0x0000006d,0x00040005,0x00000774,0x61726170,0x0000006d,0x00040005,0x00000775, + 0x61726170,0x0000006d,0x00040005,0x00000776,0x61726170,0x0000006d,0x00030005,0x0000077d, + 0x00000076,0x00040005,0x0000077e,0x61726170,0x0000006d,0x00040005,0x00000780,0x61726170, + 0x0000006d,0x00040005,0x00000782,0x61726170,0x0000006d,0x00040005,0x0000078c,0x61726170, + 0x0000006d,0x00040005,0x0000078d,0x61726170,0x0000006d,0x00040005,0x0000078f,0x61726170, + 0x0000006d,0x00040005,0x00000791,0x61726170,0x0000006d,0x00030005,0x00000794,0x00786574, + 0x00030005,0x0000079e,0x00786970,0x00030005,0x000007a8,0x00003076,0x00040005,0x000007ab, + 0x61726170,0x0000006d,0x00040005,0x000007ac,0x61726170,0x0000006d,0x00040005,0x000007b0, + 0x61726170,0x0000006d,0x00040005,0x000007b2,0x61726170,0x0000006d,0x00040005,0x000007b4, + 0x61726170,0x0000006d,0x00040005,0x000007b5,0x61726170,0x0000006d,0x00030005,0x000007ca, + 0x00003176,0x00040005,0x000007cd,0x61726170,0x0000006d,0x00040005,0x000007ce,0x61726170, + 0x0000006d,0x00040005,0x000007d1,0x61726170,0x0000006d,0x00040005,0x000007d3,0x61726170, + 0x0000006d,0x00040005,0x000007d5,0x61726170,0x0000006d,0x00040005,0x000007d6,0x61726170, + 0x0000006d,0x00030005,0x000007eb,0x00003276,0x00040005,0x000007ee,0x61726170,0x0000006d, + 0x00040005,0x000007ef,0x61726170,0x0000006d,0x00040005,0x000007f2,0x61726170,0x0000006d, + 0x00040005,0x000007f4,0x61726170,0x0000006d,0x00040005,0x000007f6,0x61726170,0x0000006d, + 0x00040005,0x000007f7,0x61726170,0x0000006d,0x00030005,0x0000080c,0x00003376,0x00040005, + 0x0000080f,0x61726170,0x0000006d,0x00040005,0x00000810,0x61726170,0x0000006d,0x00040005, + 0x00000813,0x61726170,0x0000006d,0x00040005,0x00000815,0x61726170,0x0000006d,0x00040005, + 0x00000817,0x61726170,0x0000006d,0x00040005,0x00000818,0x61726170,0x0000006d,0x00030005, + 0x00000821,0x00000076,0x00040005,0x00000822,0x61726170,0x0000006d,0x00040005,0x00000824, + 0x61726170,0x0000006d,0x00040005,0x00000826,0x61726170,0x0000006d,0x00040005,0x00000828, + 0x61726170,0x0000006d,0x00040005,0x00000830,0x61726170,0x0000006d,0x00040005,0x00000831, + 0x61726170,0x0000006d,0x00040005,0x00000833,0x61726170,0x0000006d,0x00040005,0x00000834, + 0x61726170,0x0000006d,0x00040005,0x00000837,0x61726170,0x0000006d,0x00040005,0x00000839, + 0x61726170,0x0000006d,0x00040005,0x0000083b,0x61726170,0x0000006d,0x00040005,0x00000845, + 0x61726170,0x0000006d,0x00040005,0x00000847,0x61726170,0x0000006d,0x00040005,0x00000849, + 0x61726170,0x0000006d,0x00040005,0x0000084b,0x61726170,0x0000006d,0x00040005,0x0000084d, + 0x61726170,0x0000006d,0x00040005,0x0000084f,0x61726170,0x0000006d,0x00040005,0x0000085c, + 0x61726170,0x0000006d,0x00040005,0x0000085e,0x61726170,0x0000006d,0x00040005,0x00000860, + 0x61726170,0x0000006d,0x00040005,0x00000862,0x61726170,0x0000006d,0x00040005,0x00000864, + 0x61726170,0x0000006d,0x00040005,0x00000865,0x61726170,0x0000006d,0x00040005,0x00000872, + 0x61726170,0x0000006d,0x00040005,0x00000874,0x61726170,0x0000006d,0x00040005,0x00000876, + 0x61726170,0x0000006d,0x00040005,0x00000878,0x61726170,0x0000006d,0x00040005,0x0000087a, + 0x61726170,0x0000006d,0x00040005,0x0000087b,0x61726170,0x0000006d,0x00040005,0x00000888, + 0x61726170,0x0000006d,0x00040005,0x0000088a,0x61726170,0x0000006d,0x00040005,0x0000088c, + 0x61726170,0x0000006d,0x00040005,0x0000088d,0x61726170,0x0000006d,0x00040005,0x00000890, + 0x5f627573,0x00007978,0x00040005,0x00000893,0x61726170,0x0000006d,0x00030005,0x00000895, + 0x00000078,0x00030005,0x0000089e,0x00000079,0x00040005,0x000008a5,0x61726170,0x0000006d, + 0x00040005,0x000008a7,0x61726170,0x0000006d,0x00040005,0x000008a9,0x61726170,0x0000006d, + 0x00040005,0x000008ab,0x61726170,0x0000006d,0x00040005,0x000008ad,0x61726170,0x0000006d, + 0x00040005,0x000008af,0x61726170,0x0000006d,0x00040005,0x000008b2,0x61726170,0x0000006d, + 0x00040005,0x000008b4,0x61726170,0x0000006d,0x00040005,0x000008b6,0x61726170,0x0000006d, + 0x00040005,0x000008b8,0x61726170,0x0000006d,0x00040005,0x000008ba,0x61726170,0x0000006d, + 0x00040005,0x000008bb,0x61726170,0x0000006d,0x00040005,0x000008bd,0x61726170,0x0000006d, + 0x00040005,0x000008c5,0x61726170,0x0000006d,0x00040005,0x000008c7,0x61726170,0x0000006d, + 0x00040005,0x000008c9,0x61726170,0x0000006d,0x00040005,0x000008cf,0x61726170,0x0000006d, + 0x00040005,0x000008d2,0x61726170,0x0000006d,0x00040005,0x000008d4,0x61726170,0x0000006d, + 0x00040005,0x000008d6,0x61726170,0x0000006d,0x00040005,0x000008d8,0x61726170,0x0000006d, + 0x00040005,0x000008db,0x61726170,0x0000006d,0x00040005,0x000008dd,0x61726170,0x0000006d, + 0x00040005,0x000008df,0x61726170,0x0000006d,0x00040005,0x000008e0,0x61726170,0x0000006d, + 0x00040005,0x000008e2,0x61726170,0x0000006d,0x00040005,0x000008e3,0x61726170,0x0000006d, + 0x00040005,0x000008e5,0x61726170,0x0000006d,0x00040005,0x000008eb,0x61726170,0x0000006d, + 0x00040005,0x000008ec,0x61726170,0x0000006d,0x00040005,0x000008ee,0x61726170,0x0000006d, + 0x00040005,0x000008f0,0x61726170,0x0000006d,0x00040005,0x000008f2,0x61726170,0x0000006d, + 0x00040005,0x000008fd,0x61726170,0x0000006d,0x00040005,0x000008fe,0x61726170,0x0000006d, + 0x00040005,0x000008ff,0x61726170,0x0000006d,0x00040005,0x00000900,0x61726170,0x0000006d, + 0x00040005,0x00000901,0x61726170,0x0000006d,0x00040005,0x00000902,0x61726170,0x0000006d, + 0x00060005,0x00000905,0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000907, + 0x4c5f6c67,0x6c61636f,0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000908, + 0x61726170,0x0000006d,0x00040005,0x0000090a,0x61726170,0x0000006d,0x00060005,0x00000910, + 0x6f505f73,0x43746e69,0x706d616c,0x00000000,0x00060005,0x00000911,0x694c5f73,0x7261656e, + 0x6d616c43,0x00000070,0x00030047,0x00000189,0x00000002,0x00050048,0x00000189,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000189,0x00000001,0x00000023,0x00000008,0x00050048, + 0x00000189,0x00000002,0x00000023,0x00000010,0x00050048,0x00000189,0x00000003,0x00000023, + 0x00000018,0x00050048,0x00000189,0x00000004,0x00000023,0x00000020,0x00050048,0x00000189, + 0x00000005,0x00000023,0x00000028,0x00050048,0x00000189,0x00000006,0x00000023,0x00000030, + 0x00050048,0x00000189,0x00000007,0x00000023,0x00000040,0x00050048,0x00000189,0x00000008, + 0x00000023,0x00000048,0x00050048,0x00000189,0x00000009,0x00000023,0x00000050,0x00050048, + 0x00000189,0x0000000a,0x00000023,0x00000058,0x00050048,0x00000189,0x0000000b,0x00000023, + 0x00000060,0x00050048,0x00000189,0x0000000c,0x00000023,0x00000068,0x00050048,0x00000189, + 0x0000000d,0x00000023,0x0000006c,0x00050048,0x00000189,0x0000000e,0x00000023,0x00000070, + 0x00050048,0x00000189,0x0000000f,0x00000023,0x00000074,0x00050048,0x00000189,0x00000010, + 0x00000023,0x00000078,0x00050048,0x00000189,0x00000011,0x00000023,0x0000007c,0x00050048, + 0x00000189,0x00000012,0x00000023,0x00000080,0x00050048,0x00000189,0x00000013,0x00000023, + 0x00000084,0x00050048,0x00000189,0x00000014,0x00000023,0x00000088,0x00050048,0x00000189, + 0x00000015,0x00000023,0x0000008c,0x00050048,0x00000189,0x00000016,0x00000023,0x00000090, + 0x00040047,0x0000018b,0x00000021,0x0000000b,0x00040047,0x0000018b,0x00000022,0x00000000, + 0x00030047,0x000001a7,0x00000002,0x00050048,0x000001a7,0x00000000,0x00000023,0x00000000, + 0x00050048,0x000001a7,0x00000001,0x00000023,0x00000004,0x00050048,0x000001a7,0x00000002, + 0x00000023,0x00000008,0x00050048,0x000001a7,0x00000003,0x00000023,0x00000010,0x00040047, + 0x000001a9,0x00000021,0x0000000c,0x00040047,0x000001a9,0x00000022,0x00000000,0x00040047, + 0x000001bb,0x00000021,0x00000000,0x00040047,0x000001bb,0x00000022,0x00000000,0x00040047, + 0x000001c3,0x00000021,0x00000001,0x00040047,0x000001c3,0x00000022,0x00000000,0x00040047, + 0x000001ca,0x00000021,0x00000002,0x00040047,0x000001ca,0x00000022,0x00000000,0x00040047, + 0x000001d2,0x00000021,0x00000003,0x00040047,0x000001d2,0x00000022,0x00000000,0x00040047, + 0x000001e6,0x00000021,0x00000005,0x00040047,0x000001e6,0x00000022,0x00000000,0x00040047, + 0x000001f0,0x00000021,0x00000006,0x00040047,0x000001f0,0x00000022,0x00000000,0x00040047, + 0x000001fa,0x00000021,0x00000007,0x00040047,0x000001fa,0x00000022,0x00000000,0x00040047, + 0x00000204,0x00000021,0x00000008,0x00040047,0x00000204,0x00000022,0x00000000,0x00040047, + 0x0000020f,0x00000021,0x00000009,0x00040047,0x0000020f,0x00000022,0x00000000,0x00030047, + 0x00000219,0x00000017,0x00040047,0x00000219,0x00000021,0x0000000a,0x00040047,0x00000219, + 0x00000022,0x00000000,0x00030047,0x00000260,0x00000017,0x00040047,0x00000260,0x00000021, + 0x00000004,0x00040047,0x00000260,0x00000022,0x00000000,0x00040047,0x00000905,0x0000000b, + 0x0000001a,0x00040047,0x00000907,0x0000000b,0x0000001d,0x00040047,0x00000910,0x00000021, + 0x000003e8,0x00040047,0x00000910,0x00000022,0x00000000,0x00040047,0x00000911,0x00000021, + 0x000003e9,0x00040047,0x00000911,0x00000022,0x00000000,0x00040047,0x0000091a,0x0000000b, + 0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006, + 0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008, + 0x00000006,0x00000007,0x00000007,0x00000007,0x00030016,0x00000013,0x00000020,0x00040020, + 0x00000014,0x00000007,0x00000013,0x00050021,0x00000015,0x00000013,0x00000014,0x00000014, + 0x00040015,0x0000001a,0x00000020,0x00000001,0x00040020,0x0000001b,0x00000007,0x0000001a, + 0x00050021,0x0000001c,0x0000001a,0x0000001b,0x0000001b,0x00040017,0x0000002d,0x00000006, + 0x00000002,0x00040021,0x0000002e,0x0000002d,0x00000007,0x00040017,0x00000032,0x0000001a, + 0x00000002,0x00030021,0x00000033,0x00000032,0x00040017,0x00000038,0x00000013,0x00000002, + 0x00030021,0x00000039,0x00000038,0x00030021,0x0000003e,0x00000013,0x00030021,0x00000041, + 0x00000006,0x00030021,0x00000046,0x0000002d,0x00040020,0x00000049,0x00000007,0x00000032, + 0x00040021,0x0000004a,0x00000013,0x00000049,0x00040021,0x00000051,0x00000038,0x00000049, + 0x00050021,0x00000057,0x00000038,0x00000049,0x00000007,0x00040020,0x0000005c,0x00000007, + 0x00000038,0x00060021,0x0000005d,0x00000002,0x00000049,0x0000005c,0x00000007,0x00040021, + 0x00000063,0x00000002,0x00000007,0x00050021,0x00000069,0x00000013,0x00000013,0x00000013, + 0x00020014,0x0000006e,0x00040021,0x0000006f,0x0000006e,0x0000005c,0x00060021,0x00000073, + 0x00000032,0x00000049,0x00000049,0x00000049,0x0004002b,0x00000006,0x00000081,0x00000005, + 0x0004001c,0x00000082,0x00000013,0x00000081,0x0003001e,0x00000083,0x00000082,0x00040020, + 0x00000084,0x00000007,0x00000083,0x00040021,0x00000085,0x00000002,0x00000084,0x00060021, + 0x00000089,0x00000013,0x00000049,0x00000084,0x00000084,0x00040021,0x0000008f,0x00000083, + 0x0000005c,0x0004001e,0x00000093,0x00000083,0x0000006e,0x00050021,0x00000094,0x00000093, + 0x0000005c,0x0000005c,0x00060021,0x00000099,0x00000013,0x00000049,0x0000005c,0x0000005c, + 0x00040017,0x0000009f,0x00000013,0x00000004,0x00050021,0x000000a0,0x0000009f,0x0000005c, + 0x00000007,0x00050021,0x000000a5,0x0000009f,0x00000049,0x00000007,0x00040020,0x000000aa, + 0x00000007,0x0000009f,0x00070021,0x000000ab,0x0000009f,0x000000aa,0x000000aa,0x000000aa, + 0x000000aa,0x00070021,0x000000b2,0x00000002,0x00000049,0x000000aa,0x00000007,0x00000007, + 0x00050021,0x000000b9,0x0000009f,0x00000007,0x00000007,0x00060021,0x000000be,0x00000002, + 0x00000007,0x00000007,0x000000aa,0x00060021,0x000000c6,0x0000006e,0x00000007,0x00000007, + 0x00000007,0x00040021,0x000000cc,0x0000009f,0x000000aa,0x00040020,0x000000d0,0x00000007, + 0x0000002d,0x00080021,0x000000d1,0x0000009f,0x000000d0,0x000000d0,0x000000d0,0x000000d0, + 0x00000007,0x00050021,0x000000d9,0x0000009f,0x000000d0,0x00000007,0x00090021,0x000000e9, + 0x00000002,0x00000007,0x00000007,0x000000d0,0x00000007,0x00000007,0x00000007,0x00070021, + 0x00000112,0x00000002,0x000000d0,0x00000007,0x00000007,0x00000007,0x00070021,0x00000119, + 0x00000002,0x00000007,0x00000007,0x00000007,0x00000007,0x000a0021,0x00000120,0x00000002, + 0x00000007,0x00000007,0x000000d0,0x00000007,0x00000007,0x00000007,0x00000007,0x00080021, + 0x0000012a,0x00000002,0x000000d0,0x00000007,0x00000007,0x00000007,0x00000007,0x00090021, + 0x00000132,0x00000002,0x000000d0,0x00000007,0x00000007,0x00000007,0x00000007,0x000000d0, + 0x00040017,0x0000013b,0x00000006,0x00000003,0x00040020,0x0000013c,0x00000007,0x0000013b, + 0x00050021,0x0000013d,0x00000002,0x0000013c,0x00000007,0x0004002b,0x0000001a,0x0000014c, + 0x00000000,0x0004002b,0x00000006,0x0000016b,0x00000002,0x0004002b,0x00000006,0x0000016c, + 0x00000003,0x0004002b,0x00000006,0x00000172,0x00000001,0x0019001e,0x00000189,0x00000032, + 0x00000032,0x00000032,0x00000032,0x00000032,0x00000032,0x0000009f,0x00000038,0x00000038, + 0x00000038,0x00000038,0x00000038,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013, + 0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00040020,0x0000018a, + 0x00000002,0x00000189,0x0004003b,0x0000018a,0x0000018b,0x00000002,0x00040020,0x0000018c, + 0x00000002,0x00000032,0x0004002b,0x0000001a,0x00000191,0x00000001,0x0004002b,0x0000001a, + 0x00000196,0x00000007,0x00040020,0x00000197,0x00000002,0x00000038,0x0004002b,0x0000001a, + 0x0000019c,0x00000008,0x0004002b,0x0000001a,0x000001a1,0x0000000f,0x00040020,0x000001a2, + 0x00000002,0x00000013,0x0006001e,0x000001a7,0x00000006,0x00000006,0x0000002d,0x0000002d, + 0x00040020,0x000001a8,0x00000002,0x000001a7,0x0004003b,0x000001a8,0x000001a9,0x00000002, + 0x00040020,0x000001aa,0x00000002,0x00000006,0x0004002b,0x0000001a,0x000001b3,0x00000002, + 0x00040020,0x000001b4,0x00000002,0x0000002d,0x00090019,0x000001b9,0x00000013,0x00000001, + 0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001ba,0x00000000, + 0x000001b9,0x0004003b,0x000001ba,0x000001bb,0x00000000,0x0004002b,0x00000006,0x000001bf, + 0x00000000,0x0004003b,0x000001ba,0x000001c3,0x00000000,0x0004003b,0x000001ba,0x000001ca, + 0x00000000,0x0004003b,0x000001ba,0x000001d2,0x00000000,0x0005002c,0x00000032,0x000001d4, + 0x0000014c,0x0000014c,0x0004002b,0x00000013,0x000001d8,0x00000000,0x0004002b,0x00000013, + 0x000001dc,0x3f800000,0x00090019,0x000001e4,0x00000013,0x00000001,0x00000000,0x00000000, + 0x00000000,0x00000002,0x00000007,0x00040020,0x000001e5,0x00000000,0x000001e4,0x0004003b, + 0x000001e5,0x000001e6,0x00000000,0x0004003b,0x000001e5,0x000001f0,0x00000000,0x0004003b, + 0x000001e5,0x000001fa,0x00000000,0x0004003b,0x000001e5,0x00000204,0x00000000,0x0004002b, + 0x00000006,0x0000020b,0x00000004,0x0004003b,0x000001e5,0x0000020f,0x00000000,0x0004003b, + 0x000001e5,0x00000219,0x00000000,0x0005002c,0x00000038,0x0000021f,0x000001d8,0x000001d8, + 0x00090019,0x0000025e,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000002, + 0x00000021,0x00040020,0x0000025f,0x00000000,0x0000025e,0x0004003b,0x0000025f,0x00000260, + 0x00000000,0x00040020,0x00000261,0x0000000b,0x00000006,0x00040017,0x00000265,0x00000006, + 0x00000004,0x0007002c,0x00000265,0x00000266,0x000001bf,0x000001bf,0x000001bf,0x000001bf, + 0x00040020,0x000002af,0x00000004,0x00000006,0x0004003b,0x000002af,0x000002b0,0x00000004, + 0x0004002b,0x0000001a,0x000002ba,0x00000003,0x0004002b,0x0000001a,0x000002cd,0x00000004, + 0x0004002b,0x00000013,0x0000035e,0x477fdf00,0x0004002b,0x00000013,0x00000372,0x00800000, + 0x0004002b,0x0000001a,0x0000037d,0x00000005,0x0004002b,0x00000013,0x00000380,0x477fe000, + 0x0004002b,0x00000013,0x0000038d,0x387fda40,0x0004001c,0x000003d9,0x00000032,0x00000081, + 0x0004002b,0x0000001a,0x000003da,0xffffffff,0x0005002c,0x00000032,0x000003db,0x000003da, + 0x0000014c,0x0005002c,0x00000032,0x000003dc,0x00000191,0x0000014c,0x0005002c,0x00000032, + 0x000003dd,0x0000014c,0x000003da,0x0005002c,0x00000032,0x000003de,0x0000014c,0x00000191, + 0x0008002c,0x000003d9,0x000003df,0x000001d4,0x000003db,0x000003dc,0x000003dd,0x000003de, + 0x00040020,0x000003e5,0x00000007,0x000003d9,0x00040020,0x00000413,0x00000007,0x00000093, + 0x00040020,0x00000418,0x00000007,0x0000006e,0x0004002b,0x00000013,0x0000047f,0x3f000000, + 0x0007002c,0x0000009f,0x0000048e,0x000001d8,0x000001d8,0x000001d8,0x000001d8,0x0004002b, + 0x00000013,0x000004af,0x3e800000,0x0004002b,0x00000006,0x000004bf,0x00000010,0x0004001c, + 0x000004c0,0x00000013,0x000004bf,0x0004001c,0x000004c1,0x000004c0,0x000004bf,0x00040020, + 0x000004c2,0x00000004,0x000004c1,0x0004003b,0x000004c2,0x000004c3,0x00000004,0x00040020, + 0x000004c6,0x00000004,0x00000013,0x0004003b,0x000004c2,0x000004c9,0x00000004,0x0004003b, + 0x000004c2,0x000004ce,0x00000004,0x0004003b,0x000004c2,0x000004d3,0x00000004,0x0004002b, + 0x00000006,0x000004ef,0x00000d48,0x0004002b,0x00000006,0x000004f0,0x00000108,0x0005002c, + 0x0000002d,0x0000053f,0x000001bf,0x000001bf,0x0005002c,0x0000002d,0x00000542,0x000001bf, + 0x00000172,0x0005002c,0x0000002d,0x00000545,0x00000172,0x000001bf,0x0005002c,0x0000002d, + 0x00000548,0x00000172,0x00000172,0x0004002b,0x00000006,0x00000591,0x00000040,0x0004002b, + 0x00000006,0x0000059f,0x00000020,0x0004001c,0x000005a9,0x0000009f,0x0000020b,0x00040020, + 0x000005aa,0x00000007,0x000005a9,0x0004002b,0x00000006,0x00000678,0x00000008,0x0004002b, + 0x00000006,0x000007af,0x00000006,0x0004002b,0x00000006,0x0000081c,0x00000007,0x0004002b, + 0x0000001a,0x00000899,0x00000006,0x00040020,0x00000904,0x00000001,0x0000013b,0x0004003b, + 0x00000904,0x00000905,0x00000001,0x00040020,0x00000906,0x00000001,0x00000006,0x0004003b, + 0x00000906,0x00000907,0x00000001,0x0004002b,0x00000013,0x0000090d,0x37801002,0x0002001a, + 0x0000090e,0x00040020,0x0000090f,0x00000000,0x0000090e,0x0004003b,0x0000090f,0x00000910, + 0x00000000,0x0004003b,0x0000090f,0x00000911,0x00000000,0x0004002b,0x00000013,0x00000912, + 0x7f7fffff,0x0004002b,0x00000013,0x00000913,0x3a1fe868,0x0004002b,0x00000013,0x00000914, + 0x3d800000,0x0004002b,0x00000013,0x00000915,0x3d3d70a4,0x0004002b,0x00000013,0x00000916, + 0x3e400000,0x0004002b,0x00000013,0x00000917,0x40000000,0x0004002b,0x00000013,0x00000918, + 0x461c4000,0x0004002b,0x00000006,0x00000919,0x00000100,0x0006002c,0x0000013b,0x0000091a, + 0x00000919,0x00000172,0x00000172,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003b,0x0000013c,0x00000908,0x00000007,0x0004003b,0x00000007, + 0x0000090a,0x00000007,0x0004003d,0x0000013b,0x00000909,0x00000905,0x0003003e,0x00000908, + 0x00000909,0x0004003d,0x00000006,0x0000090b,0x00000907,0x0003003e,0x0000090a,0x0000090b, + 0x00060039,0x00000002,0x0000090c,0x00000140,0x00000908,0x0000090a,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009, + 0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007,0x0000000b,0x000200f8,0x0000000d, + 0x0004003d,0x00000006,0x00000142,0x00000009,0x0004003d,0x00000006,0x00000143,0x0000000a, + 0x0004007c,0x0000001a,0x00000144,0x00000143,0x0004003d,0x00000006,0x00000145,0x0000000b, + 0x0004007c,0x0000001a,0x00000146,0x00000145,0x000600cb,0x00000006,0x00000147,0x00000142, + 0x00000144,0x00000146,0x000200fe,0x00000147,0x00010038,0x00050036,0x00000006,0x00000011, + 0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f, + 0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012,0x0004003d,0x00000006,0x0000014a, + 0x0000000e,0x0004003d,0x00000006,0x0000014b,0x0000000f,0x0004003d,0x00000006,0x0000014d, + 0x00000010,0x0004007c,0x0000001a,0x0000014e,0x0000014d,0x000700c9,0x00000006,0x0000014f, + 0x0000014a,0x0000014b,0x0000014c,0x0000014e,0x000200fe,0x0000014f,0x00010038,0x00050036, + 0x00000013,0x00000018,0x00000000,0x00000015,0x00030037,0x00000014,0x00000016,0x00030037, + 0x00000014,0x00000017,0x000200f8,0x00000019,0x0004003d,0x00000013,0x00000152,0x00000016, + 0x0004003d,0x00000013,0x00000153,0x00000017,0x0007000c,0x00000013,0x00000154,0x00000001, + 0x00000025,0x00000152,0x00000153,0x000200fe,0x00000154,0x00010038,0x00050036,0x0000001a, + 0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b,0x0000001d,0x00030037,0x0000001b, + 0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a,0x00000157,0x0000001d,0x0004003d, + 0x0000001a,0x00000158,0x0000001e,0x0007000c,0x0000001a,0x00000159,0x00000001,0x00000027, + 0x00000157,0x00000158,0x000200fe,0x00000159,0x00010038,0x00050036,0x00000013,0x00000023, + 0x00000000,0x00000015,0x00030037,0x00000014,0x00000021,0x00030037,0x00000014,0x00000022, + 0x000200f8,0x00000024,0x0004003d,0x00000013,0x0000015c,0x00000021,0x0004003d,0x00000013, + 0x0000015d,0x00000022,0x0007000c,0x00000013,0x0000015e,0x00000001,0x00000028,0x0000015c, + 0x0000015d,0x000200fe,0x0000015e,0x00010038,0x00050036,0x0000001a,0x00000027,0x00000000, + 0x0000001c,0x00030037,0x0000001b,0x00000025,0x00030037,0x0000001b,0x00000026,0x000200f8, + 0x00000028,0x0004003d,0x0000001a,0x00000161,0x00000025,0x0004003d,0x0000001a,0x00000162, + 0x00000026,0x0007000c,0x0000001a,0x00000163,0x00000001,0x0000002a,0x00000161,0x00000162, + 0x000200fe,0x00000163,0x00010038,0x00050036,0x00000013,0x0000002b,0x00000000,0x00000015, + 0x00030037,0x00000014,0x00000029,0x00030037,0x00000014,0x0000002a,0x000200f8,0x0000002c, + 0x0004003d,0x00000013,0x00000166,0x00000029,0x0004003d,0x00000013,0x00000167,0x0000002a, + 0x0007000c,0x00000013,0x00000168,0x00000001,0x0000001a,0x00000166,0x00000167,0x000200fe, + 0x00000168,0x00010038,0x00050036,0x0000002d,0x00000030,0x00000000,0x0000002e,0x00030037, + 0x00000007,0x0000002f,0x000200f8,0x00000031,0x0004003b,0x00000007,0x0000016d,0x00000007, + 0x0004003b,0x00000007,0x0000016f,0x00000007,0x0004003b,0x00000007,0x00000170,0x00000007, + 0x0004003b,0x00000007,0x00000173,0x00000007,0x0004003b,0x00000007,0x00000174,0x00000007, + 0x0004003b,0x00000007,0x00000176,0x00000007,0x0004003b,0x00000007,0x00000178,0x00000007, + 0x0004003b,0x00000007,0x0000017a,0x00000007,0x0004003b,0x00000007,0x0000017b,0x00000007, + 0x0004003b,0x00000007,0x0000017d,0x00000007,0x0004003b,0x00000007,0x0000017f,0x00000007, + 0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b,0x00000007,0x00000182,0x00000007, + 0x0004003b,0x00000007,0x00000183,0x00000007,0x0004003b,0x00000007,0x00000184,0x00000007, + 0x0004003d,0x00000006,0x0000016e,0x0000002f,0x0003003e,0x0000016d,0x0000016e,0x0003003e, + 0x0000016f,0x0000016b,0x0003003e,0x00000170,0x0000016c,0x00070039,0x00000006,0x00000171, + 0x0000000c,0x0000016d,0x0000016f,0x00000170,0x0003003e,0x00000173,0x00000171,0x0004003d, + 0x00000006,0x00000175,0x0000002f,0x0003003e,0x00000174,0x00000175,0x0003003e,0x00000176, + 0x00000172,0x00070039,0x00000006,0x00000177,0x00000011,0x00000173,0x00000174,0x00000176, + 0x0004003d,0x00000006,0x00000179,0x0000002f,0x0003003e,0x00000178,0x00000179,0x0003003e, + 0x0000017a,0x0000016c,0x0003003e,0x0000017b,0x0000016c,0x00070039,0x00000006,0x0000017c, + 0x0000000c,0x00000178,0x0000017a,0x0000017b,0x0004003d,0x00000006,0x0000017e,0x0000002f, + 0x0003003e,0x0000017d,0x0000017e,0x0003003e,0x0000017f,0x00000172,0x0003003e,0x00000180, + 0x0000016b,0x00070039,0x00000006,0x00000181,0x0000000c,0x0000017d,0x0000017f,0x00000180, + 0x0003003e,0x00000182,0x0000017c,0x0003003e,0x00000183,0x00000181,0x0003003e,0x00000184, + 0x0000016b,0x00070039,0x00000006,0x00000185,0x00000011,0x00000182,0x00000183,0x00000184, + 0x00050050,0x0000002d,0x00000186,0x00000177,0x00000185,0x000200fe,0x00000186,0x00010038, + 0x00050036,0x00000032,0x00000034,0x00000000,0x00000033,0x000200f8,0x00000035,0x00050041, + 0x0000018c,0x0000018d,0x0000018b,0x0000014c,0x0004003d,0x00000032,0x0000018e,0x0000018d, + 0x000200fe,0x0000018e,0x00010038,0x00050036,0x00000032,0x00000036,0x00000000,0x00000033, + 0x000200f8,0x00000037,0x00050041,0x0000018c,0x00000192,0x0000018b,0x00000191,0x0004003d, + 0x00000032,0x00000193,0x00000192,0x000200fe,0x00000193,0x00010038,0x00050036,0x00000038, + 0x0000003a,0x00000000,0x00000039,0x000200f8,0x0000003b,0x00050041,0x00000197,0x00000198, + 0x0000018b,0x00000196,0x0004003d,0x00000038,0x00000199,0x00000198,0x000200fe,0x00000199, + 0x00010038,0x00050036,0x00000038,0x0000003c,0x00000000,0x00000039,0x000200f8,0x0000003d, + 0x00050041,0x00000197,0x0000019d,0x0000018b,0x0000019c,0x0004003d,0x00000038,0x0000019e, + 0x0000019d,0x000200fe,0x0000019e,0x00010038,0x00050036,0x00000013,0x0000003f,0x00000000, + 0x0000003e,0x000200f8,0x00000040,0x00050041,0x000001a2,0x000001a3,0x0000018b,0x000001a1, + 0x0004003d,0x00000013,0x000001a4,0x000001a3,0x000200fe,0x000001a4,0x00010038,0x00050036, + 0x00000006,0x00000042,0x00000000,0x00000041,0x000200f8,0x00000043,0x00050041,0x000001aa, + 0x000001ab,0x000001a9,0x0000014c,0x0004003d,0x00000006,0x000001ac,0x000001ab,0x000200fe, + 0x000001ac,0x00010038,0x00050036,0x00000006,0x00000044,0x00000000,0x00000041,0x000200f8, + 0x00000045,0x00050041,0x000001aa,0x000001af,0x000001a9,0x00000191,0x0004003d,0x00000006, + 0x000001b0,0x000001af,0x000200fe,0x000001b0,0x00010038,0x00050036,0x0000002d,0x00000047, + 0x00000000,0x00000046,0x000200f8,0x00000048,0x00050041,0x000001b4,0x000001b5,0x000001a9, + 0x000001b3,0x0004003d,0x0000002d,0x000001b6,0x000001b5,0x000200fe,0x000001b6,0x00010038, + 0x00050036,0x00000013,0x0000004c,0x00000000,0x0000004a,0x00030037,0x00000049,0x0000004b, + 0x000200f8,0x0000004d,0x0004003d,0x000001b9,0x000001bc,0x000001bb,0x0004003d,0x00000032, + 0x000001bd,0x0000004b,0x0007005f,0x0000009f,0x000001be,0x000001bc,0x000001bd,0x00000002, + 0x0000014c,0x00050051,0x00000013,0x000001c0,0x000001be,0x00000000,0x000200fe,0x000001c0, + 0x00010038,0x00050036,0x00000013,0x0000004f,0x00000000,0x0000004a,0x00030037,0x00000049, + 0x0000004e,0x000200f8,0x00000050,0x0004003d,0x000001b9,0x000001c4,0x000001c3,0x0004003d, + 0x00000032,0x000001c5,0x0000004e,0x0007005f,0x0000009f,0x000001c6,0x000001c4,0x000001c5, + 0x00000002,0x0000014c,0x00050051,0x00000013,0x000001c7,0x000001c6,0x00000000,0x000200fe, + 0x000001c7,0x00010038,0x00050036,0x00000038,0x00000053,0x00000000,0x00000051,0x00030037, + 0x00000049,0x00000052,0x000200f8,0x00000054,0x0004003d,0x000001b9,0x000001cb,0x000001ca, + 0x0004003d,0x00000032,0x000001cc,0x00000052,0x0007005f,0x0000009f,0x000001cd,0x000001cb, + 0x000001cc,0x00000002,0x0000014c,0x0007004f,0x00000038,0x000001ce,0x000001cd,0x000001cd, + 0x00000000,0x00000001,0x000200fe,0x000001ce,0x00010038,0x00050036,0x00000013,0x00000055, + 0x00000000,0x0000003e,0x000200f8,0x00000056,0x0004003b,0x00000014,0x000001d1,0x00000007, + 0x0004003d,0x000001b9,0x000001d3,0x000001d2,0x0007005f,0x0000009f,0x000001d5,0x000001d3, + 0x000001d4,0x00000002,0x0000014c,0x00050051,0x00000013,0x000001d6,0x000001d5,0x00000000, + 0x0003003e,0x000001d1,0x000001d6,0x0004003d,0x00000013,0x000001d7,0x000001d1,0x000500b4, + 0x0000006e,0x000001d9,0x000001d7,0x000001d8,0x000300f7,0x000001db,0x00000000,0x000400fa, + 0x000001d9,0x000001da,0x000001db,0x000200f8,0x000001da,0x0003003e,0x000001d1,0x000001dc, + 0x000200f9,0x000001db,0x000200f8,0x000001db,0x0004003d,0x00000013,0x000001dd,0x000001d1, + 0x000200fe,0x000001dd,0x00010038,0x00050036,0x00000038,0x0000005a,0x00000000,0x00000057, + 0x00030037,0x00000049,0x00000058,0x00030037,0x00000007,0x00000059,0x000200f8,0x0000005b, + 0x0004003d,0x00000006,0x000001e0,0x00000059,0x000500aa,0x0000006e,0x000001e1,0x000001e0, + 0x000001bf,0x000300f7,0x000001e3,0x00000000,0x000400fa,0x000001e1,0x000001e2,0x000001e3, + 0x000200f8,0x000001e2,0x0004003d,0x000001e4,0x000001e7,0x000001e6,0x0004003d,0x00000032, + 0x000001e8,0x00000058,0x00050062,0x0000009f,0x000001e9,0x000001e7,0x000001e8,0x0007004f, + 0x00000038,0x000001ea,0x000001e9,0x000001e9,0x00000000,0x00000001,0x000200fe,0x000001ea, + 0x000200f8,0x000001e3,0x0004003d,0x00000006,0x000001ec,0x00000059,0x000500aa,0x0000006e, + 0x000001ed,0x000001ec,0x00000172,0x000300f7,0x000001ef,0x00000000,0x000400fa,0x000001ed, + 0x000001ee,0x000001ef,0x000200f8,0x000001ee,0x0004003d,0x000001e4,0x000001f1,0x000001f0, + 0x0004003d,0x00000032,0x000001f2,0x00000058,0x00050062,0x0000009f,0x000001f3,0x000001f1, + 0x000001f2,0x0007004f,0x00000038,0x000001f4,0x000001f3,0x000001f3,0x00000000,0x00000001, + 0x000200fe,0x000001f4,0x000200f8,0x000001ef,0x0004003d,0x00000006,0x000001f6,0x00000059, + 0x000500aa,0x0000006e,0x000001f7,0x000001f6,0x0000016b,0x000300f7,0x000001f9,0x00000000, + 0x000400fa,0x000001f7,0x000001f8,0x000001f9,0x000200f8,0x000001f8,0x0004003d,0x000001e4, + 0x000001fb,0x000001fa,0x0004003d,0x00000032,0x000001fc,0x00000058,0x00050062,0x0000009f, + 0x000001fd,0x000001fb,0x000001fc,0x0007004f,0x00000038,0x000001fe,0x000001fd,0x000001fd, + 0x00000000,0x00000001,0x000200fe,0x000001fe,0x000200f8,0x000001f9,0x0004003d,0x00000006, + 0x00000200,0x00000059,0x000500aa,0x0000006e,0x00000201,0x00000200,0x0000016c,0x000300f7, + 0x00000203,0x00000000,0x000400fa,0x00000201,0x00000202,0x00000203,0x000200f8,0x00000202, + 0x0004003d,0x000001e4,0x00000205,0x00000204,0x0004003d,0x00000032,0x00000206,0x00000058, + 0x00050062,0x0000009f,0x00000207,0x00000205,0x00000206,0x0007004f,0x00000038,0x00000208, + 0x00000207,0x00000207,0x00000000,0x00000001,0x000200fe,0x00000208,0x000200f8,0x00000203, + 0x0004003d,0x00000006,0x0000020a,0x00000059,0x000500aa,0x0000006e,0x0000020c,0x0000020a, + 0x0000020b,0x000300f7,0x0000020e,0x00000000,0x000400fa,0x0000020c,0x0000020d,0x0000020e, + 0x000200f8,0x0000020d,0x0004003d,0x000001e4,0x00000210,0x0000020f,0x0004003d,0x00000032, + 0x00000211,0x00000058,0x00050062,0x0000009f,0x00000212,0x00000210,0x00000211,0x0007004f, + 0x00000038,0x00000213,0x00000212,0x00000212,0x00000000,0x00000001,0x000200fe,0x00000213, + 0x000200f8,0x0000020e,0x0004003d,0x00000006,0x00000215,0x00000059,0x000500aa,0x0000006e, + 0x00000216,0x00000215,0x00000081,0x000300f7,0x00000218,0x00000000,0x000400fa,0x00000216, + 0x00000217,0x00000218,0x000200f8,0x00000217,0x0004003d,0x000001e4,0x0000021a,0x00000219, + 0x0004003d,0x00000032,0x0000021b,0x00000058,0x00050062,0x0000009f,0x0000021c,0x0000021a, + 0x0000021b,0x0007004f,0x00000038,0x0000021d,0x0000021c,0x0000021c,0x00000000,0x00000001, + 0x000200fe,0x0000021d,0x000200f8,0x00000218,0x000200fe,0x0000021f,0x00010038,0x00050036, + 0x00000002,0x00000061,0x00000000,0x0000005d,0x00030037,0x00000049,0x0000005e,0x00030037, + 0x0000005c,0x0000005f,0x00030037,0x00000007,0x00000060,0x000200f8,0x00000062,0x0004003d, + 0x00000006,0x00000222,0x00000060,0x000500aa,0x0000006e,0x00000223,0x00000222,0x000001bf, + 0x000300f7,0x00000225,0x00000000,0x000400fa,0x00000223,0x00000224,0x00000225,0x000200f8, + 0x00000224,0x0004003d,0x000001e4,0x00000226,0x000001e6,0x0004003d,0x00000032,0x00000227, + 0x0000005e,0x0004003d,0x00000038,0x00000228,0x0000005f,0x00050051,0x00000013,0x00000229, + 0x00000228,0x00000000,0x00050051,0x00000013,0x0000022a,0x00000228,0x00000001,0x00070050, + 0x0000009f,0x0000022b,0x00000229,0x0000022a,0x000001d8,0x000001d8,0x00040063,0x00000226, + 0x00000227,0x0000022b,0x000200f9,0x00000225,0x000200f8,0x00000225,0x0004003d,0x00000006, + 0x0000022c,0x00000060,0x000500aa,0x0000006e,0x0000022d,0x0000022c,0x00000172,0x000300f7, + 0x0000022f,0x00000000,0x000400fa,0x0000022d,0x0000022e,0x0000022f,0x000200f8,0x0000022e, + 0x0004003d,0x000001e4,0x00000230,0x000001f0,0x0004003d,0x00000032,0x00000231,0x0000005e, + 0x0004003d,0x00000038,0x00000232,0x0000005f,0x00050051,0x00000013,0x00000233,0x00000232, + 0x00000000,0x00050051,0x00000013,0x00000234,0x00000232,0x00000001,0x00070050,0x0000009f, + 0x00000235,0x00000233,0x00000234,0x000001d8,0x000001d8,0x00040063,0x00000230,0x00000231, + 0x00000235,0x000200f9,0x0000022f,0x000200f8,0x0000022f,0x0004003d,0x00000006,0x00000236, + 0x00000060,0x000500aa,0x0000006e,0x00000237,0x00000236,0x0000016b,0x000300f7,0x00000239, + 0x00000000,0x000400fa,0x00000237,0x00000238,0x00000239,0x000200f8,0x00000238,0x0004003d, + 0x000001e4,0x0000023a,0x000001fa,0x0004003d,0x00000032,0x0000023b,0x0000005e,0x0004003d, + 0x00000038,0x0000023c,0x0000005f,0x00050051,0x00000013,0x0000023d,0x0000023c,0x00000000, + 0x00050051,0x00000013,0x0000023e,0x0000023c,0x00000001,0x00070050,0x0000009f,0x0000023f, + 0x0000023d,0x0000023e,0x000001d8,0x000001d8,0x00040063,0x0000023a,0x0000023b,0x0000023f, + 0x000200f9,0x00000239,0x000200f8,0x00000239,0x0004003d,0x00000006,0x00000240,0x00000060, + 0x000500aa,0x0000006e,0x00000241,0x00000240,0x0000016c,0x000300f7,0x00000243,0x00000000, + 0x000400fa,0x00000241,0x00000242,0x00000243,0x000200f8,0x00000242,0x0004003d,0x000001e4, + 0x00000244,0x00000204,0x0004003d,0x00000032,0x00000245,0x0000005e,0x0004003d,0x00000038, + 0x00000246,0x0000005f,0x00050051,0x00000013,0x00000247,0x00000246,0x00000000,0x00050051, + 0x00000013,0x00000248,0x00000246,0x00000001,0x00070050,0x0000009f,0x00000249,0x00000247, + 0x00000248,0x000001d8,0x000001d8,0x00040063,0x00000244,0x00000245,0x00000249,0x000200f9, + 0x00000243,0x000200f8,0x00000243,0x0004003d,0x00000006,0x0000024a,0x00000060,0x000500aa, + 0x0000006e,0x0000024b,0x0000024a,0x0000020b,0x000300f7,0x0000024d,0x00000000,0x000400fa, + 0x0000024b,0x0000024c,0x0000024d,0x000200f8,0x0000024c,0x0004003d,0x000001e4,0x0000024e, + 0x0000020f,0x0004003d,0x00000032,0x0000024f,0x0000005e,0x0004003d,0x00000038,0x00000250, + 0x0000005f,0x00050051,0x00000013,0x00000251,0x00000250,0x00000000,0x00050051,0x00000013, + 0x00000252,0x00000250,0x00000001,0x00070050,0x0000009f,0x00000253,0x00000251,0x00000252, + 0x000001d8,0x000001d8,0x00040063,0x0000024e,0x0000024f,0x00000253,0x000200f9,0x0000024d, + 0x000200f8,0x0000024d,0x0004003d,0x00000006,0x00000254,0x00000060,0x000500aa,0x0000006e, + 0x00000255,0x00000254,0x00000081,0x000300f7,0x00000257,0x00000000,0x000400fa,0x00000255, + 0x00000256,0x00000257,0x000200f8,0x00000256,0x0004003d,0x000001e4,0x00000258,0x00000219, + 0x0004003d,0x00000032,0x00000259,0x0000005e,0x0004003d,0x00000038,0x0000025a,0x0000005f, + 0x00050051,0x00000013,0x0000025b,0x0000025a,0x00000000,0x00050051,0x00000013,0x0000025c, + 0x0000025a,0x00000001,0x00070050,0x0000009f,0x0000025d,0x0000025b,0x0000025c,0x000001d8, + 0x000001d8,0x00040063,0x00000258,0x00000259,0x0000025d,0x000200f9,0x00000257,0x000200f8, + 0x00000257,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000065,0x00000000,0x00000063, + 0x00030037,0x00000007,0x00000064,0x000200f8,0x00000066,0x0006003c,0x00000261,0x00000262, + 0x00000260,0x000001d4,0x000001bf,0x000700ea,0x00000006,0x00000263,0x00000262,0x00000172, + 0x000001bf,0x00000172,0x0003003e,0x00000064,0x00000263,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000067,0x00000000,0x00000003,0x000200f8,0x00000068,0x0004003d,0x0000025e, + 0x00000264,0x00000260,0x00040063,0x00000264,0x000001d4,0x00000266,0x000100fd,0x00010038, + 0x00050036,0x00000013,0x0000006c,0x00000000,0x00000069,0x00030037,0x00000013,0x0000006a, + 0x00030037,0x00000013,0x0000006b,0x000200f8,0x0000006d,0x0004003b,0x00000014,0x00000267, + 0x00000007,0x0004003b,0x00000014,0x00000268,0x00000007,0x0004003b,0x00000014,0x00000269, + 0x00000007,0x0004003b,0x00000014,0x0000026d,0x00000007,0x0004003b,0x00000014,0x00000270, + 0x00000007,0x0004003b,0x00000014,0x00000271,0x00000007,0x0003003e,0x00000268,0x0000006a, + 0x0003003e,0x00000269,0x0000006b,0x00060039,0x00000013,0x0000026a,0x00000023,0x00000268, + 0x00000269,0x0003003e,0x00000267,0x0000026a,0x0004003d,0x00000013,0x0000026b,0x00000267, + 0x000500b7,0x0000006e,0x0000026c,0x0000026b,0x000001d8,0x000300f7,0x0000026f,0x00000000, + 0x000400fa,0x0000026c,0x0000026e,0x00000275,0x000200f8,0x0000026e,0x0003003e,0x00000270, + 0x0000006a,0x0003003e,0x00000271,0x0000006b,0x00060039,0x00000013,0x00000272,0x00000018, + 0x00000270,0x00000271,0x0004003d,0x00000013,0x00000273,0x00000267,0x00050088,0x00000013, + 0x00000274,0x00000272,0x00000273,0x0003003e,0x0000026d,0x00000274,0x000200f9,0x0000026f, + 0x000200f8,0x00000275,0x0003003e,0x0000026d,0x000001d8,0x000200f9,0x0000026f,0x000200f8, + 0x0000026f,0x0004003d,0x00000013,0x00000276,0x0000026d,0x000200fe,0x00000276,0x00010038, + 0x00050036,0x0000006e,0x00000071,0x00000000,0x0000006f,0x00030037,0x0000005c,0x00000070, + 0x000200f8,0x00000072,0x00050041,0x00000014,0x00000279,0x00000070,0x000001bf,0x0004003d, + 0x00000013,0x0000027a,0x00000279,0x000500be,0x0000006e,0x0000027b,0x0000027a,0x000001d8, + 0x000300f7,0x0000027d,0x00000000,0x000400fa,0x0000027b,0x0000027c,0x0000027d,0x000200f8, + 0x0000027c,0x00050041,0x00000014,0x0000027e,0x00000070,0x000001bf,0x0004003d,0x00000013, + 0x0000027f,0x0000027e,0x000500bc,0x0000006e,0x00000280,0x0000027f,0x000001dc,0x000200f9, + 0x0000027d,0x000200f8,0x0000027d,0x000700f5,0x0000006e,0x00000281,0x0000027b,0x00000072, + 0x00000280,0x0000027c,0x000300f7,0x00000283,0x00000000,0x000400fa,0x00000281,0x00000282, + 0x00000283,0x000200f8,0x00000282,0x00050041,0x00000014,0x00000284,0x00000070,0x00000172, + 0x0004003d,0x00000013,0x00000285,0x00000284,0x000500be,0x0000006e,0x00000286,0x00000285, + 0x000001d8,0x000300f7,0x00000288,0x00000000,0x000400fa,0x00000286,0x00000287,0x00000288, + 0x000200f8,0x00000287,0x00050041,0x00000014,0x00000289,0x00000070,0x00000172,0x0004003d, + 0x00000013,0x0000028a,0x00000289,0x000500bc,0x0000006e,0x0000028b,0x0000028a,0x000001dc, + 0x000200f9,0x00000288,0x000200f8,0x00000288,0x000700f5,0x0000006e,0x0000028c,0x00000286, + 0x00000282,0x0000028b,0x00000287,0x000200f9,0x00000283,0x000200f8,0x00000283,0x000700f5, + 0x0000006e,0x0000028d,0x00000281,0x0000027d,0x0000028c,0x00000288,0x000200fe,0x0000028d, + 0x00010038,0x00050036,0x00000032,0x00000077,0x00000000,0x00000073,0x00030037,0x00000049, + 0x00000074,0x00030037,0x00000049,0x00000075,0x00030037,0x00000049,0x00000076,0x000200f8, + 0x00000078,0x0004003b,0x00000049,0x00000290,0x00000007,0x0004003b,0x0000001b,0x00000297, + 0x00000007,0x0004003b,0x0000001b,0x0000029a,0x00000007,0x0004003b,0x0000001b,0x0000029c, + 0x00000007,0x0004003b,0x0000001b,0x0000029d,0x00000007,0x0004003b,0x0000001b,0x000002a3, + 0x00000007,0x0004003b,0x0000001b,0x000002a6,0x00000007,0x0004003b,0x0000001b,0x000002a8, + 0x00000007,0x0004003b,0x0000001b,0x000002a9,0x00000007,0x0004003d,0x00000032,0x00000291, + 0x00000074,0x0004003d,0x00000032,0x00000292,0x00000075,0x00050080,0x00000032,0x00000293, + 0x00000291,0x00000292,0x0003003e,0x00000290,0x00000293,0x00050041,0x0000001b,0x00000294, + 0x00000076,0x000001bf,0x0004003d,0x0000001a,0x00000295,0x00000294,0x00050082,0x0000001a, + 0x00000296,0x00000295,0x00000191,0x00050041,0x0000001b,0x00000298,0x00000290,0x000001bf, + 0x0004003d,0x0000001a,0x00000299,0x00000298,0x0003003e,0x00000297,0x00000299,0x0003003e, + 0x0000029a,0x00000296,0x00060039,0x0000001a,0x0000029b,0x0000001f,0x00000297,0x0000029a, + 0x0003003e,0x0000029c,0x0000014c,0x0003003e,0x0000029d,0x0000029b,0x00060039,0x0000001a, + 0x0000029e,0x00000027,0x0000029c,0x0000029d,0x00050041,0x0000001b,0x0000029f,0x00000290, + 0x000001bf,0x0003003e,0x0000029f,0x0000029e,0x00050041,0x0000001b,0x000002a0,0x00000076, + 0x00000172,0x0004003d,0x0000001a,0x000002a1,0x000002a0,0x00050082,0x0000001a,0x000002a2, + 0x000002a1,0x00000191,0x00050041,0x0000001b,0x000002a4,0x00000290,0x00000172,0x0004003d, + 0x0000001a,0x000002a5,0x000002a4,0x0003003e,0x000002a3,0x000002a5,0x0003003e,0x000002a6, + 0x000002a2,0x00060039,0x0000001a,0x000002a7,0x0000001f,0x000002a3,0x000002a6,0x0003003e, + 0x000002a8,0x0000014c,0x0003003e,0x000002a9,0x000002a7,0x00060039,0x0000001a,0x000002aa, + 0x00000027,0x000002a8,0x000002a9,0x00050041,0x0000001b,0x000002ab,0x00000290,0x00000172, + 0x0003003e,0x000002ab,0x000002aa,0x0004003d,0x00000032,0x000002ac,0x00000290,0x000200fe, + 0x000002ac,0x00010038,0x00050036,0x00000002,0x0000007a,0x00000000,0x00000063,0x00030037, + 0x00000007,0x00000079,0x000200f8,0x0000007b,0x0004003b,0x00000007,0x000002b1,0x00000007, + 0x0004003d,0x00000006,0x000002b2,0x000002b0,0x0003003e,0x000002b1,0x000002b2,0x00050039, + 0x00000002,0x000002b3,0x00000065,0x000002b1,0x0004003d,0x00000006,0x000002b4,0x000002b1, + 0x0003003e,0x000002b0,0x000002b4,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000007c, + 0x00000000,0x00000041,0x000200f8,0x0000007d,0x0004003d,0x00000006,0x000002b5,0x000002b0, + 0x000200fe,0x000002b5,0x00010038,0x00050036,0x00000002,0x0000007f,0x00000000,0x00000063, + 0x00030037,0x00000007,0x0000007e,0x000200f8,0x00000080,0x00040039,0x00000002,0x000002b8, + 0x00000067,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000087,0x00000000,0x00000085, + 0x00030037,0x00000084,0x00000086,0x000200f8,0x00000088,0x0004003b,0x00000014,0x000002b9, + 0x00000007,0x0004003b,0x00000014,0x000002bb,0x00000007,0x0004003b,0x00000014,0x000002be, + 0x00000007,0x0004003b,0x00000014,0x000002c2,0x00000007,0x0004003b,0x00000014,0x000002c5, + 0x00000007,0x0004003b,0x00000014,0x000002cc,0x00000007,0x0004003b,0x00000014,0x000002ce, + 0x00000007,0x0004003b,0x00000014,0x000002d1,0x00000007,0x0004003b,0x00000014,0x000002d5, + 0x00000007,0x0004003b,0x00000014,0x000002d8,0x00000007,0x0004003b,0x00000014,0x000002df, + 0x00000007,0x0004003b,0x00000014,0x000002e0,0x00000007,0x0004003b,0x00000014,0x000002e3, + 0x00000007,0x0004003b,0x00000014,0x000002e7,0x00000007,0x0004003b,0x00000014,0x000002ea, + 0x00000007,0x0004003b,0x00000014,0x000002f1,0x00000007,0x0004003b,0x00000014,0x000002f2, + 0x00000007,0x0004003b,0x00000014,0x000002f5,0x00000007,0x0004003b,0x00000014,0x000002f9, + 0x00000007,0x0004003b,0x00000014,0x000002fc,0x00000007,0x0004003b,0x00000014,0x00000303, + 0x00000007,0x0004003b,0x00000014,0x00000304,0x00000007,0x0004003b,0x00000014,0x00000307, + 0x00000007,0x0004003b,0x00000014,0x0000030b,0x00000007,0x0004003b,0x00000014,0x0000030e, + 0x00000007,0x0004003b,0x00000014,0x00000315,0x00000007,0x0004003b,0x00000014,0x00000316, + 0x00000007,0x0004003b,0x00000014,0x00000319,0x00000007,0x0004003b,0x00000014,0x0000031d, + 0x00000007,0x0004003b,0x00000014,0x00000320,0x00000007,0x0004003b,0x00000014,0x00000327, + 0x00000007,0x0004003b,0x00000014,0x00000328,0x00000007,0x0004003b,0x00000014,0x0000032b, + 0x00000007,0x0004003b,0x00000014,0x0000032f,0x00000007,0x0004003b,0x00000014,0x00000332, + 0x00000007,0x0004003b,0x00000014,0x00000339,0x00000007,0x0004003b,0x00000014,0x0000033a, + 0x00000007,0x0004003b,0x00000014,0x0000033d,0x00000007,0x0004003b,0x00000014,0x00000341, + 0x00000007,0x0004003b,0x00000014,0x00000344,0x00000007,0x0004003b,0x00000014,0x0000034b, + 0x00000007,0x0004003b,0x00000014,0x0000034c,0x00000007,0x0004003b,0x00000014,0x0000034f, + 0x00000007,0x0004003b,0x00000014,0x00000353,0x00000007,0x0004003b,0x00000014,0x00000356, + 0x00000007,0x00060041,0x00000014,0x000002bc,0x00000086,0x0000014c,0x0000014c,0x0004003d, + 0x00000013,0x000002bd,0x000002bc,0x0003003e,0x000002bb,0x000002bd,0x00060041,0x00000014, + 0x000002bf,0x00000086,0x0000014c,0x000002ba,0x0004003d,0x00000013,0x000002c0,0x000002bf, + 0x0003003e,0x000002be,0x000002c0,0x00060039,0x00000013,0x000002c1,0x00000018,0x000002bb, + 0x000002be,0x0003003e,0x000002b9,0x000002c1,0x00060041,0x00000014,0x000002c3,0x00000086, + 0x0000014c,0x0000014c,0x0004003d,0x00000013,0x000002c4,0x000002c3,0x0003003e,0x000002c2, + 0x000002c4,0x00060041,0x00000014,0x000002c6,0x00000086,0x0000014c,0x000002ba,0x0004003d, + 0x00000013,0x000002c7,0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00060039,0x00000013, + 0x000002c8,0x00000023,0x000002c2,0x000002c5,0x00060041,0x00000014,0x000002c9,0x00000086, + 0x0000014c,0x000002ba,0x0003003e,0x000002c9,0x000002c8,0x0004003d,0x00000013,0x000002ca, + 0x000002b9,0x00060041,0x00000014,0x000002cb,0x00000086,0x0000014c,0x0000014c,0x0003003e, + 0x000002cb,0x000002ca,0x00060041,0x00000014,0x000002cf,0x00000086,0x0000014c,0x00000191, + 0x0004003d,0x00000013,0x000002d0,0x000002cf,0x0003003e,0x000002ce,0x000002d0,0x00060041, + 0x00000014,0x000002d2,0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013,0x000002d3, + 0x000002d2,0x0003003e,0x000002d1,0x000002d3,0x00060039,0x00000013,0x000002d4,0x00000018, + 0x000002ce,0x000002d1,0x0003003e,0x000002cc,0x000002d4,0x00060041,0x00000014,0x000002d6, + 0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x000002d7,0x000002d6,0x0003003e, + 0x000002d5,0x000002d7,0x00060041,0x00000014,0x000002d9,0x00000086,0x0000014c,0x000002cd, + 0x0004003d,0x00000013,0x000002da,0x000002d9,0x0003003e,0x000002d8,0x000002da,0x00060039, + 0x00000013,0x000002db,0x00000023,0x000002d5,0x000002d8,0x00060041,0x00000014,0x000002dc, + 0x00000086,0x0000014c,0x000002cd,0x0003003e,0x000002dc,0x000002db,0x0004003d,0x00000013, + 0x000002dd,0x000002cc,0x00060041,0x00000014,0x000002de,0x00000086,0x0000014c,0x00000191, + 0x0003003e,0x000002de,0x000002dd,0x00060041,0x00000014,0x000002e1,0x00000086,0x0000014c, + 0x0000014c,0x0004003d,0x00000013,0x000002e2,0x000002e1,0x0003003e,0x000002e0,0x000002e2, + 0x00060041,0x00000014,0x000002e4,0x00000086,0x0000014c,0x000001b3,0x0004003d,0x00000013, + 0x000002e5,0x000002e4,0x0003003e,0x000002e3,0x000002e5,0x00060039,0x00000013,0x000002e6, + 0x00000018,0x000002e0,0x000002e3,0x0003003e,0x000002df,0x000002e6,0x00060041,0x00000014, + 0x000002e8,0x00000086,0x0000014c,0x0000014c,0x0004003d,0x00000013,0x000002e9,0x000002e8, + 0x0003003e,0x000002e7,0x000002e9,0x00060041,0x00000014,0x000002eb,0x00000086,0x0000014c, + 0x000001b3,0x0004003d,0x00000013,0x000002ec,0x000002eb,0x0003003e,0x000002ea,0x000002ec, + 0x00060039,0x00000013,0x000002ed,0x00000023,0x000002e7,0x000002ea,0x00060041,0x00000014, + 0x000002ee,0x00000086,0x0000014c,0x000001b3,0x0003003e,0x000002ee,0x000002ed,0x0004003d, + 0x00000013,0x000002ef,0x000002df,0x00060041,0x00000014,0x000002f0,0x00000086,0x0000014c, + 0x0000014c,0x0003003e,0x000002f0,0x000002ef,0x00060041,0x00000014,0x000002f3,0x00000086, + 0x0000014c,0x00000191,0x0004003d,0x00000013,0x000002f4,0x000002f3,0x0003003e,0x000002f2, + 0x000002f4,0x00060041,0x00000014,0x000002f6,0x00000086,0x0000014c,0x000002ba,0x0004003d, + 0x00000013,0x000002f7,0x000002f6,0x0003003e,0x000002f5,0x000002f7,0x00060039,0x00000013, + 0x000002f8,0x00000018,0x000002f2,0x000002f5,0x0003003e,0x000002f1,0x000002f8,0x00060041, + 0x00000014,0x000002fa,0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x000002fb, + 0x000002fa,0x0003003e,0x000002f9,0x000002fb,0x00060041,0x00000014,0x000002fd,0x00000086, + 0x0000014c,0x000002ba,0x0004003d,0x00000013,0x000002fe,0x000002fd,0x0003003e,0x000002fc, + 0x000002fe,0x00060039,0x00000013,0x000002ff,0x00000023,0x000002f9,0x000002fc,0x00060041, + 0x00000014,0x00000300,0x00000086,0x0000014c,0x000002ba,0x0003003e,0x00000300,0x000002ff, + 0x0004003d,0x00000013,0x00000301,0x000002f1,0x00060041,0x00000014,0x00000302,0x00000086, + 0x0000014c,0x00000191,0x0003003e,0x00000302,0x00000301,0x00060041,0x00000014,0x00000305, + 0x00000086,0x0000014c,0x0000014c,0x0004003d,0x00000013,0x00000306,0x00000305,0x0003003e, + 0x00000304,0x00000306,0x00060041,0x00000014,0x00000308,0x00000086,0x0000014c,0x00000191, + 0x0004003d,0x00000013,0x00000309,0x00000308,0x0003003e,0x00000307,0x00000309,0x00060039, + 0x00000013,0x0000030a,0x00000018,0x00000304,0x00000307,0x0003003e,0x00000303,0x0000030a, + 0x00060041,0x00000014,0x0000030c,0x00000086,0x0000014c,0x0000014c,0x0004003d,0x00000013, + 0x0000030d,0x0000030c,0x0003003e,0x0000030b,0x0000030d,0x00060041,0x00000014,0x0000030f, + 0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x00000310,0x0000030f,0x0003003e, + 0x0000030e,0x00000310,0x00060039,0x00000013,0x00000311,0x00000023,0x0000030b,0x0000030e, + 0x00060041,0x00000014,0x00000312,0x00000086,0x0000014c,0x00000191,0x0003003e,0x00000312, + 0x00000311,0x0004003d,0x00000013,0x00000313,0x00000303,0x00060041,0x00000014,0x00000314, + 0x00000086,0x0000014c,0x0000014c,0x0003003e,0x00000314,0x00000313,0x00060041,0x00000014, + 0x00000317,0x00000086,0x0000014c,0x000001b3,0x0004003d,0x00000013,0x00000318,0x00000317, + 0x0003003e,0x00000316,0x00000318,0x00060041,0x00000014,0x0000031a,0x00000086,0x0000014c, + 0x000002cd,0x0004003d,0x00000013,0x0000031b,0x0000031a,0x0003003e,0x00000319,0x0000031b, + 0x00060039,0x00000013,0x0000031c,0x00000018,0x00000316,0x00000319,0x0003003e,0x00000315, + 0x0000031c,0x00060041,0x00000014,0x0000031e,0x00000086,0x0000014c,0x000001b3,0x0004003d, + 0x00000013,0x0000031f,0x0000031e,0x0003003e,0x0000031d,0x0000031f,0x00060041,0x00000014, + 0x00000321,0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013,0x00000322,0x00000321, + 0x0003003e,0x00000320,0x00000322,0x00060039,0x00000013,0x00000323,0x00000023,0x0000031d, + 0x00000320,0x00060041,0x00000014,0x00000324,0x00000086,0x0000014c,0x000002cd,0x0003003e, + 0x00000324,0x00000323,0x0004003d,0x00000013,0x00000325,0x00000315,0x00060041,0x00000014, + 0x00000326,0x00000086,0x0000014c,0x000001b3,0x0003003e,0x00000326,0x00000325,0x00060041, + 0x00000014,0x00000329,0x00000086,0x0000014c,0x00000191,0x0004003d,0x00000013,0x0000032a, + 0x00000329,0x0003003e,0x00000328,0x0000032a,0x00060041,0x00000014,0x0000032c,0x00000086, + 0x0000014c,0x000001b3,0x0004003d,0x00000013,0x0000032d,0x0000032c,0x0003003e,0x0000032b, + 0x0000032d,0x00060039,0x00000013,0x0000032e,0x00000018,0x00000328,0x0000032b,0x0003003e, + 0x00000327,0x0000032e,0x00060041,0x00000014,0x00000330,0x00000086,0x0000014c,0x00000191, + 0x0004003d,0x00000013,0x00000331,0x00000330,0x0003003e,0x0000032f,0x00000331,0x00060041, + 0x00000014,0x00000333,0x00000086,0x0000014c,0x000001b3,0x0004003d,0x00000013,0x00000334, + 0x00000333,0x0003003e,0x00000332,0x00000334,0x00060039,0x00000013,0x00000335,0x00000023, + 0x0000032f,0x00000332,0x00060041,0x00000014,0x00000336,0x00000086,0x0000014c,0x000001b3, + 0x0003003e,0x00000336,0x00000335,0x0004003d,0x00000013,0x00000337,0x00000327,0x00060041, + 0x00000014,0x00000338,0x00000086,0x0000014c,0x00000191,0x0003003e,0x00000338,0x00000337, + 0x00060041,0x00000014,0x0000033b,0x00000086,0x0000014c,0x000002ba,0x0004003d,0x00000013, + 0x0000033c,0x0000033b,0x0003003e,0x0000033a,0x0000033c,0x00060041,0x00000014,0x0000033e, + 0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013,0x0000033f,0x0000033e,0x0003003e, + 0x0000033d,0x0000033f,0x00060039,0x00000013,0x00000340,0x00000018,0x0000033a,0x0000033d, + 0x0003003e,0x00000339,0x00000340,0x00060041,0x00000014,0x00000342,0x00000086,0x0000014c, + 0x000002ba,0x0004003d,0x00000013,0x00000343,0x00000342,0x0003003e,0x00000341,0x00000343, + 0x00060041,0x00000014,0x00000345,0x00000086,0x0000014c,0x000002cd,0x0004003d,0x00000013, + 0x00000346,0x00000345,0x0003003e,0x00000344,0x00000346,0x00060039,0x00000013,0x00000347, + 0x00000023,0x00000341,0x00000344,0x00060041,0x00000014,0x00000348,0x00000086,0x0000014c, + 0x000002cd,0x0003003e,0x00000348,0x00000347,0x0004003d,0x00000013,0x00000349,0x00000339, + 0x00060041,0x00000014,0x0000034a,0x00000086,0x0000014c,0x000002ba,0x0003003e,0x0000034a, + 0x00000349,0x00060041,0x00000014,0x0000034d,0x00000086,0x0000014c,0x000001b3,0x0004003d, + 0x00000013,0x0000034e,0x0000034d,0x0003003e,0x0000034c,0x0000034e,0x00060041,0x00000014, + 0x00000350,0x00000086,0x0000014c,0x000002ba,0x0004003d,0x00000013,0x00000351,0x00000350, + 0x0003003e,0x0000034f,0x00000351,0x00060039,0x00000013,0x00000352,0x00000018,0x0000034c, + 0x0000034f,0x0003003e,0x0000034b,0x00000352,0x00060041,0x00000014,0x00000354,0x00000086, + 0x0000014c,0x000001b3,0x0004003d,0x00000013,0x00000355,0x00000354,0x0003003e,0x00000353, + 0x00000355,0x00060041,0x00000014,0x00000357,0x00000086,0x0000014c,0x000002ba,0x0004003d, + 0x00000013,0x00000358,0x00000357,0x0003003e,0x00000356,0x00000358,0x00060039,0x00000013, + 0x00000359,0x00000023,0x00000353,0x00000356,0x00060041,0x00000014,0x0000035a,0x00000086, + 0x0000014c,0x000002ba,0x0003003e,0x0000035a,0x00000359,0x0004003d,0x00000013,0x0000035b, + 0x0000034b,0x00060041,0x00000014,0x0000035c,0x00000086,0x0000014c,0x000001b3,0x0003003e, + 0x0000035c,0x0000035b,0x000100fd,0x00010038,0x00050036,0x00000013,0x0000008d,0x00000000, + 0x00000089,0x00030037,0x00000049,0x0000008a,0x00030037,0x00000084,0x0000008b,0x00030037, + 0x00000084,0x0000008c,0x000200f8,0x0000008e,0x0004003b,0x00000014,0x0000035d,0x00000007, + 0x0004003b,0x0000001b,0x0000035f,0x00000007,0x0004003b,0x0000001b,0x00000360,0x00000007, + 0x0004003b,0x00000084,0x00000361,0x00000007,0x0004003b,0x00000084,0x00000365,0x00000007, + 0x0004003b,0x00000014,0x00000369,0x00000007,0x0004003b,0x00000014,0x0000036a,0x00000007, + 0x0004003b,0x00000014,0x0000036d,0x00000007,0x0004003b,0x0000001b,0x00000376,0x00000007, + 0x0004003b,0x00000014,0x00000383,0x00000007,0x0003003e,0x0000035d,0x0000035e,0x0003003e, + 0x0000035f,0x0000014c,0x0003003e,0x00000360,0x0000014c,0x0004003d,0x00000083,0x00000362, + 0x0000008b,0x0003003e,0x00000361,0x00000362,0x00050039,0x00000002,0x00000363,0x00000087, + 0x00000361,0x0004003d,0x00000083,0x00000364,0x00000361,0x0003003e,0x0000008b,0x00000364, + 0x0004003d,0x00000083,0x00000366,0x0000008c,0x0003003e,0x00000365,0x00000366,0x00050039, + 0x00000002,0x00000367,0x00000087,0x00000365,0x0004003d,0x00000083,0x00000368,0x00000365, + 0x0003003e,0x0000008c,0x00000368,0x00060041,0x00000014,0x0000036b,0x0000008b,0x0000014c, + 0x000002cd,0x0004003d,0x00000013,0x0000036c,0x0000036b,0x0003003e,0x0000036a,0x0000036c, + 0x00060041,0x00000014,0x0000036e,0x0000008c,0x0000014c,0x000002cd,0x0004003d,0x00000013, + 0x0000036f,0x0000036e,0x0003003e,0x0000036d,0x0000036f,0x00060039,0x00000013,0x00000370, + 0x00000018,0x0000036a,0x0000036d,0x0003003e,0x00000369,0x00000370,0x0004003d,0x00000013, + 0x00000371,0x00000369,0x000500ba,0x0000006e,0x00000373,0x00000371,0x00000372,0x000300f7, + 0x00000375,0x00000000,0x000400fa,0x00000373,0x00000374,0x00000375,0x000200f8,0x00000374, + 0x0003003e,0x00000376,0x0000014c,0x000200f9,0x00000377,0x000200f8,0x00000377,0x000400f6, + 0x00000379,0x0000037a,0x00000000,0x000200f9,0x0000037b,0x000200f8,0x0000037b,0x0004003d, + 0x0000001a,0x0000037c,0x00000376,0x000500b1,0x0000006e,0x0000037e,0x0000037c,0x0000037d, + 0x0004003d,0x00000013,0x0000037f,0x0000035d,0x000500b8,0x0000006e,0x00000381,0x0000037f, + 0x00000380,0x000500a7,0x0000006e,0x00000382,0x0000037e,0x00000381,0x000400fa,0x00000382, + 0x00000378,0x00000379,0x000200f8,0x00000378,0x0004003d,0x0000001a,0x00000384,0x0000035f, + 0x00060041,0x00000014,0x00000385,0x0000008b,0x0000014c,0x00000384,0x0004003d,0x00000013, + 0x00000386,0x00000385,0x0004003d,0x0000001a,0x00000387,0x00000360,0x00060041,0x00000014, + 0x00000388,0x0000008c,0x0000014c,0x00000387,0x0004003d,0x00000013,0x00000389,0x00000388, + 0x00050083,0x00000013,0x0000038a,0x00000386,0x00000389,0x0003003e,0x00000383,0x0000038a, + 0x0004003d,0x00000013,0x0000038b,0x00000383,0x0006000c,0x00000013,0x0000038c,0x00000001, + 0x00000004,0x0000038b,0x000500ba,0x0000006e,0x0000038e,0x0000038c,0x0000038d,0x000300f7, + 0x00000390,0x00000000,0x000400fa,0x0000038e,0x0000038f,0x000003b8,0x000200f8,0x0000038f, + 0x0004003d,0x00000013,0x00000391,0x00000383,0x0006000c,0x00000013,0x00000392,0x00000001, + 0x00000006,0x00000391,0x0004003d,0x0000001a,0x00000393,0x0000035f,0x00060041,0x00000014, + 0x00000394,0x0000008b,0x0000014c,0x00000393,0x0004003d,0x00000013,0x00000395,0x00000394, + 0x0004003d,0x0000001a,0x00000396,0x00000360,0x00060041,0x00000014,0x00000397,0x0000008c, + 0x0000014c,0x00000396,0x0004003d,0x00000013,0x00000398,0x00000397,0x00060039,0x00000013, + 0x00000399,0x0000006c,0x00000395,0x00000398,0x00050083,0x00000013,0x0000039a,0x000001dc, + 0x00000399,0x00050085,0x00000013,0x0000039b,0x00000392,0x0000039a,0x0003003e,0x00000383, + 0x0000039b,0x0004003d,0x00000013,0x0000039c,0x00000383,0x0006000c,0x00000013,0x0000039d, + 0x00000001,0x00000004,0x0000039c,0x0004003d,0x00000013,0x0000039e,0x0000035d,0x0006000c, + 0x00000013,0x0000039f,0x00000001,0x00000004,0x0000039e,0x000500b8,0x0000006e,0x000003a0, + 0x0000039d,0x0000039f,0x0004003d,0x00000013,0x000003a1,0x00000383,0x0004003d,0x00000013, + 0x000003a2,0x0000035d,0x000600a9,0x00000013,0x000003a3,0x000003a0,0x000003a1,0x000003a2, + 0x0003003e,0x0000035d,0x000003a3,0x0004003d,0x0000001a,0x000003a4,0x0000035f,0x00060041, + 0x00000014,0x000003a5,0x0000008b,0x0000014c,0x000003a4,0x0004003d,0x00000013,0x000003a6, + 0x000003a5,0x0004003d,0x0000001a,0x000003a7,0x00000360,0x00060041,0x00000014,0x000003a8, + 0x0000008c,0x0000014c,0x000003a7,0x0004003d,0x00000013,0x000003a9,0x000003a8,0x000500b8, + 0x0000006e,0x000003aa,0x000003a6,0x000003a9,0x000600a9,0x0000001a,0x000003ab,0x000003aa, + 0x00000191,0x0000014c,0x0004003d,0x0000001a,0x000003ac,0x0000035f,0x00050080,0x0000001a, + 0x000003ad,0x000003ac,0x000003ab,0x0003003e,0x0000035f,0x000003ad,0x0004003d,0x0000001a, + 0x000003ae,0x0000035f,0x00060041,0x00000014,0x000003af,0x0000008b,0x0000014c,0x000003ae, + 0x0004003d,0x00000013,0x000003b0,0x000003af,0x0004003d,0x0000001a,0x000003b1,0x00000360, + 0x00060041,0x00000014,0x000003b2,0x0000008c,0x0000014c,0x000003b1,0x0004003d,0x00000013, + 0x000003b3,0x000003b2,0x000500be,0x0000006e,0x000003b4,0x000003b0,0x000003b3,0x000600a9, + 0x0000001a,0x000003b5,0x000003b4,0x00000191,0x0000014c,0x0004003d,0x0000001a,0x000003b6, + 0x00000360,0x00050080,0x0000001a,0x000003b7,0x000003b6,0x000003b5,0x0003003e,0x00000360, + 0x000003b7,0x000200f9,0x00000390,0x000200f8,0x000003b8,0x0003003e,0x0000035d,0x00000380, + 0x000200f9,0x00000390,0x000200f8,0x00000390,0x000200f9,0x0000037a,0x000200f8,0x0000037a, + 0x0004003d,0x0000001a,0x000003b9,0x00000376,0x00050080,0x0000001a,0x000003ba,0x000003b9, + 0x00000191,0x0003003e,0x00000376,0x000003ba,0x000200f9,0x00000377,0x000200f8,0x00000379, + 0x000200f9,0x00000375,0x000200f8,0x00000375,0x0004003d,0x00000013,0x000003bb,0x0000035d, + 0x0004003d,0x00000013,0x000003bc,0x0000035d,0x000500b8,0x0000006e,0x000003bd,0x000003bc, + 0x0000035e,0x000600a9,0x00000013,0x000003be,0x000003bd,0x000001dc,0x000001d8,0x00050085, + 0x00000013,0x000003bf,0x000003bb,0x000003be,0x000200fe,0x000003bf,0x00010038,0x00050036, + 0x00000083,0x00000091,0x00000000,0x0000008f,0x00030037,0x0000005c,0x00000090,0x000200f8, + 0x00000092,0x0004003b,0x0000005c,0x000003c2,0x00000007,0x0004003b,0x00000049,0x000003c9, + 0x00000007,0x0004003b,0x0000001b,0x000003d0,0x00000007,0x0004003b,0x00000049,0x000003d8, + 0x00000007,0x0004003b,0x00000049,0x000003e2,0x00000007,0x0004003b,0x00000049,0x000003e4, + 0x00000007,0x0004003b,0x000003e5,0x000003e6,0x00000007,0x0004003b,0x00000049,0x000003e9, + 0x00000007,0x0004003b,0x00000084,0x000003eb,0x00000007,0x0004003b,0x00000049,0x000003ed, + 0x00000007,0x0004003b,0x00000014,0x000003f5,0x00000007,0x0004003b,0x00000014,0x000003f8, + 0x00000007,0x0004003b,0x00000014,0x000003fd,0x00000007,0x0004003b,0x00000014,0x00000400, + 0x00000007,0x0004003d,0x00000038,0x000003c3,0x00000090,0x00040039,0x00000038,0x000003c4, + 0x0000003a,0x00040039,0x00000032,0x000003c5,0x00000034,0x0004006f,0x00000038,0x000003c6, + 0x000003c5,0x00050088,0x00000038,0x000003c7,0x000003c4,0x000003c6,0x00050081,0x00000038, + 0x000003c8,0x000003c3,0x000003c7,0x0003003e,0x000003c2,0x000003c8,0x0004003d,0x00000038, + 0x000003ca,0x000003c2,0x00040039,0x00000032,0x000003cb,0x00000034,0x0004006f,0x00000038, + 0x000003cc,0x000003cb,0x00050085,0x00000038,0x000003cd,0x000003ca,0x000003cc,0x0006000c, + 0x00000038,0x000003ce,0x00000001,0x00000008,0x000003cd,0x0004006e,0x00000032,0x000003cf, + 0x000003ce,0x0003003e,0x000003c9,0x000003cf,0x0003003e,0x000003d0,0x0000014c,0x000200f9, + 0x000003d1,0x000200f8,0x000003d1,0x000400f6,0x000003d3,0x000003d4,0x00000000,0x000200f9, + 0x000003d5,0x000200f8,0x000003d5,0x0004003d,0x0000001a,0x000003d6,0x000003d0,0x000500b1, + 0x0000006e,0x000003d7,0x000003d6,0x0000037d,0x000400fa,0x000003d7,0x000003d2,0x000003d3, + 0x000200f8,0x000003d2,0x0004003d,0x0000001a,0x000003e0,0x000003d0,0x00040039,0x00000032, + 0x000003e1,0x00000034,0x0004003d,0x00000032,0x000003e3,0x000003c9,0x0003003e,0x000003e2, + 0x000003e3,0x0003003e,0x000003e6,0x000003df,0x00050041,0x00000049,0x000003e7,0x000003e6, + 0x000003e0,0x0004003d,0x00000032,0x000003e8,0x000003e7,0x0003003e,0x000003e4,0x000003e8, + 0x0003003e,0x000003e9,0x000003e1,0x00070039,0x00000032,0x000003ea,0x00000077,0x000003e2, + 0x000003e4,0x000003e9,0x0003003e,0x000003d8,0x000003ea,0x0004003d,0x0000001a,0x000003ec, + 0x000003d0,0x0004003d,0x00000032,0x000003ee,0x000003d8,0x0003003e,0x000003ed,0x000003ee, + 0x00050039,0x00000013,0x000003ef,0x0000004c,0x000003ed,0x00040039,0x00000013,0x000003f0, + 0x00000055,0x00050085,0x00000013,0x000003f1,0x000003ef,0x000003f0,0x00060041,0x00000014, + 0x000003f2,0x000003eb,0x0000014c,0x000003ec,0x0003003e,0x000003f2,0x000003f1,0x0004003d, + 0x0000001a,0x000003f3,0x000003d0,0x0004003d,0x0000001a,0x000003f4,0x000003d0,0x00060041, + 0x00000014,0x000003f6,0x000003eb,0x0000014c,0x000003f4,0x0004003d,0x00000013,0x000003f7, + 0x000003f6,0x0003003e,0x000003f5,0x000003f7,0x0003003e,0x000003f8,0x000001dc,0x00060039, + 0x00000013,0x000003f9,0x0000002b,0x000003f5,0x000003f8,0x00060041,0x00000014,0x000003fa, + 0x000003eb,0x0000014c,0x000003f3,0x0003003e,0x000003fa,0x000003f9,0x0004003d,0x0000001a, + 0x000003fb,0x000003d0,0x0004003d,0x0000001a,0x000003fc,0x000003d0,0x00060041,0x00000014, + 0x000003fe,0x000003eb,0x0000014c,0x000003fc,0x0004003d,0x00000013,0x000003ff,0x000003fe, + 0x0003003e,0x000003fd,0x000003ff,0x0003003e,0x00000400,0x0000038d,0x00060039,0x00000013, + 0x00000401,0x00000023,0x000003fd,0x00000400,0x00060041,0x00000014,0x00000402,0x000003eb, + 0x0000014c,0x000003fb,0x0003003e,0x00000402,0x00000401,0x000200f9,0x000003d4,0x000200f8, + 0x000003d4,0x0004003d,0x0000001a,0x00000403,0x000003d0,0x00050080,0x0000001a,0x00000404, + 0x00000403,0x00000191,0x0003003e,0x000003d0,0x00000404,0x000200f9,0x000003d1,0x000200f8, + 0x000003d3,0x0004003d,0x00000083,0x00000405,0x000003eb,0x000200fe,0x00000405,0x00010038, + 0x00050036,0x00000093,0x00000097,0x00000000,0x00000094,0x00030037,0x0000005c,0x00000095, + 0x00030037,0x0000005c,0x00000096,0x000200f8,0x00000098,0x0004003b,0x0000005c,0x00000408, + 0x00000007,0x0004003b,0x0000005c,0x0000040f,0x00000007,0x0004003b,0x00000413,0x00000414, + 0x00000007,0x0004003b,0x0000005c,0x00000415,0x00000007,0x0004003b,0x00000049,0x0000041e, + 0x00000007,0x0004003b,0x0000001b,0x00000425,0x00000007,0x0004003b,0x00000049,0x0000042d, + 0x00000007,0x0004003b,0x00000049,0x00000430,0x00000007,0x0004003b,0x00000049,0x00000432, + 0x00000007,0x0004003b,0x000003e5,0x00000433,0x00000007,0x0004003b,0x00000049,0x00000436, + 0x00000007,0x0004003b,0x00000049,0x00000439,0x00000007,0x0004003b,0x00000014,0x00000443, + 0x00000007,0x0004003b,0x00000014,0x00000446,0x00000007,0x0004003b,0x00000014,0x0000044b, + 0x00000007,0x0004003b,0x00000014,0x0000044e,0x00000007,0x0004003d,0x00000038,0x00000409, + 0x00000095,0x00040039,0x00000038,0x0000040a,0x0000003c,0x00040039,0x00000032,0x0000040b, + 0x00000036,0x0004006f,0x00000038,0x0000040c,0x0000040b,0x00050088,0x00000038,0x0000040d, + 0x0000040a,0x0000040c,0x00050081,0x00000038,0x0000040e,0x00000409,0x0000040d,0x0003003e, + 0x00000408,0x0000040e,0x0004003d,0x00000038,0x00000410,0x00000408,0x0004003d,0x00000038, + 0x00000411,0x00000096,0x00050081,0x00000038,0x00000412,0x00000410,0x00000411,0x0003003e, + 0x0000040f,0x00000412,0x0004003d,0x00000038,0x00000416,0x0000040f,0x0003003e,0x00000415, + 0x00000416,0x00050039,0x0000006e,0x00000417,0x00000071,0x00000415,0x00050041,0x00000418, + 0x00000419,0x00000414,0x00000191,0x0003003e,0x00000419,0x00000417,0x00050041,0x00000418, + 0x0000041a,0x00000414,0x00000191,0x0004003d,0x0000006e,0x0000041b,0x0000041a,0x000300f7, + 0x0000041d,0x00000000,0x000400fa,0x0000041b,0x0000041c,0x0000041d,0x000200f8,0x0000041c, + 0x0004003d,0x00000038,0x0000041f,0x0000040f,0x00040039,0x00000032,0x00000420,0x00000036, + 0x0004006f,0x00000038,0x00000421,0x00000420,0x00050085,0x00000038,0x00000422,0x0000041f, + 0x00000421,0x0006000c,0x00000038,0x00000423,0x00000001,0x00000008,0x00000422,0x0004006e, + 0x00000032,0x00000424,0x00000423,0x0003003e,0x0000041e,0x00000424,0x0003003e,0x00000425, + 0x0000014c,0x000200f9,0x00000426,0x000200f8,0x00000426,0x000400f6,0x00000428,0x00000429, + 0x00000000,0x000200f9,0x0000042a,0x000200f8,0x0000042a,0x0004003d,0x0000001a,0x0000042b, + 0x00000425,0x000500b1,0x0000006e,0x0000042c,0x0000042b,0x0000037d,0x000400fa,0x0000042c, + 0x00000427,0x00000428,0x000200f8,0x00000427,0x0004003d,0x0000001a,0x0000042e,0x00000425, + 0x00040039,0x00000032,0x0000042f,0x00000036,0x0004003d,0x00000032,0x00000431,0x0000041e, + 0x0003003e,0x00000430,0x00000431,0x0003003e,0x00000433,0x000003df,0x00050041,0x00000049, + 0x00000434,0x00000433,0x0000042e,0x0004003d,0x00000032,0x00000435,0x00000434,0x0003003e, + 0x00000432,0x00000435,0x0003003e,0x00000436,0x0000042f,0x00070039,0x00000032,0x00000437, + 0x00000077,0x00000430,0x00000432,0x00000436,0x0003003e,0x0000042d,0x00000437,0x0004003d, + 0x0000001a,0x00000438,0x00000425,0x0004003d,0x00000032,0x0000043a,0x0000042d,0x0003003e, + 0x00000439,0x0000043a,0x00050039,0x00000013,0x0000043b,0x0000004f,0x00000439,0x00040039, + 0x00000013,0x0000043c,0x0000003f,0x00050085,0x00000013,0x0000043d,0x0000043b,0x0000043c, + 0x00040039,0x00000013,0x0000043e,0x00000055,0x00050085,0x00000013,0x0000043f,0x0000043d, + 0x0000043e,0x00070041,0x00000014,0x00000440,0x00000414,0x0000014c,0x0000014c,0x00000438, + 0x0003003e,0x00000440,0x0000043f,0x0004003d,0x0000001a,0x00000441,0x00000425,0x0004003d, + 0x0000001a,0x00000442,0x00000425,0x00070041,0x00000014,0x00000444,0x00000414,0x0000014c, + 0x0000014c,0x00000442,0x0004003d,0x00000013,0x00000445,0x00000444,0x0003003e,0x00000443, + 0x00000445,0x0003003e,0x00000446,0x000001dc,0x00060039,0x00000013,0x00000447,0x0000002b, + 0x00000443,0x00000446,0x00070041,0x00000014,0x00000448,0x00000414,0x0000014c,0x0000014c, + 0x00000441,0x0003003e,0x00000448,0x00000447,0x0004003d,0x0000001a,0x00000449,0x00000425, + 0x0004003d,0x0000001a,0x0000044a,0x00000425,0x00070041,0x00000014,0x0000044c,0x00000414, + 0x0000014c,0x0000014c,0x0000044a,0x0004003d,0x00000013,0x0000044d,0x0000044c,0x0003003e, + 0x0000044b,0x0000044d,0x0003003e,0x0000044e,0x0000038d,0x00060039,0x00000013,0x0000044f, + 0x00000023,0x0000044b,0x0000044e,0x00070041,0x00000014,0x00000450,0x00000414,0x0000014c, + 0x0000014c,0x00000449,0x0003003e,0x00000450,0x0000044f,0x000200f9,0x00000429,0x000200f8, + 0x00000429,0x0004003d,0x0000001a,0x00000451,0x00000425,0x00050080,0x0000001a,0x00000452, + 0x00000451,0x00000191,0x0003003e,0x00000425,0x00000452,0x000200f9,0x00000426,0x000200f8, + 0x00000428,0x000200f9,0x0000041d,0x000200f8,0x0000041d,0x0004003d,0x00000093,0x00000453, + 0x00000414,0x000200fe,0x00000453,0x00010038,0x00050036,0x00000013,0x0000009d,0x00000000, + 0x00000099,0x00030037,0x00000049,0x0000009a,0x00030037,0x0000005c,0x0000009b,0x00030037, + 0x0000005c,0x0000009c,0x000200f8,0x0000009e,0x0004003b,0x00000014,0x00000456,0x00000007, + 0x0004003b,0x00000084,0x00000457,0x00000007,0x0004003b,0x0000005c,0x00000458,0x00000007, + 0x0004003b,0x00000413,0x0000045b,0x00000007,0x0004003b,0x0000005c,0x0000045c,0x00000007, + 0x0004003b,0x0000005c,0x0000045e,0x00000007,0x0004003b,0x00000049,0x00000465,0x00000007, + 0x0004003b,0x00000084,0x00000467,0x00000007,0x0004003b,0x00000084,0x00000469,0x00000007, + 0x0003003e,0x00000456,0x000001d8,0x0004003d,0x00000038,0x00000459,0x0000009b,0x0003003e, + 0x00000458,0x00000459,0x00050039,0x00000083,0x0000045a,0x00000091,0x00000458,0x0003003e, + 0x00000457,0x0000045a,0x0004003d,0x00000038,0x0000045d,0x0000009b,0x0003003e,0x0000045c, + 0x0000045d,0x0004003d,0x00000038,0x0000045f,0x0000009c,0x0003003e,0x0000045e,0x0000045f, + 0x00060039,0x00000093,0x00000460,0x00000097,0x0000045c,0x0000045e,0x0003003e,0x0000045b, + 0x00000460,0x00050041,0x00000418,0x00000461,0x0000045b,0x00000191,0x0004003d,0x0000006e, + 0x00000462,0x00000461,0x000300f7,0x00000464,0x00000000,0x000400fa,0x00000462,0x00000463, + 0x00000464,0x000200f8,0x00000463,0x0004003d,0x00000032,0x00000466,0x0000009a,0x0003003e, + 0x00000465,0x00000466,0x0004003d,0x00000083,0x00000468,0x00000457,0x0003003e,0x00000467, + 0x00000468,0x00050041,0x00000084,0x0000046a,0x0000045b,0x0000014c,0x0004003d,0x00000083, + 0x0000046b,0x0000046a,0x0003003e,0x00000469,0x0000046b,0x00070039,0x00000013,0x0000046c, + 0x0000008d,0x00000465,0x00000467,0x00000469,0x0003003e,0x00000456,0x0000046c,0x000200f9, + 0x00000464,0x000200f8,0x00000464,0x0004003d,0x00000013,0x0000046d,0x00000456,0x000200fe, + 0x0000046d,0x00010038,0x00050036,0x0000009f,0x000000a3,0x00000000,0x000000a0,0x00030037, + 0x0000005c,0x000000a1,0x00030037,0x00000007,0x000000a2,0x000200f8,0x000000a4,0x0004003b, + 0x00000049,0x00000470,0x00000007,0x0004003b,0x00000049,0x00000474,0x00000007,0x0004003b, + 0x00000049,0x00000475,0x00000007,0x0004003b,0x00000049,0x00000476,0x00000007,0x0004003b, + 0x0000005c,0x00000478,0x00000007,0x0004003b,0x00000049,0x00000479,0x00000007,0x0004003b, + 0x0000005c,0x0000047c,0x00000007,0x0004003b,0x00000014,0x00000485,0x00000007,0x0004003b, + 0x00000049,0x00000486,0x00000007,0x0004003b,0x0000005c,0x00000488,0x00000007,0x0004003b, + 0x0000005c,0x0000048a,0x00000007,0x0004003b,0x000000aa,0x0000048d,0x00000007,0x0004003b, + 0x00000014,0x00000493,0x00000007,0x0004003d,0x00000038,0x00000471,0x000000a1,0x0004006e, + 0x00000032,0x00000472,0x00000471,0x00040039,0x00000032,0x00000473,0x00000034,0x0003003e, + 0x00000474,0x00000472,0x0003003e,0x00000475,0x000001d4,0x0003003e,0x00000476,0x00000473, + 0x00070039,0x00000032,0x00000477,0x00000077,0x00000474,0x00000475,0x00000476,0x0003003e, + 0x00000470,0x00000477,0x0004003d,0x00000032,0x0000047a,0x00000470,0x0003003e,0x00000479, + 0x0000047a,0x00050039,0x00000038,0x0000047b,0x00000053,0x00000479,0x0003003e,0x00000478, + 0x0000047b,0x0004003d,0x00000032,0x0000047d,0x00000470,0x0004006f,0x00000038,0x0000047e, + 0x0000047d,0x00050050,0x00000038,0x00000480,0x0000047f,0x0000047f,0x00050081,0x00000038, + 0x00000481,0x0000047e,0x00000480,0x00040039,0x00000032,0x00000482,0x00000034,0x0004006f, + 0x00000038,0x00000483,0x00000482,0x00050088,0x00000038,0x00000484,0x00000481,0x00000483, + 0x0003003e,0x0000047c,0x00000484,0x0004003d,0x00000032,0x00000487,0x00000470,0x0003003e, + 0x00000486,0x00000487,0x0004003d,0x00000038,0x00000489,0x0000047c,0x0003003e,0x00000488, + 0x00000489,0x0004003d,0x00000038,0x0000048b,0x00000478,0x0003003e,0x0000048a,0x0000048b, + 0x00070039,0x00000013,0x0000048c,0x0000009d,0x00000486,0x00000488,0x0000048a,0x0003003e, + 0x00000485,0x0000048c,0x0003003e,0x0000048d,0x0000048e,0x0004003d,0x00000013,0x0000048f, + 0x00000485,0x00050041,0x00000014,0x00000490,0x0000048d,0x000001bf,0x0003003e,0x00000490, + 0x0000048f,0x0004003d,0x00000013,0x00000491,0x00000485,0x000500b7,0x0000006e,0x00000492, + 0x00000491,0x000001d8,0x000300f7,0x00000495,0x00000000,0x000400fa,0x00000492,0x00000494, + 0x00000498,0x000200f8,0x00000494,0x0004003d,0x00000013,0x00000496,0x00000485,0x0006000c, + 0x00000013,0x00000497,0x00000001,0x00000006,0x00000496,0x0003003e,0x00000493,0x00000497, + 0x000200f9,0x00000495,0x000200f8,0x00000498,0x0003003e,0x00000493,0x000001d8,0x000200f9, + 0x00000495,0x000200f8,0x00000495,0x0004003d,0x00000013,0x00000499,0x00000493,0x00050041, + 0x00000014,0x0000049a,0x0000048d,0x00000172,0x0003003e,0x0000049a,0x00000499,0x00050041, + 0x00000014,0x0000049b,0x0000048d,0x0000016b,0x0003003e,0x0000049b,0x000001dc,0x0004003d, + 0x0000009f,0x0000049c,0x0000048d,0x000200fe,0x0000049c,0x00010038,0x00050036,0x0000009f, + 0x000000a8,0x00000000,0x000000a5,0x00030037,0x00000049,0x000000a6,0x00030037,0x00000007, + 0x000000a7,0x000200f8,0x000000a9,0x0004003b,0x00000049,0x0000049f,0x00000007,0x0004003b, + 0x00000007,0x000004a1,0x00000007,0x0004003d,0x00000032,0x000004a0,0x000000a6,0x0003003e, + 0x0000049f,0x000004a0,0x0003003e,0x000004a1,0x00000081,0x00060039,0x00000038,0x000004a2, + 0x0000005a,0x0000049f,0x000004a1,0x00050051,0x00000013,0x000004a3,0x000004a2,0x00000000, + 0x00050051,0x00000013,0x000004a4,0x000004a2,0x00000001,0x00070050,0x0000009f,0x000004a5, + 0x000004a3,0x000004a4,0x000001d8,0x000001d8,0x000200fe,0x000004a5,0x00010038,0x00050036, + 0x0000009f,0x000000b0,0x00000000,0x000000ab,0x00030037,0x000000aa,0x000000ac,0x00030037, + 0x000000aa,0x000000ad,0x00030037,0x000000aa,0x000000ae,0x00030037,0x000000aa,0x000000af, + 0x000200f8,0x000000b1,0x0004003d,0x0000009f,0x000004a8,0x000000ac,0x0004003d,0x0000009f, + 0x000004a9,0x000000ad,0x00050081,0x0000009f,0x000004aa,0x000004a8,0x000004a9,0x0004003d, + 0x0000009f,0x000004ab,0x000000ae,0x00050081,0x0000009f,0x000004ac,0x000004aa,0x000004ab, + 0x0004003d,0x0000009f,0x000004ad,0x000000af,0x00050081,0x0000009f,0x000004ae,0x000004ac, + 0x000004ad,0x0005008e,0x0000009f,0x000004b0,0x000004ae,0x000004af,0x000200fe,0x000004b0, + 0x00010038,0x00050036,0x00000002,0x000000b7,0x00000000,0x000000b2,0x00030037,0x00000049, + 0x000000b3,0x00030037,0x000000aa,0x000000b4,0x00030037,0x00000007,0x000000b5,0x00030037, + 0x00000007,0x000000b6,0x000200f8,0x000000b8,0x0004003b,0x00000049,0x000004b7,0x00000007, + 0x0004003b,0x0000005c,0x000004b9,0x00000007,0x0004003b,0x00000007,0x000004bc,0x00000007, + 0x0004003d,0x00000006,0x000004b3,0x000000b5,0x000500ae,0x0000006e,0x000004b4,0x000004b3, + 0x000001bf,0x000300f7,0x000004b6,0x00000000,0x000400fa,0x000004b4,0x000004b5,0x000004b6, + 0x000200f8,0x000004b5,0x0004003d,0x00000032,0x000004b8,0x000000b3,0x0003003e,0x000004b7, + 0x000004b8,0x0004003d,0x0000009f,0x000004ba,0x000000b4,0x0007004f,0x00000038,0x000004bb, + 0x000004ba,0x000004ba,0x00000000,0x00000001,0x0003003e,0x000004b9,0x000004bb,0x0004003d, + 0x00000006,0x000004bd,0x000000b5,0x0003003e,0x000004bc,0x000004bd,0x00070039,0x00000002, + 0x000004be,0x00000061,0x000004b7,0x000004b9,0x000004bc,0x000200f9,0x000004b6,0x000200f8, + 0x000004b6,0x000100fd,0x00010038,0x00050036,0x0000009f,0x000000bc,0x00000000,0x000000b9, + 0x00030037,0x00000007,0x000000ba,0x00030037,0x00000007,0x000000bb,0x000200f8,0x000000bd, + 0x0004003d,0x00000006,0x000004c4,0x000000ba,0x0004003d,0x00000006,0x000004c5,0x000000bb, + 0x00060041,0x000004c6,0x000004c7,0x000004c3,0x000004c4,0x000004c5,0x0004003d,0x00000013, + 0x000004c8,0x000004c7,0x0004003d,0x00000006,0x000004ca,0x000000ba,0x0004003d,0x00000006, + 0x000004cb,0x000000bb,0x00060041,0x000004c6,0x000004cc,0x000004c9,0x000004ca,0x000004cb, + 0x0004003d,0x00000013,0x000004cd,0x000004cc,0x0004003d,0x00000006,0x000004cf,0x000000ba, + 0x0004003d,0x00000006,0x000004d0,0x000000bb,0x00060041,0x000004c6,0x000004d1,0x000004ce, + 0x000004cf,0x000004d0,0x0004003d,0x00000013,0x000004d2,0x000004d1,0x0004003d,0x00000006, + 0x000004d4,0x000000ba,0x0004003d,0x00000006,0x000004d5,0x000000bb,0x00060041,0x000004c6, + 0x000004d6,0x000004d3,0x000004d4,0x000004d5,0x0004003d,0x00000013,0x000004d7,0x000004d6, + 0x00070050,0x0000009f,0x000004d8,0x000004c8,0x000004cd,0x000004d2,0x000004d7,0x000200fe, + 0x000004d8,0x00010038,0x00050036,0x00000002,0x000000c2,0x00000000,0x000000be,0x00030037, + 0x00000007,0x000000bf,0x00030037,0x00000007,0x000000c0,0x00030037,0x000000aa,0x000000c1, + 0x000200f8,0x000000c3,0x0004003d,0x00000006,0x000004db,0x000000bf,0x0004003d,0x00000006, + 0x000004dc,0x000000c0,0x00050041,0x00000014,0x000004dd,0x000000c1,0x000001bf,0x0004003d, + 0x00000013,0x000004de,0x000004dd,0x00060041,0x000004c6,0x000004df,0x000004c3,0x000004db, + 0x000004dc,0x0003003e,0x000004df,0x000004de,0x0004003d,0x00000006,0x000004e0,0x000000bf, + 0x0004003d,0x00000006,0x000004e1,0x000000c0,0x00050041,0x00000014,0x000004e2,0x000000c1, + 0x00000172,0x0004003d,0x00000013,0x000004e3,0x000004e2,0x00060041,0x000004c6,0x000004e4, + 0x000004c9,0x000004e0,0x000004e1,0x0003003e,0x000004e4,0x000004e3,0x0004003d,0x00000006, + 0x000004e5,0x000000bf,0x0004003d,0x00000006,0x000004e6,0x000000c0,0x00050041,0x00000014, + 0x000004e7,0x000000c1,0x0000016b,0x0004003d,0x00000013,0x000004e8,0x000004e7,0x00060041, + 0x000004c6,0x000004e9,0x000004ce,0x000004e5,0x000004e6,0x0003003e,0x000004e9,0x000004e8, + 0x0004003d,0x00000006,0x000004ea,0x000000bf,0x0004003d,0x00000006,0x000004eb,0x000000c0, + 0x00050041,0x00000014,0x000004ec,0x000000c1,0x0000016c,0x0004003d,0x00000013,0x000004ed, + 0x000004ec,0x00060041,0x000004c6,0x000004ee,0x000004d3,0x000004ea,0x000004eb,0x0003003e, + 0x000004ee,0x000004ed,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000c4,0x00000000, + 0x00000003,0x000200f8,0x000000c5,0x000300e1,0x0000016b,0x000004ef,0x000400e0,0x0000016b, + 0x0000016b,0x000004f0,0x000100fd,0x00010038,0x00050036,0x0000006e,0x000000ca,0x00000000, + 0x000000c6,0x00030037,0x00000007,0x000000c7,0x00030037,0x00000007,0x000000c8,0x00030037, + 0x00000007,0x000000c9,0x000200f8,0x000000cb,0x0004003b,0x00000007,0x000004f5,0x00000007, + 0x0004003d,0x00000006,0x000004f1,0x000000c8,0x000500aa,0x0000006e,0x000004f2,0x000004f1, + 0x000001bf,0x000300f7,0x000004f4,0x00000000,0x000400fa,0x000004f2,0x000004f3,0x000004f4, + 0x000200f8,0x000004f3,0x0004003d,0x00000006,0x000004f6,0x000000c9,0x0003003e,0x000004f5, + 0x000004f6,0x00050039,0x00000002,0x000004f7,0x0000007a,0x000004f5,0x000200f9,0x000004f4, + 0x000200f8,0x000004f4,0x00040039,0x00000002,0x000004f8,0x000000c4,0x00040039,0x00000006, + 0x000004f9,0x0000007c,0x0004003d,0x00000006,0x000004fa,0x000000c7,0x00050082,0x00000006, + 0x000004fb,0x000004fa,0x00000172,0x000500ab,0x0000006e,0x000004fc,0x000004f9,0x000004fb, + 0x000200fe,0x000004fc,0x00010038,0x00050036,0x0000009f,0x000000ce,0x00000000,0x000000cc, + 0x00030037,0x000000aa,0x000000cd,0x000200f8,0x000000cf,0x0004003b,0x000000aa,0x000004ff, + 0x00000007,0x0004003b,0x000000aa,0x00000501,0x00000007,0x0004003b,0x000000aa,0x00000504, + 0x00000007,0x0004003b,0x000000aa,0x00000507,0x00000007,0x0004003b,0x000000aa,0x0000050a, + 0x00000007,0x0004003b,0x000000aa,0x0000050c,0x00000007,0x0004003b,0x000000aa,0x0000050e, + 0x00000007,0x0004003b,0x000000aa,0x00000510,0x00000007,0x0004003d,0x0000009f,0x00000500, + 0x000000cd,0x0003003e,0x000004ff,0x00000500,0x0004003d,0x0000009f,0x00000502,0x000000cd, + 0x0006016e,0x0000009f,0x00000503,0x0000016c,0x00000502,0x000001bf,0x0003003e,0x00000501, + 0x00000503,0x0004003d,0x0000009f,0x00000505,0x000000cd,0x0006016e,0x0000009f,0x00000506, + 0x0000016c,0x00000505,0x00000172,0x0003003e,0x00000504,0x00000506,0x0004003d,0x0000009f, + 0x00000508,0x000000cd,0x0006016e,0x0000009f,0x00000509,0x0000016c,0x00000508,0x0000016b, + 0x0003003e,0x00000507,0x00000509,0x0004003d,0x0000009f,0x0000050b,0x000004ff,0x0003003e, + 0x0000050a,0x0000050b,0x0004003d,0x0000009f,0x0000050d,0x00000501,0x0003003e,0x0000050c, + 0x0000050d,0x0004003d,0x0000009f,0x0000050f,0x00000504,0x0003003e,0x0000050e,0x0000050f, + 0x0004003d,0x0000009f,0x00000511,0x00000507,0x0003003e,0x00000510,0x00000511,0x00080039, + 0x0000009f,0x00000512,0x000000b0,0x0000050a,0x0000050c,0x0000050e,0x00000510,0x000200fe, + 0x00000512,0x00010038,0x00050036,0x0000009f,0x000000d7,0x00000000,0x000000d1,0x00030037, + 0x000000d0,0x000000d2,0x00030037,0x000000d0,0x000000d3,0x00030037,0x000000d0,0x000000d4, + 0x00030037,0x000000d0,0x000000d5,0x00030037,0x00000007,0x000000d6,0x000200f8,0x000000d8, + 0x0004003b,0x000000aa,0x00000517,0x00000007,0x0004003b,0x00000049,0x0000051a,0x00000007, + 0x0004003b,0x00000007,0x0000051b,0x00000007,0x0004003b,0x000000aa,0x0000051e,0x00000007, + 0x0004003b,0x00000049,0x00000521,0x00000007,0x0004003b,0x00000007,0x00000522,0x00000007, + 0x0004003b,0x000000aa,0x00000525,0x00000007,0x0004003b,0x00000049,0x00000528,0x00000007, + 0x0004003b,0x00000007,0x00000529,0x00000007,0x0004003b,0x000000aa,0x0000052c,0x00000007, + 0x0004003b,0x00000049,0x0000052f,0x00000007,0x0004003b,0x00000007,0x00000530,0x00000007, + 0x0004003b,0x000000aa,0x00000533,0x00000007,0x0004003b,0x000000aa,0x00000535,0x00000007, + 0x0004003b,0x000000aa,0x00000537,0x00000007,0x0004003b,0x000000aa,0x00000539,0x00000007, + 0x0004003d,0x0000002d,0x00000518,0x000000d2,0x0004007c,0x00000032,0x00000519,0x00000518, + 0x0003003e,0x0000051a,0x00000519,0x0004003d,0x00000006,0x0000051c,0x000000d6,0x0003003e, + 0x0000051b,0x0000051c,0x00060039,0x0000009f,0x0000051d,0x000000a8,0x0000051a,0x0000051b, + 0x0003003e,0x00000517,0x0000051d,0x0004003d,0x0000002d,0x0000051f,0x000000d3,0x0004007c, + 0x00000032,0x00000520,0x0000051f,0x0003003e,0x00000521,0x00000520,0x0004003d,0x00000006, + 0x00000523,0x000000d6,0x0003003e,0x00000522,0x00000523,0x00060039,0x0000009f,0x00000524, + 0x000000a8,0x00000521,0x00000522,0x0003003e,0x0000051e,0x00000524,0x0004003d,0x0000002d, + 0x00000526,0x000000d4,0x0004007c,0x00000032,0x00000527,0x00000526,0x0003003e,0x00000528, + 0x00000527,0x0004003d,0x00000006,0x0000052a,0x000000d6,0x0003003e,0x00000529,0x0000052a, + 0x00060039,0x0000009f,0x0000052b,0x000000a8,0x00000528,0x00000529,0x0003003e,0x00000525, + 0x0000052b,0x0004003d,0x0000002d,0x0000052d,0x000000d5,0x0004007c,0x00000032,0x0000052e, + 0x0000052d,0x0003003e,0x0000052f,0x0000052e,0x0004003d,0x00000006,0x00000531,0x000000d6, + 0x0003003e,0x00000530,0x00000531,0x00060039,0x0000009f,0x00000532,0x000000a8,0x0000052f, + 0x00000530,0x0003003e,0x0000052c,0x00000532,0x0004003d,0x0000009f,0x00000534,0x00000517, + 0x0003003e,0x00000533,0x00000534,0x0004003d,0x0000009f,0x00000536,0x0000051e,0x0003003e, + 0x00000535,0x00000536,0x0004003d,0x0000009f,0x00000538,0x00000525,0x0003003e,0x00000537, + 0x00000538,0x0004003d,0x0000009f,0x0000053a,0x0000052c,0x0003003e,0x00000539,0x0000053a, + 0x00080039,0x0000009f,0x0000053b,0x000000b0,0x00000533,0x00000535,0x00000537,0x00000539, + 0x000200fe,0x0000053b,0x00010038,0x00050036,0x0000009f,0x000000dc,0x00000000,0x000000d9, + 0x00030037,0x000000d0,0x000000da,0x00030037,0x00000007,0x000000db,0x000200f8,0x000000dd, + 0x0004003b,0x000000d0,0x0000054a,0x00000007,0x0004003b,0x000000d0,0x0000054b,0x00000007, + 0x0004003b,0x000000d0,0x0000054c,0x00000007,0x0004003b,0x000000d0,0x0000054d,0x00000007, + 0x0004003b,0x00000007,0x0000054e,0x00000007,0x0004003d,0x0000002d,0x0000053e,0x000000da, + 0x00050080,0x0000002d,0x00000540,0x0000053e,0x0000053f,0x0004003d,0x0000002d,0x00000541, + 0x000000da,0x00050080,0x0000002d,0x00000543,0x00000541,0x00000542,0x0004003d,0x0000002d, + 0x00000544,0x000000da,0x00050080,0x0000002d,0x00000546,0x00000544,0x00000545,0x0004003d, + 0x0000002d,0x00000547,0x000000da,0x00050080,0x0000002d,0x00000549,0x00000547,0x00000548, + 0x0003003e,0x0000054a,0x00000540,0x0003003e,0x0000054b,0x00000543,0x0003003e,0x0000054c, + 0x00000546,0x0003003e,0x0000054d,0x00000549,0x0004003d,0x00000006,0x0000054f,0x000000db, + 0x0003003e,0x0000054e,0x0000054f,0x00090039,0x0000009f,0x00000550,0x000000d7,0x0000054a, + 0x0000054b,0x0000054c,0x0000054d,0x0000054e,0x000200fe,0x00000550,0x00010038,0x00050036, + 0x0000009f,0x000000e3,0x00000000,0x000000d1,0x00030037,0x000000d0,0x000000de,0x00030037, + 0x000000d0,0x000000df,0x00030037,0x000000d0,0x000000e0,0x00030037,0x000000d0,0x000000e1, + 0x00030037,0x00000007,0x000000e2,0x000200f8,0x000000e4,0x0004003b,0x000000aa,0x00000553, + 0x00000007,0x0004003b,0x0000005c,0x00000557,0x00000007,0x0004003b,0x00000007,0x00000558, + 0x00000007,0x0004003b,0x000000aa,0x0000055b,0x00000007,0x0004003b,0x0000005c,0x0000055f, + 0x00000007,0x0004003b,0x00000007,0x00000560,0x00000007,0x0004003b,0x000000aa,0x00000563, + 0x00000007,0x0004003b,0x0000005c,0x00000567,0x00000007,0x0004003b,0x00000007,0x00000568, + 0x00000007,0x0004003b,0x000000aa,0x0000056b,0x00000007,0x0004003b,0x0000005c,0x0000056f, + 0x00000007,0x0004003b,0x00000007,0x00000570,0x00000007,0x0004003b,0x000000aa,0x00000573, + 0x00000007,0x0004003b,0x000000aa,0x00000575,0x00000007,0x0004003b,0x000000aa,0x00000577, + 0x00000007,0x0004003b,0x000000aa,0x00000579,0x00000007,0x0004003d,0x0000002d,0x00000554, + 0x000000de,0x0004007c,0x00000032,0x00000555,0x00000554,0x0004006f,0x00000038,0x00000556, + 0x00000555,0x0003003e,0x00000557,0x00000556,0x0004003d,0x00000006,0x00000559,0x000000e2, + 0x0003003e,0x00000558,0x00000559,0x00060039,0x0000009f,0x0000055a,0x000000a3,0x00000557, + 0x00000558,0x0003003e,0x00000553,0x0000055a,0x0004003d,0x0000002d,0x0000055c,0x000000df, + 0x0004007c,0x00000032,0x0000055d,0x0000055c,0x0004006f,0x00000038,0x0000055e,0x0000055d, + 0x0003003e,0x0000055f,0x0000055e,0x0004003d,0x00000006,0x00000561,0x000000e2,0x0003003e, + 0x00000560,0x00000561,0x00060039,0x0000009f,0x00000562,0x000000a3,0x0000055f,0x00000560, + 0x0003003e,0x0000055b,0x00000562,0x0004003d,0x0000002d,0x00000564,0x000000e0,0x0004007c, + 0x00000032,0x00000565,0x00000564,0x0004006f,0x00000038,0x00000566,0x00000565,0x0003003e, + 0x00000567,0x00000566,0x0004003d,0x00000006,0x00000569,0x000000e2,0x0003003e,0x00000568, + 0x00000569,0x00060039,0x0000009f,0x0000056a,0x000000a3,0x00000567,0x00000568,0x0003003e, + 0x00000563,0x0000056a,0x0004003d,0x0000002d,0x0000056c,0x000000e1,0x0004007c,0x00000032, + 0x0000056d,0x0000056c,0x0004006f,0x00000038,0x0000056e,0x0000056d,0x0003003e,0x0000056f, + 0x0000056e,0x0004003d,0x00000006,0x00000571,0x000000e2,0x0003003e,0x00000570,0x00000571, + 0x00060039,0x0000009f,0x00000572,0x000000a3,0x0000056f,0x00000570,0x0003003e,0x0000056b, + 0x00000572,0x0004003d,0x0000009f,0x00000574,0x00000553,0x0003003e,0x00000573,0x00000574, + 0x0004003d,0x0000009f,0x00000576,0x0000055b,0x0003003e,0x00000575,0x00000576,0x0004003d, + 0x0000009f,0x00000578,0x00000563,0x0003003e,0x00000577,0x00000578,0x0004003d,0x0000009f, + 0x0000057a,0x0000056b,0x0003003e,0x00000579,0x0000057a,0x00080039,0x0000009f,0x0000057b, + 0x000000b0,0x00000573,0x00000575,0x00000577,0x00000579,0x000200fe,0x0000057b,0x00010038, + 0x00050036,0x0000009f,0x000000e7,0x00000000,0x000000d9,0x00030037,0x000000d0,0x000000e5, + 0x00030037,0x00000007,0x000000e6,0x000200f8,0x000000e8,0x0004003b,0x000000d0,0x00000586, + 0x00000007,0x0004003b,0x000000d0,0x00000587,0x00000007,0x0004003b,0x000000d0,0x00000588, + 0x00000007,0x0004003b,0x000000d0,0x00000589,0x00000007,0x0004003b,0x00000007,0x0000058a, + 0x00000007,0x0004003d,0x0000002d,0x0000057e,0x000000e5,0x00050080,0x0000002d,0x0000057f, + 0x0000057e,0x0000053f,0x0004003d,0x0000002d,0x00000580,0x000000e5,0x00050080,0x0000002d, + 0x00000581,0x00000580,0x00000542,0x0004003d,0x0000002d,0x00000582,0x000000e5,0x00050080, + 0x0000002d,0x00000583,0x00000582,0x00000545,0x0004003d,0x0000002d,0x00000584,0x000000e5, + 0x00050080,0x0000002d,0x00000585,0x00000584,0x00000548,0x0003003e,0x00000586,0x0000057f, + 0x0003003e,0x00000587,0x00000581,0x0003003e,0x00000588,0x00000583,0x0003003e,0x00000589, + 0x00000585,0x0004003d,0x00000006,0x0000058b,0x000000e6,0x0003003e,0x0000058a,0x0000058b, + 0x00090039,0x0000009f,0x0000058c,0x000000e3,0x00000586,0x00000587,0x00000588,0x00000589, + 0x0000058a,0x000200fe,0x0000058c,0x00010038,0x00050036,0x00000002,0x000000f0,0x00000000, + 0x000000e9,0x00030037,0x00000007,0x000000ea,0x00030037,0x00000007,0x000000eb,0x00030037, + 0x000000d0,0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007,0x000000ee, + 0x00030037,0x00000007,0x000000ef,0x000200f8,0x000000f1,0x0004003b,0x00000049,0x0000058f, + 0x00000007,0x0004003b,0x00000049,0x0000059d,0x00000007,0x0004003b,0x000005aa,0x000005ab, + 0x00000007,0x0004003b,0x000000d0,0x000005ae,0x00000007,0x0004003b,0x00000007,0x000005af, + 0x00000007,0x0004003b,0x00000049,0x000005b3,0x00000007,0x0004003b,0x000000aa,0x000005b5, + 0x00000007,0x0004003b,0x00000007,0x000005b8,0x00000007,0x0004003b,0x00000007,0x000005b9, + 0x00000007,0x0004003b,0x000000d0,0x000005d6,0x00000007,0x0004003b,0x00000007,0x000005d7, + 0x00000007,0x0004003b,0x00000049,0x000005db,0x00000007,0x0004003b,0x000000aa,0x000005dd, + 0x00000007,0x0004003b,0x00000007,0x000005e0,0x00000007,0x0004003b,0x00000007,0x000005e1, + 0x00000007,0x0004003b,0x000000d0,0x000005fe,0x00000007,0x0004003b,0x00000007,0x000005ff, + 0x00000007,0x0004003b,0x00000049,0x00000603,0x00000007,0x0004003b,0x000000aa,0x00000605, + 0x00000007,0x0004003b,0x00000007,0x00000608,0x00000007,0x0004003b,0x00000007,0x00000609, + 0x00000007,0x0004003b,0x000000d0,0x00000628,0x00000007,0x0004003b,0x00000007,0x00000629, + 0x00000007,0x0004003b,0x00000049,0x0000062d,0x00000007,0x0004003b,0x000000aa,0x0000062f, + 0x00000007,0x0004003b,0x00000007,0x00000632,0x00000007,0x0004003b,0x00000007,0x00000633, + 0x00000007,0x0004003b,0x000000aa,0x0000063b,0x00000007,0x0004003b,0x000000aa,0x00000640, + 0x00000007,0x0004003b,0x000000aa,0x00000645,0x00000007,0x0004003b,0x000000aa,0x0000064a, + 0x00000007,0x0004003b,0x00000049,0x00000660,0x00000007,0x0004003b,0x000000aa,0x00000661, + 0x00000007,0x0004003b,0x00000007,0x00000664,0x00000007,0x0004003b,0x00000007,0x00000665, + 0x00000007,0x0004003b,0x00000007,0x0000066c,0x00000007,0x0004003b,0x00000007,0x0000066d, + 0x00000007,0x0004003b,0x000000aa,0x0000066e,0x00000007,0x0004003b,0x00000049,0x00000680, + 0x00000007,0x0004003b,0x000000aa,0x00000681,0x00000007,0x0004003b,0x00000007,0x00000684, + 0x00000007,0x0004003b,0x00000007,0x00000685,0x00000007,0x0004003b,0x00000007,0x0000068d, + 0x00000007,0x0004003b,0x00000007,0x0000068e,0x00000007,0x0004003b,0x000000aa,0x0000068f, + 0x00000007,0x0004003b,0x00000049,0x000006a0,0x00000007,0x0004003b,0x000000aa,0x000006a1, + 0x00000007,0x0004003b,0x00000007,0x000006a4,0x00000007,0x0004003b,0x00000007,0x000006a5, + 0x00000007,0x0004003b,0x00000007,0x000006ad,0x00000007,0x0004003b,0x00000007,0x000006ae, + 0x00000007,0x0004003b,0x000000aa,0x000006af,0x00000007,0x0004003b,0x00000049,0x000006c1, + 0x00000007,0x0004003b,0x000000aa,0x000006c2,0x00000007,0x0004003b,0x00000007,0x000006c5, + 0x00000007,0x0004003b,0x00000007,0x000006c6,0x00000007,0x0004003b,0x00000007,0x000006cf, + 0x00000007,0x0004003b,0x00000007,0x000006d0,0x00000007,0x0004003b,0x000000aa,0x000006d1, + 0x00000007,0x0004003d,0x0000002d,0x00000590,0x000000ec,0x00050050,0x0000002d,0x00000592, + 0x00000591,0x00000591,0x00050084,0x0000002d,0x00000593,0x00000590,0x00000592,0x0004007c, + 0x00000032,0x00000594,0x00000593,0x0004003d,0x00000006,0x00000595,0x000000ea,0x00050084, + 0x00000006,0x00000596,0x00000595,0x0000016b,0x0004007c,0x0000001a,0x00000597,0x00000596, + 0x0004003d,0x00000006,0x00000598,0x000000eb,0x00050084,0x00000006,0x00000599,0x00000598, + 0x0000016b,0x0004007c,0x0000001a,0x0000059a,0x00000599,0x00050050,0x00000032,0x0000059b, + 0x00000597,0x0000059a,0x00050080,0x00000032,0x0000059c,0x00000594,0x0000059b,0x0003003e, + 0x0000058f,0x0000059c,0x0004003d,0x0000002d,0x0000059e,0x000000ec,0x00050050,0x0000002d, + 0x000005a0,0x0000059f,0x0000059f,0x00050084,0x0000002d,0x000005a1,0x0000059e,0x000005a0, + 0x0004007c,0x00000032,0x000005a2,0x000005a1,0x0004003d,0x00000006,0x000005a3,0x000000ea, + 0x0004007c,0x0000001a,0x000005a4,0x000005a3,0x0004003d,0x00000006,0x000005a5,0x000000eb, + 0x0004007c,0x0000001a,0x000005a6,0x000005a5,0x00050050,0x00000032,0x000005a7,0x000005a4, + 0x000005a6,0x00050080,0x00000032,0x000005a8,0x000005a2,0x000005a7,0x0003003e,0x0000059d, + 0x000005a8,0x0004003d,0x00000032,0x000005ac,0x0000058f,0x0004007c,0x0000002d,0x000005ad, + 0x000005ac,0x0003003e,0x000005ae,0x000005ad,0x0004003d,0x00000006,0x000005b0,0x000000ef, + 0x0003003e,0x000005af,0x000005b0,0x00060039,0x0000009f,0x000005b1,0x000000e7,0x000005ae, + 0x000005af,0x00050041,0x000000aa,0x000005b2,0x000005ab,0x0000014c,0x0003003e,0x000005b2, + 0x000005b1,0x0004003d,0x00000032,0x000005b4,0x0000059d,0x0003003e,0x000005b3,0x000005b4, + 0x00050041,0x000000aa,0x000005b6,0x000005ab,0x0000014c,0x0004003d,0x0000009f,0x000005b7, + 0x000005b6,0x0003003e,0x000005b5,0x000005b7,0x0003003e,0x000005b8,0x000001bf,0x0004003d, + 0x00000006,0x000005ba,0x000000ef,0x0003003e,0x000005b9,0x000005ba,0x00080039,0x00000002, + 0x000005bb,0x000000b7,0x000005b3,0x000005b5,0x000005b8,0x000005b9,0x0004003d,0x0000002d, + 0x000005bc,0x000000ec,0x00050050,0x0000002d,0x000005bd,0x00000591,0x00000591,0x00050084, + 0x0000002d,0x000005be,0x000005bc,0x000005bd,0x0004007c,0x00000032,0x000005bf,0x000005be, + 0x0004003d,0x00000006,0x000005c0,0x000000ea,0x00050084,0x00000006,0x000005c1,0x000005c0, + 0x0000016b,0x00050080,0x00000006,0x000005c2,0x000005c1,0x0000059f,0x0004007c,0x0000001a, + 0x000005c3,0x000005c2,0x0004003d,0x00000006,0x000005c4,0x000000eb,0x00050084,0x00000006, + 0x000005c5,0x000005c4,0x0000016b,0x0004007c,0x0000001a,0x000005c6,0x000005c5,0x00050050, + 0x00000032,0x000005c7,0x000005c3,0x000005c6,0x00050080,0x00000032,0x000005c8,0x000005bf, + 0x000005c7,0x0003003e,0x0000058f,0x000005c8,0x0004003d,0x0000002d,0x000005c9,0x000000ec, + 0x00050050,0x0000002d,0x000005ca,0x0000059f,0x0000059f,0x00050084,0x0000002d,0x000005cb, + 0x000005c9,0x000005ca,0x0004007c,0x00000032,0x000005cc,0x000005cb,0x0004003d,0x00000006, + 0x000005cd,0x000000ea,0x00050080,0x00000006,0x000005ce,0x000005cd,0x000004bf,0x0004007c, + 0x0000001a,0x000005cf,0x000005ce,0x0004003d,0x00000006,0x000005d0,0x000000eb,0x0004007c, + 0x0000001a,0x000005d1,0x000005d0,0x00050050,0x00000032,0x000005d2,0x000005cf,0x000005d1, + 0x00050080,0x00000032,0x000005d3,0x000005cc,0x000005d2,0x0003003e,0x0000059d,0x000005d3, + 0x0004003d,0x00000032,0x000005d4,0x0000058f,0x0004007c,0x0000002d,0x000005d5,0x000005d4, + 0x0003003e,0x000005d6,0x000005d5,0x0004003d,0x00000006,0x000005d8,0x000000ef,0x0003003e, + 0x000005d7,0x000005d8,0x00060039,0x0000009f,0x000005d9,0x000000e7,0x000005d6,0x000005d7, + 0x00050041,0x000000aa,0x000005da,0x000005ab,0x00000191,0x0003003e,0x000005da,0x000005d9, + 0x0004003d,0x00000032,0x000005dc,0x0000059d,0x0003003e,0x000005db,0x000005dc,0x00050041, + 0x000000aa,0x000005de,0x000005ab,0x00000191,0x0004003d,0x0000009f,0x000005df,0x000005de, + 0x0003003e,0x000005dd,0x000005df,0x0003003e,0x000005e0,0x000001bf,0x0004003d,0x00000006, + 0x000005e2,0x000000ef,0x0003003e,0x000005e1,0x000005e2,0x00080039,0x00000002,0x000005e3, + 0x000000b7,0x000005db,0x000005dd,0x000005e0,0x000005e1,0x0004003d,0x0000002d,0x000005e4, + 0x000000ec,0x00050050,0x0000002d,0x000005e5,0x00000591,0x00000591,0x00050084,0x0000002d, + 0x000005e6,0x000005e4,0x000005e5,0x0004007c,0x00000032,0x000005e7,0x000005e6,0x0004003d, + 0x00000006,0x000005e8,0x000000ea,0x00050084,0x00000006,0x000005e9,0x000005e8,0x0000016b, + 0x0004007c,0x0000001a,0x000005ea,0x000005e9,0x0004003d,0x00000006,0x000005eb,0x000000eb, + 0x00050084,0x00000006,0x000005ec,0x000005eb,0x0000016b,0x00050080,0x00000006,0x000005ed, + 0x000005ec,0x0000059f,0x0004007c,0x0000001a,0x000005ee,0x000005ed,0x00050050,0x00000032, + 0x000005ef,0x000005ea,0x000005ee,0x00050080,0x00000032,0x000005f0,0x000005e7,0x000005ef, + 0x0003003e,0x0000058f,0x000005f0,0x0004003d,0x0000002d,0x000005f1,0x000000ec,0x00050050, + 0x0000002d,0x000005f2,0x0000059f,0x0000059f,0x00050084,0x0000002d,0x000005f3,0x000005f1, + 0x000005f2,0x0004007c,0x00000032,0x000005f4,0x000005f3,0x0004003d,0x00000006,0x000005f5, + 0x000000ea,0x0004007c,0x0000001a,0x000005f6,0x000005f5,0x0004003d,0x00000006,0x000005f7, + 0x000000eb,0x00050080,0x00000006,0x000005f8,0x000005f7,0x000004bf,0x0004007c,0x0000001a, + 0x000005f9,0x000005f8,0x00050050,0x00000032,0x000005fa,0x000005f6,0x000005f9,0x00050080, + 0x00000032,0x000005fb,0x000005f4,0x000005fa,0x0003003e,0x0000059d,0x000005fb,0x0004003d, + 0x00000032,0x000005fc,0x0000058f,0x0004007c,0x0000002d,0x000005fd,0x000005fc,0x0003003e, + 0x000005fe,0x000005fd,0x0004003d,0x00000006,0x00000600,0x000000ef,0x0003003e,0x000005ff, + 0x00000600,0x00060039,0x0000009f,0x00000601,0x000000e7,0x000005fe,0x000005ff,0x00050041, + 0x000000aa,0x00000602,0x000005ab,0x000001b3,0x0003003e,0x00000602,0x00000601,0x0004003d, + 0x00000032,0x00000604,0x0000059d,0x0003003e,0x00000603,0x00000604,0x00050041,0x000000aa, + 0x00000606,0x000005ab,0x000001b3,0x0004003d,0x0000009f,0x00000607,0x00000606,0x0003003e, + 0x00000605,0x00000607,0x0003003e,0x00000608,0x000001bf,0x0004003d,0x00000006,0x0000060a, + 0x000000ef,0x0003003e,0x00000609,0x0000060a,0x00080039,0x00000002,0x0000060b,0x000000b7, + 0x00000603,0x00000605,0x00000608,0x00000609,0x0004003d,0x0000002d,0x0000060c,0x000000ec, + 0x00050050,0x0000002d,0x0000060d,0x00000591,0x00000591,0x00050084,0x0000002d,0x0000060e, + 0x0000060c,0x0000060d,0x0004007c,0x00000032,0x0000060f,0x0000060e,0x0004003d,0x00000006, + 0x00000610,0x000000ea,0x00050084,0x00000006,0x00000611,0x00000610,0x0000016b,0x00050080, + 0x00000006,0x00000612,0x00000611,0x0000059f,0x0004007c,0x0000001a,0x00000613,0x00000612, + 0x0004003d,0x00000006,0x00000614,0x000000eb,0x00050084,0x00000006,0x00000615,0x00000614, + 0x0000016b,0x00050080,0x00000006,0x00000616,0x00000615,0x0000059f,0x0004007c,0x0000001a, + 0x00000617,0x00000616,0x00050050,0x00000032,0x00000618,0x00000613,0x00000617,0x00050080, + 0x00000032,0x00000619,0x0000060f,0x00000618,0x0003003e,0x0000058f,0x00000619,0x0004003d, + 0x0000002d,0x0000061a,0x000000ec,0x00050050,0x0000002d,0x0000061b,0x0000059f,0x0000059f, + 0x00050084,0x0000002d,0x0000061c,0x0000061a,0x0000061b,0x0004007c,0x00000032,0x0000061d, + 0x0000061c,0x0004003d,0x00000006,0x0000061e,0x000000ea,0x00050080,0x00000006,0x0000061f, + 0x0000061e,0x000004bf,0x0004007c,0x0000001a,0x00000620,0x0000061f,0x0004003d,0x00000006, + 0x00000621,0x000000eb,0x00050080,0x00000006,0x00000622,0x00000621,0x000004bf,0x0004007c, + 0x0000001a,0x00000623,0x00000622,0x00050050,0x00000032,0x00000624,0x00000620,0x00000623, + 0x00050080,0x00000032,0x00000625,0x0000061d,0x00000624,0x0003003e,0x0000059d,0x00000625, + 0x0004003d,0x00000032,0x00000626,0x0000058f,0x0004007c,0x0000002d,0x00000627,0x00000626, + 0x0003003e,0x00000628,0x00000627,0x0004003d,0x00000006,0x0000062a,0x000000ef,0x0003003e, + 0x00000629,0x0000062a,0x00060039,0x0000009f,0x0000062b,0x000000e7,0x00000628,0x00000629, + 0x00050041,0x000000aa,0x0000062c,0x000005ab,0x000002ba,0x0003003e,0x0000062c,0x0000062b, + 0x0004003d,0x00000032,0x0000062e,0x0000059d,0x0003003e,0x0000062d,0x0000062e,0x00050041, + 0x000000aa,0x00000630,0x000005ab,0x000002ba,0x0004003d,0x0000009f,0x00000631,0x00000630, + 0x0003003e,0x0000062f,0x00000631,0x0003003e,0x00000632,0x000001bf,0x0004003d,0x00000006, + 0x00000634,0x000000ef,0x0003003e,0x00000633,0x00000634,0x00080039,0x00000002,0x00000635, + 0x000000b7,0x0000062d,0x0000062f,0x00000632,0x00000633,0x0004003d,0x00000006,0x00000636, + 0x000000ee,0x000500b2,0x0000006e,0x00000637,0x00000636,0x00000172,0x000300f7,0x00000639, + 0x00000000,0x000400fa,0x00000637,0x00000638,0x00000639,0x000200f8,0x00000638,0x000100fd, + 0x000200f8,0x00000639,0x00050041,0x000000aa,0x0000063c,0x000005ab,0x0000014c,0x0004003d, + 0x0000009f,0x0000063d,0x0000063c,0x0003003e,0x0000063b,0x0000063d,0x00050039,0x0000009f, + 0x0000063e,0x000000ce,0x0000063b,0x00050041,0x000000aa,0x0000063f,0x000005ab,0x0000014c, + 0x0003003e,0x0000063f,0x0000063e,0x00050041,0x000000aa,0x00000641,0x000005ab,0x00000191, + 0x0004003d,0x0000009f,0x00000642,0x00000641,0x0003003e,0x00000640,0x00000642,0x00050039, + 0x0000009f,0x00000643,0x000000ce,0x00000640,0x00050041,0x000000aa,0x00000644,0x000005ab, + 0x00000191,0x0003003e,0x00000644,0x00000643,0x00050041,0x000000aa,0x00000646,0x000005ab, + 0x000001b3,0x0004003d,0x0000009f,0x00000647,0x00000646,0x0003003e,0x00000645,0x00000647, + 0x00050039,0x0000009f,0x00000648,0x000000ce,0x00000645,0x00050041,0x000000aa,0x00000649, + 0x000005ab,0x000001b3,0x0003003e,0x00000649,0x00000648,0x00050041,0x000000aa,0x0000064b, + 0x000005ab,0x000002ba,0x0004003d,0x0000009f,0x0000064c,0x0000064b,0x0003003e,0x0000064a, + 0x0000064c,0x00050039,0x0000009f,0x0000064d,0x000000ce,0x0000064a,0x00050041,0x000000aa, + 0x0000064e,0x000005ab,0x000002ba,0x0003003e,0x0000064e,0x0000064d,0x0004003d,0x00000006, + 0x0000064f,0x000000ed,0x00050089,0x00000006,0x00000650,0x0000064f,0x0000020b,0x000500aa, + 0x0000006e,0x00000651,0x00000650,0x000001bf,0x000300f7,0x00000653,0x00000000,0x000400fa, + 0x00000651,0x00000652,0x00000653,0x000200f8,0x00000652,0x0004003d,0x0000002d,0x00000654, + 0x000000ec,0x00050050,0x0000002d,0x00000655,0x000004bf,0x000004bf,0x00050084,0x0000002d, + 0x00000656,0x00000654,0x00000655,0x0004007c,0x00000032,0x00000657,0x00000656,0x0004003d, + 0x00000006,0x00000658,0x000000ea,0x00050086,0x00000006,0x00000659,0x00000658,0x0000016b, + 0x0004007c,0x0000001a,0x0000065a,0x00000659,0x0004003d,0x00000006,0x0000065b,0x000000eb, + 0x00050086,0x00000006,0x0000065c,0x0000065b,0x0000016b,0x0004007c,0x0000001a,0x0000065d, + 0x0000065c,0x00050050,0x00000032,0x0000065e,0x0000065a,0x0000065d,0x00050080,0x00000032, + 0x0000065f,0x00000657,0x0000065e,0x0003003e,0x00000660,0x0000065f,0x00050041,0x000000aa, + 0x00000662,0x000005ab,0x0000014c,0x0004003d,0x0000009f,0x00000663,0x00000662,0x0003003e, + 0x00000661,0x00000663,0x0003003e,0x00000664,0x00000172,0x0004003d,0x00000006,0x00000666, + 0x000000ef,0x0003003e,0x00000665,0x00000666,0x00080039,0x00000002,0x00000667,0x000000b7, + 0x00000660,0x00000661,0x00000664,0x00000665,0x0004003d,0x00000006,0x00000668,0x000000ea, + 0x00050086,0x00000006,0x00000669,0x00000668,0x0000016b,0x0004003d,0x00000006,0x0000066a, + 0x000000eb,0x00050086,0x00000006,0x0000066b,0x0000066a,0x0000016b,0x0003003e,0x0000066c, + 0x00000669,0x0003003e,0x0000066d,0x0000066b,0x00050041,0x000000aa,0x0000066f,0x000005ab, + 0x0000014c,0x0004003d,0x0000009f,0x00000670,0x0000066f,0x0003003e,0x0000066e,0x00000670, + 0x00070039,0x00000002,0x00000671,0x000000c2,0x0000066c,0x0000066d,0x0000066e,0x0004003d, + 0x0000002d,0x00000672,0x000000ec,0x00050050,0x0000002d,0x00000673,0x000004bf,0x000004bf, + 0x00050084,0x0000002d,0x00000674,0x00000672,0x00000673,0x0004007c,0x00000032,0x00000675, + 0x00000674,0x0004003d,0x00000006,0x00000676,0x000000ea,0x00050086,0x00000006,0x00000677, + 0x00000676,0x0000016b,0x00050080,0x00000006,0x00000679,0x00000677,0x00000678,0x0004007c, + 0x0000001a,0x0000067a,0x00000679,0x0004003d,0x00000006,0x0000067b,0x000000eb,0x00050086, + 0x00000006,0x0000067c,0x0000067b,0x0000016b,0x0004007c,0x0000001a,0x0000067d,0x0000067c, + 0x00050050,0x00000032,0x0000067e,0x0000067a,0x0000067d,0x00050080,0x00000032,0x0000067f, + 0x00000675,0x0000067e,0x0003003e,0x00000680,0x0000067f,0x00050041,0x000000aa,0x00000682, + 0x000005ab,0x00000191,0x0004003d,0x0000009f,0x00000683,0x00000682,0x0003003e,0x00000681, + 0x00000683,0x0003003e,0x00000684,0x00000172,0x0004003d,0x00000006,0x00000686,0x000000ef, + 0x0003003e,0x00000685,0x00000686,0x00080039,0x00000002,0x00000687,0x000000b7,0x00000680, + 0x00000681,0x00000684,0x00000685,0x0004003d,0x00000006,0x00000688,0x000000ea,0x00050086, + 0x00000006,0x00000689,0x00000688,0x0000016b,0x00050080,0x00000006,0x0000068a,0x00000689, + 0x00000678,0x0004003d,0x00000006,0x0000068b,0x000000eb,0x00050086,0x00000006,0x0000068c, + 0x0000068b,0x0000016b,0x0003003e,0x0000068d,0x0000068a,0x0003003e,0x0000068e,0x0000068c, + 0x00050041,0x000000aa,0x00000690,0x000005ab,0x00000191,0x0004003d,0x0000009f,0x00000691, + 0x00000690,0x0003003e,0x0000068f,0x00000691,0x00070039,0x00000002,0x00000692,0x000000c2, + 0x0000068d,0x0000068e,0x0000068f,0x0004003d,0x0000002d,0x00000693,0x000000ec,0x00050050, + 0x0000002d,0x00000694,0x000004bf,0x000004bf,0x00050084,0x0000002d,0x00000695,0x00000693, + 0x00000694,0x0004007c,0x00000032,0x00000696,0x00000695,0x0004003d,0x00000006,0x00000697, + 0x000000ea,0x00050086,0x00000006,0x00000698,0x00000697,0x0000016b,0x0004007c,0x0000001a, + 0x00000699,0x00000698,0x0004003d,0x00000006,0x0000069a,0x000000eb,0x00050086,0x00000006, + 0x0000069b,0x0000069a,0x0000016b,0x00050080,0x00000006,0x0000069c,0x0000069b,0x00000678, + 0x0004007c,0x0000001a,0x0000069d,0x0000069c,0x00050050,0x00000032,0x0000069e,0x00000699, + 0x0000069d,0x00050080,0x00000032,0x0000069f,0x00000696,0x0000069e,0x0003003e,0x000006a0, + 0x0000069f,0x00050041,0x000000aa,0x000006a2,0x000005ab,0x000001b3,0x0004003d,0x0000009f, + 0x000006a3,0x000006a2,0x0003003e,0x000006a1,0x000006a3,0x0003003e,0x000006a4,0x00000172, + 0x0004003d,0x00000006,0x000006a6,0x000000ef,0x0003003e,0x000006a5,0x000006a6,0x00080039, + 0x00000002,0x000006a7,0x000000b7,0x000006a0,0x000006a1,0x000006a4,0x000006a5,0x0004003d, + 0x00000006,0x000006a8,0x000000ea,0x00050086,0x00000006,0x000006a9,0x000006a8,0x0000016b, + 0x0004003d,0x00000006,0x000006aa,0x000000eb,0x00050086,0x00000006,0x000006ab,0x000006aa, + 0x0000016b,0x00050080,0x00000006,0x000006ac,0x000006ab,0x00000678,0x0003003e,0x000006ad, + 0x000006a9,0x0003003e,0x000006ae,0x000006ac,0x00050041,0x000000aa,0x000006b0,0x000005ab, + 0x000001b3,0x0004003d,0x0000009f,0x000006b1,0x000006b0,0x0003003e,0x000006af,0x000006b1, + 0x00070039,0x00000002,0x000006b2,0x000000c2,0x000006ad,0x000006ae,0x000006af,0x0004003d, + 0x0000002d,0x000006b3,0x000000ec,0x00050050,0x0000002d,0x000006b4,0x000004bf,0x000004bf, + 0x00050084,0x0000002d,0x000006b5,0x000006b3,0x000006b4,0x0004007c,0x00000032,0x000006b6, + 0x000006b5,0x0004003d,0x00000006,0x000006b7,0x000000ea,0x00050086,0x00000006,0x000006b8, + 0x000006b7,0x0000016b,0x00050080,0x00000006,0x000006b9,0x000006b8,0x00000678,0x0004007c, + 0x0000001a,0x000006ba,0x000006b9,0x0004003d,0x00000006,0x000006bb,0x000000eb,0x00050086, + 0x00000006,0x000006bc,0x000006bb,0x0000016b,0x00050080,0x00000006,0x000006bd,0x000006bc, + 0x00000678,0x0004007c,0x0000001a,0x000006be,0x000006bd,0x00050050,0x00000032,0x000006bf, + 0x000006ba,0x000006be,0x00050080,0x00000032,0x000006c0,0x000006b6,0x000006bf,0x0003003e, + 0x000006c1,0x000006c0,0x00050041,0x000000aa,0x000006c3,0x000005ab,0x000002ba,0x0004003d, + 0x0000009f,0x000006c4,0x000006c3,0x0003003e,0x000006c2,0x000006c4,0x0003003e,0x000006c5, + 0x00000172,0x0004003d,0x00000006,0x000006c7,0x000000ef,0x0003003e,0x000006c6,0x000006c7, + 0x00080039,0x00000002,0x000006c8,0x000000b7,0x000006c1,0x000006c2,0x000006c5,0x000006c6, + 0x0004003d,0x00000006,0x000006c9,0x000000ea,0x00050086,0x00000006,0x000006ca,0x000006c9, + 0x0000016b,0x00050080,0x00000006,0x000006cb,0x000006ca,0x00000678,0x0004003d,0x00000006, + 0x000006cc,0x000000eb,0x00050086,0x00000006,0x000006cd,0x000006cc,0x0000016b,0x00050080, + 0x00000006,0x000006ce,0x000006cd,0x00000678,0x0003003e,0x000006cf,0x000006cb,0x0003003e, + 0x000006d0,0x000006ce,0x00050041,0x000000aa,0x000006d2,0x000005ab,0x000002ba,0x0004003d, + 0x0000009f,0x000006d3,0x000006d2,0x0003003e,0x000006d1,0x000006d3,0x00070039,0x00000002, + 0x000006d4,0x000000c2,0x000006cf,0x000006d0,0x000006d1,0x000200f9,0x00000653,0x000200f8, + 0x00000653,0x000100fd,0x00010038,0x00050036,0x00000002,0x000000f8,0x00000000,0x000000e9, + 0x00030037,0x00000007,0x000000f2,0x00030037,0x00000007,0x000000f3,0x00030037,0x000000d0, + 0x000000f4,0x00030037,0x00000007,0x000000f5,0x00030037,0x00000007,0x000000f6,0x00030037, + 0x00000007,0x000000f7,0x000200f8,0x000000f9,0x0004003b,0x00000007,0x000006d5,0x00000007, + 0x0004003b,0x00000007,0x000006d7,0x00000007,0x0004003b,0x000000d0,0x000006d9,0x00000007, + 0x0004003b,0x00000007,0x000006db,0x00000007,0x0004003b,0x00000007,0x000006dd,0x00000007, + 0x0004003b,0x00000007,0x000006df,0x00000007,0x0004003d,0x00000006,0x000006d6,0x000000f2, + 0x0003003e,0x000006d5,0x000006d6,0x0004003d,0x00000006,0x000006d8,0x000000f3,0x0003003e, + 0x000006d7,0x000006d8,0x0004003d,0x0000002d,0x000006da,0x000000f4,0x0003003e,0x000006d9, + 0x000006da,0x0004003d,0x00000006,0x000006dc,0x000000f5,0x0003003e,0x000006db,0x000006dc, + 0x0004003d,0x00000006,0x000006de,0x000000f6,0x0003003e,0x000006dd,0x000006de,0x0004003d, + 0x00000006,0x000006e0,0x000000f7,0x0003003e,0x000006df,0x000006e0,0x000a0039,0x00000002, + 0x000006e1,0x000000f0,0x000006d5,0x000006d7,0x000006d9,0x000006db,0x000006dd,0x000006df, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000100,0x00000000,0x000000e9,0x00030037, + 0x00000007,0x000000fa,0x00030037,0x00000007,0x000000fb,0x00030037,0x000000d0,0x000000fc, + 0x00030037,0x00000007,0x000000fd,0x00030037,0x00000007,0x000000fe,0x00030037,0x00000007, + 0x000000ff,0x000200f8,0x00000101,0x0004003b,0x000000aa,0x000006e2,0x00000007,0x0004003b, + 0x00000007,0x000006e3,0x00000007,0x0004003b,0x00000007,0x000006e5,0x00000007,0x0004003b, + 0x000000aa,0x000006e8,0x00000007,0x0004003b,0x00000049,0x000006fc,0x00000007,0x0004003b, + 0x000000aa,0x000006fd,0x00000007,0x0004003b,0x00000007,0x000006ff,0x00000007,0x0004003b, + 0x00000007,0x00000701,0x00000007,0x0004003b,0x00000007,0x00000709,0x00000007,0x0004003b, + 0x00000007,0x0000070a,0x00000007,0x0004003b,0x000000aa,0x0000070c,0x00000007,0x0004003d, + 0x00000006,0x000006e4,0x000000fa,0x0003003e,0x000006e3,0x000006e4,0x0004003d,0x00000006, + 0x000006e6,0x000000fb,0x0003003e,0x000006e5,0x000006e6,0x00060039,0x0000009f,0x000006e7, + 0x000000bc,0x000006e3,0x000006e5,0x0003003e,0x000006e2,0x000006e7,0x0004003d,0x0000009f, + 0x000006e9,0x000006e2,0x0003003e,0x000006e8,0x000006e9,0x00050039,0x0000009f,0x000006ea, + 0x000000ce,0x000006e8,0x0003003e,0x000006e2,0x000006ea,0x0004003d,0x00000006,0x000006eb, + 0x000000fd,0x00050089,0x00000006,0x000006ec,0x000006eb,0x0000020b,0x000500aa,0x0000006e, + 0x000006ed,0x000006ec,0x000001bf,0x000300f7,0x000006ef,0x00000000,0x000400fa,0x000006ed, + 0x000006ee,0x000006ef,0x000200f8,0x000006ee,0x0004003d,0x0000002d,0x000006f0,0x000000fc, + 0x00050050,0x0000002d,0x000006f1,0x00000678,0x00000678,0x00050084,0x0000002d,0x000006f2, + 0x000006f0,0x000006f1,0x0004007c,0x00000032,0x000006f3,0x000006f2,0x0004003d,0x00000006, + 0x000006f4,0x000000fa,0x00050086,0x00000006,0x000006f5,0x000006f4,0x0000016b,0x0004007c, + 0x0000001a,0x000006f6,0x000006f5,0x0004003d,0x00000006,0x000006f7,0x000000fb,0x00050086, + 0x00000006,0x000006f8,0x000006f7,0x0000016b,0x0004007c,0x0000001a,0x000006f9,0x000006f8, + 0x00050050,0x00000032,0x000006fa,0x000006f6,0x000006f9,0x00050080,0x00000032,0x000006fb, + 0x000006f3,0x000006fa,0x0003003e,0x000006fc,0x000006fb,0x0004003d,0x0000009f,0x000006fe, + 0x000006e2,0x0003003e,0x000006fd,0x000006fe,0x0004003d,0x00000006,0x00000700,0x000000fe, + 0x0003003e,0x000006ff,0x00000700,0x0004003d,0x00000006,0x00000702,0x000000ff,0x0003003e, + 0x00000701,0x00000702,0x00080039,0x00000002,0x00000703,0x000000b7,0x000006fc,0x000006fd, + 0x000006ff,0x00000701,0x0004003d,0x00000006,0x00000704,0x000000fa,0x0004003d,0x00000006, + 0x00000705,0x000000fb,0x00050086,0x00000006,0x00000706,0x00000705,0x0000016b,0x00050089, + 0x00000006,0x00000707,0x00000706,0x0000016b,0x00050080,0x00000006,0x00000708,0x00000704, + 0x00000707,0x0003003e,0x00000709,0x00000708,0x0004003d,0x00000006,0x0000070b,0x000000fb, + 0x0003003e,0x0000070a,0x0000070b,0x0004003d,0x0000009f,0x0000070d,0x000006e2,0x0003003e, + 0x0000070c,0x0000070d,0x00070039,0x00000002,0x0000070e,0x000000c2,0x00000709,0x0000070a, + 0x0000070c,0x000200f9,0x000006ef,0x000200f8,0x000006ef,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000108,0x00000000,0x000000e9,0x00030037,0x00000007,0x00000102,0x00030037, + 0x00000007,0x00000103,0x00030037,0x000000d0,0x00000104,0x00030037,0x00000007,0x00000105, + 0x00030037,0x00000007,0x00000106,0x00030037,0x00000007,0x00000107,0x000200f8,0x00000109, + 0x0004003b,0x000000aa,0x00000713,0x00000007,0x0004003b,0x00000007,0x0000071b,0x00000007, + 0x0004003b,0x00000007,0x0000071c,0x00000007,0x0004003b,0x000000aa,0x0000071e,0x00000007, + 0x0004003b,0x00000049,0x00000732,0x00000007,0x0004003b,0x000000aa,0x00000733,0x00000007, + 0x0004003b,0x00000007,0x00000735,0x00000007,0x0004003b,0x00000007,0x00000737,0x00000007, + 0x0004003b,0x00000007,0x00000741,0x00000007,0x0004003b,0x00000007,0x00000742,0x00000007, + 0x0004003b,0x000000aa,0x00000743,0x00000007,0x0004003d,0x00000006,0x0000070f,0x00000105, + 0x000500b0,0x0000006e,0x00000710,0x0000070f,0x00000591,0x000300f7,0x00000712,0x00000000, + 0x000400fa,0x00000710,0x00000711,0x00000712,0x000200f8,0x00000711,0x0004003d,0x00000006, + 0x00000714,0x00000102,0x00050084,0x00000006,0x00000715,0x00000714,0x0000016b,0x0004003d, + 0x00000006,0x00000716,0x00000103,0x00050089,0x00000006,0x00000717,0x00000716,0x0000016b, + 0x00050080,0x00000006,0x00000718,0x00000715,0x00000717,0x0004003d,0x00000006,0x00000719, + 0x00000103,0x00050084,0x00000006,0x0000071a,0x00000719,0x0000016b,0x0003003e,0x0000071b, + 0x00000718,0x0003003e,0x0000071c,0x0000071a,0x00060039,0x0000009f,0x0000071d,0x000000bc, + 0x0000071b,0x0000071c,0x0003003e,0x00000713,0x0000071d,0x0004003d,0x0000009f,0x0000071f, + 0x00000713,0x0003003e,0x0000071e,0x0000071f,0x00050039,0x0000009f,0x00000720,0x000000ce, + 0x0000071e,0x0003003e,0x00000713,0x00000720,0x0004003d,0x00000006,0x00000721,0x00000105, + 0x00050089,0x00000006,0x00000722,0x00000721,0x0000020b,0x000500aa,0x0000006e,0x00000723, + 0x00000722,0x000001bf,0x000300f7,0x00000725,0x00000000,0x000400fa,0x00000723,0x00000724, + 0x00000725,0x000200f8,0x00000724,0x0004003d,0x0000002d,0x00000726,0x00000104,0x00050050, + 0x0000002d,0x00000727,0x0000020b,0x0000020b,0x00050084,0x0000002d,0x00000728,0x00000726, + 0x00000727,0x0004007c,0x00000032,0x00000729,0x00000728,0x0004003d,0x00000006,0x0000072a, + 0x00000102,0x00050086,0x00000006,0x0000072b,0x0000072a,0x0000016b,0x0004007c,0x0000001a, + 0x0000072c,0x0000072b,0x0004003d,0x00000006,0x0000072d,0x00000103,0x00050086,0x00000006, + 0x0000072e,0x0000072d,0x0000016b,0x0004007c,0x0000001a,0x0000072f,0x0000072e,0x00050050, + 0x00000032,0x00000730,0x0000072c,0x0000072f,0x00050080,0x00000032,0x00000731,0x00000729, + 0x00000730,0x0003003e,0x00000732,0x00000731,0x0004003d,0x0000009f,0x00000734,0x00000713, + 0x0003003e,0x00000733,0x00000734,0x0004003d,0x00000006,0x00000736,0x00000106,0x0003003e, + 0x00000735,0x00000736,0x0004003d,0x00000006,0x00000738,0x00000107,0x0003003e,0x00000737, + 0x00000738,0x00080039,0x00000002,0x00000739,0x000000b7,0x00000732,0x00000733,0x00000735, + 0x00000737,0x0004003d,0x00000006,0x0000073a,0x00000102,0x00050084,0x00000006,0x0000073b, + 0x0000073a,0x0000016b,0x0004003d,0x00000006,0x0000073c,0x00000103,0x00050086,0x00000006, + 0x0000073d,0x0000073c,0x0000016b,0x00050080,0x00000006,0x0000073e,0x0000073b,0x0000073d, + 0x0004003d,0x00000006,0x0000073f,0x00000103,0x00050084,0x00000006,0x00000740,0x0000073f, + 0x0000016b,0x0003003e,0x00000741,0x0000073e,0x0003003e,0x00000742,0x00000740,0x0004003d, + 0x0000009f,0x00000744,0x00000713,0x0003003e,0x00000743,0x00000744,0x00070039,0x00000002, + 0x00000745,0x000000c2,0x00000741,0x00000742,0x00000743,0x000200f9,0x00000725,0x000200f8, + 0x00000725,0x000200f9,0x00000712,0x000200f8,0x00000712,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000110,0x00000000,0x000000e9,0x00030037,0x00000007,0x0000010a,0x00030037, + 0x00000007,0x0000010b,0x00030037,0x000000d0,0x0000010c,0x00030037,0x00000007,0x0000010d, + 0x00030037,0x00000007,0x0000010e,0x00030037,0x00000007,0x0000010f,0x000200f8,0x00000111, + 0x0004003b,0x000000aa,0x0000074a,0x00000007,0x0004003b,0x00000007,0x00000751,0x00000007, + 0x0004003b,0x00000007,0x00000752,0x00000007,0x0004003b,0x000000aa,0x00000754,0x00000007, + 0x0004003b,0x00000049,0x00000768,0x00000007,0x0004003b,0x000000aa,0x00000769,0x00000007, + 0x0004003b,0x00000007,0x0000076b,0x00000007,0x0004003b,0x00000007,0x0000076d,0x00000007, + 0x0004003b,0x00000007,0x00000774,0x00000007,0x0004003b,0x00000007,0x00000775,0x00000007, + 0x0004003b,0x000000aa,0x00000776,0x00000007,0x0004003d,0x00000006,0x00000746,0x0000010d, + 0x000500b0,0x0000006e,0x00000747,0x00000746,0x000004bf,0x000300f7,0x00000749,0x00000000, + 0x000400fa,0x00000747,0x00000748,0x00000749,0x000200f8,0x00000748,0x0004003d,0x00000006, + 0x0000074b,0x0000010a,0x00050084,0x00000006,0x0000074c,0x0000074b,0x0000020b,0x0004003d, + 0x00000006,0x0000074d,0x0000010b,0x00050080,0x00000006,0x0000074e,0x0000074c,0x0000074d, + 0x0004003d,0x00000006,0x0000074f,0x0000010b,0x00050084,0x00000006,0x00000750,0x0000074f, + 0x0000020b,0x0003003e,0x00000751,0x0000074e,0x0003003e,0x00000752,0x00000750,0x00060039, + 0x0000009f,0x00000753,0x000000bc,0x00000751,0x00000752,0x0003003e,0x0000074a,0x00000753, + 0x0004003d,0x0000009f,0x00000755,0x0000074a,0x0003003e,0x00000754,0x00000755,0x00050039, + 0x0000009f,0x00000756,0x000000ce,0x00000754,0x0003003e,0x0000074a,0x00000756,0x0004003d, + 0x00000006,0x00000757,0x0000010d,0x00050089,0x00000006,0x00000758,0x00000757,0x0000020b, + 0x000500aa,0x0000006e,0x00000759,0x00000758,0x000001bf,0x000300f7,0x0000075b,0x00000000, + 0x000400fa,0x00000759,0x0000075a,0x0000075b,0x000200f8,0x0000075a,0x0004003d,0x0000002d, + 0x0000075c,0x0000010c,0x00050050,0x0000002d,0x0000075d,0x0000016b,0x0000016b,0x00050084, + 0x0000002d,0x0000075e,0x0000075c,0x0000075d,0x0004007c,0x00000032,0x0000075f,0x0000075e, + 0x0004003d,0x00000006,0x00000760,0x0000010a,0x00050086,0x00000006,0x00000761,0x00000760, + 0x0000016b,0x0004007c,0x0000001a,0x00000762,0x00000761,0x0004003d,0x00000006,0x00000763, + 0x0000010b,0x00050086,0x00000006,0x00000764,0x00000763,0x0000016b,0x0004007c,0x0000001a, + 0x00000765,0x00000764,0x00050050,0x00000032,0x00000766,0x00000762,0x00000765,0x00050080, + 0x00000032,0x00000767,0x0000075f,0x00000766,0x0003003e,0x00000768,0x00000767,0x0004003d, + 0x0000009f,0x0000076a,0x0000074a,0x0003003e,0x00000769,0x0000076a,0x0004003d,0x00000006, + 0x0000076c,0x0000010e,0x0003003e,0x0000076b,0x0000076c,0x0004003d,0x00000006,0x0000076e, + 0x0000010f,0x0003003e,0x0000076d,0x0000076e,0x00080039,0x00000002,0x0000076f,0x000000b7, + 0x00000768,0x00000769,0x0000076b,0x0000076d,0x0004003d,0x00000006,0x00000770,0x0000010a, + 0x00050086,0x00000006,0x00000771,0x00000770,0x0000016b,0x0004003d,0x00000006,0x00000772, + 0x0000010b,0x00050080,0x00000006,0x00000773,0x00000771,0x00000772,0x0003003e,0x00000774, + 0x00000773,0x0003003e,0x00000775,0x000001bf,0x0004003d,0x0000009f,0x00000777,0x0000074a, + 0x0003003e,0x00000776,0x00000777,0x00070039,0x00000002,0x00000778,0x000000c2,0x00000774, + 0x00000775,0x00000776,0x000200f9,0x0000075b,0x000200f8,0x0000075b,0x000200f9,0x00000749, + 0x000200f8,0x00000749,0x000100fd,0x00010038,0x00050036,0x00000002,0x00000117,0x00000000, + 0x00000112,0x00030037,0x000000d0,0x00000113,0x00030037,0x00000007,0x00000114,0x00030037, + 0x00000007,0x00000115,0x00030037,0x00000007,0x00000116,0x000200f8,0x00000118,0x0004003b, + 0x000000aa,0x0000077d,0x00000007,0x0004003b,0x00000007,0x0000077e,0x00000007,0x0004003b, + 0x00000007,0x00000780,0x00000007,0x0004003b,0x000000aa,0x00000782,0x00000007,0x0004003b, + 0x00000049,0x0000078c,0x00000007,0x0004003b,0x000000aa,0x0000078d,0x00000007,0x0004003b, + 0x00000007,0x0000078f,0x00000007,0x0004003b,0x00000007,0x00000791,0x00000007,0x0004003d, + 0x00000006,0x00000779,0x00000114,0x000500b0,0x0000006e,0x0000077a,0x00000779,0x0000020b, + 0x000300f7,0x0000077c,0x00000000,0x000400fa,0x0000077a,0x0000077b,0x0000077c,0x000200f8, + 0x0000077b,0x0004003d,0x00000006,0x0000077f,0x00000114,0x0003003e,0x0000077e,0x0000077f, + 0x0003003e,0x00000780,0x000001bf,0x00060039,0x0000009f,0x00000781,0x000000bc,0x0000077e, + 0x00000780,0x0003003e,0x0000077d,0x00000781,0x0004003d,0x0000009f,0x00000783,0x0000077d, + 0x0003003e,0x00000782,0x00000783,0x00050039,0x0000009f,0x00000784,0x000000ce,0x00000782, + 0x0003003e,0x0000077d,0x00000784,0x0004003d,0x00000006,0x00000785,0x00000114,0x00050089, + 0x00000006,0x00000786,0x00000785,0x0000020b,0x000500aa,0x0000006e,0x00000787,0x00000786, + 0x000001bf,0x000300f7,0x00000789,0x00000000,0x000400fa,0x00000787,0x00000788,0x00000789, + 0x000200f8,0x00000788,0x0004003d,0x0000002d,0x0000078a,0x00000113,0x0004007c,0x00000032, + 0x0000078b,0x0000078a,0x0003003e,0x0000078c,0x0000078b,0x0004003d,0x0000009f,0x0000078e, + 0x0000077d,0x0003003e,0x0000078d,0x0000078e,0x0004003d,0x00000006,0x00000790,0x00000115, + 0x0003003e,0x0000078f,0x00000790,0x0004003d,0x00000006,0x00000792,0x00000116,0x0003003e, + 0x00000791,0x00000792,0x00080039,0x00000002,0x00000793,0x000000b7,0x0000078c,0x0000078d, + 0x0000078f,0x00000791,0x000200f9,0x00000789,0x000200f8,0x00000789,0x000200f9,0x0000077c, + 0x000200f8,0x0000077c,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000011e,0x00000000, + 0x00000119,0x00030037,0x00000007,0x0000011a,0x00030037,0x00000007,0x0000011b,0x00030037, + 0x00000007,0x0000011c,0x00030037,0x00000007,0x0000011d,0x000200f8,0x0000011f,0x0004003b, + 0x00000049,0x00000794,0x00000007,0x0004003b,0x00000049,0x0000079e,0x00000007,0x0004003b, + 0x000000aa,0x000007a8,0x00000007,0x0004003b,0x000000d0,0x000007ab,0x00000007,0x0004003b, + 0x00000007,0x000007ac,0x00000007,0x0004003b,0x00000049,0x000007b0,0x00000007,0x0004003b, + 0x000000aa,0x000007b2,0x00000007,0x0004003b,0x00000007,0x000007b4,0x00000007,0x0004003b, + 0x00000007,0x000007b5,0x00000007,0x0004003b,0x000000aa,0x000007ca,0x00000007,0x0004003b, + 0x000000d0,0x000007cd,0x00000007,0x0004003b,0x00000007,0x000007ce,0x00000007,0x0004003b, + 0x00000049,0x000007d1,0x00000007,0x0004003b,0x000000aa,0x000007d3,0x00000007,0x0004003b, + 0x00000007,0x000007d5,0x00000007,0x0004003b,0x00000007,0x000007d6,0x00000007,0x0004003b, + 0x000000aa,0x000007eb,0x00000007,0x0004003b,0x000000d0,0x000007ee,0x00000007,0x0004003b, + 0x00000007,0x000007ef,0x00000007,0x0004003b,0x00000049,0x000007f2,0x00000007,0x0004003b, + 0x000000aa,0x000007f4,0x00000007,0x0004003b,0x00000007,0x000007f6,0x00000007,0x0004003b, + 0x00000007,0x000007f7,0x00000007,0x0004003b,0x000000aa,0x0000080c,0x00000007,0x0004003b, + 0x000000d0,0x0000080f,0x00000007,0x0004003b,0x00000007,0x00000810,0x00000007,0x0004003b, + 0x00000049,0x00000813,0x00000007,0x0004003b,0x000000aa,0x00000815,0x00000007,0x0004003b, + 0x00000007,0x00000817,0x00000007,0x0004003b,0x00000007,0x00000818,0x00000007,0x0004003b, + 0x000000aa,0x00000821,0x00000007,0x0004003b,0x000000aa,0x00000822,0x00000007,0x0004003b, + 0x000000aa,0x00000824,0x00000007,0x0004003b,0x000000aa,0x00000826,0x00000007,0x0004003b, + 0x000000aa,0x00000828,0x00000007,0x0004003b,0x00000049,0x00000830,0x00000007,0x0004003b, + 0x000000aa,0x00000831,0x00000007,0x0004003b,0x00000007,0x00000833,0x00000007,0x0004003b, + 0x00000007,0x00000834,0x00000007,0x0004003b,0x00000007,0x00000837,0x00000007,0x0004003b, + 0x00000007,0x00000839,0x00000007,0x0004003b,0x000000aa,0x0000083b,0x00000007,0x0004003d, + 0x00000006,0x00000795,0x0000011a,0x00050084,0x00000006,0x00000796,0x00000795,0x0000020b, + 0x00050080,0x00000006,0x00000797,0x00000796,0x000001bf,0x0004007c,0x0000001a,0x00000798, + 0x00000797,0x0004003d,0x00000006,0x00000799,0x0000011b,0x00050084,0x00000006,0x0000079a, + 0x00000799,0x0000020b,0x00050080,0x00000006,0x0000079b,0x0000079a,0x000001bf,0x0004007c, + 0x0000001a,0x0000079c,0x0000079b,0x00050050,0x00000032,0x0000079d,0x00000798,0x0000079c, + 0x0003003e,0x00000794,0x0000079d,0x0004003d,0x00000006,0x0000079f,0x0000011a,0x00050084, + 0x00000006,0x000007a0,0x0000079f,0x0000016b,0x00050080,0x00000006,0x000007a1,0x000007a0, + 0x000001bf,0x0004007c,0x0000001a,0x000007a2,0x000007a1,0x0004003d,0x00000006,0x000007a3, + 0x0000011b,0x00050084,0x00000006,0x000007a4,0x000007a3,0x0000016b,0x00050080,0x00000006, + 0x000007a5,0x000007a4,0x000001bf,0x0004007c,0x0000001a,0x000007a6,0x000007a5,0x00050050, + 0x00000032,0x000007a7,0x000007a2,0x000007a6,0x0003003e,0x0000079e,0x000007a7,0x0004003d, + 0x00000032,0x000007a9,0x00000794,0x0004007c,0x0000002d,0x000007aa,0x000007a9,0x0003003e, + 0x000007ab,0x000007aa,0x0004003d,0x00000006,0x000007ad,0x0000011d,0x0003003e,0x000007ac, + 0x000007ad,0x00060039,0x0000009f,0x000007ae,0x000000dc,0x000007ab,0x000007ac,0x0003003e, + 0x000007a8,0x000007ae,0x0004003d,0x00000032,0x000007b1,0x0000079e,0x0003003e,0x000007b0, + 0x000007b1,0x0004003d,0x0000009f,0x000007b3,0x000007a8,0x0003003e,0x000007b2,0x000007b3, + 0x0003003e,0x000007b4,0x000007af,0x0004003d,0x00000006,0x000007b6,0x0000011d,0x0003003e, + 0x000007b5,0x000007b6,0x00080039,0x00000002,0x000007b7,0x000000b7,0x000007b0,0x000007b2, + 0x000007b4,0x000007b5,0x0004003d,0x00000006,0x000007b8,0x0000011a,0x00050084,0x00000006, + 0x000007b9,0x000007b8,0x0000020b,0x00050080,0x00000006,0x000007ba,0x000007b9,0x0000016b, + 0x0004007c,0x0000001a,0x000007bb,0x000007ba,0x0004003d,0x00000006,0x000007bc,0x0000011b, + 0x00050084,0x00000006,0x000007bd,0x000007bc,0x0000020b,0x00050080,0x00000006,0x000007be, + 0x000007bd,0x000001bf,0x0004007c,0x0000001a,0x000007bf,0x000007be,0x00050050,0x00000032, + 0x000007c0,0x000007bb,0x000007bf,0x0003003e,0x00000794,0x000007c0,0x0004003d,0x00000006, + 0x000007c1,0x0000011a,0x00050084,0x00000006,0x000007c2,0x000007c1,0x0000016b,0x00050080, + 0x00000006,0x000007c3,0x000007c2,0x00000172,0x0004007c,0x0000001a,0x000007c4,0x000007c3, + 0x0004003d,0x00000006,0x000007c5,0x0000011b,0x00050084,0x00000006,0x000007c6,0x000007c5, + 0x0000016b,0x00050080,0x00000006,0x000007c7,0x000007c6,0x000001bf,0x0004007c,0x0000001a, + 0x000007c8,0x000007c7,0x00050050,0x00000032,0x000007c9,0x000007c4,0x000007c8,0x0003003e, + 0x0000079e,0x000007c9,0x0004003d,0x00000032,0x000007cb,0x00000794,0x0004007c,0x0000002d, + 0x000007cc,0x000007cb,0x0003003e,0x000007cd,0x000007cc,0x0004003d,0x00000006,0x000007cf, + 0x0000011d,0x0003003e,0x000007ce,0x000007cf,0x00060039,0x0000009f,0x000007d0,0x000000dc, + 0x000007cd,0x000007ce,0x0003003e,0x000007ca,0x000007d0,0x0004003d,0x00000032,0x000007d2, + 0x0000079e,0x0003003e,0x000007d1,0x000007d2,0x0004003d,0x0000009f,0x000007d4,0x000007ca, + 0x0003003e,0x000007d3,0x000007d4,0x0003003e,0x000007d5,0x000007af,0x0004003d,0x00000006, + 0x000007d7,0x0000011d,0x0003003e,0x000007d6,0x000007d7,0x00080039,0x00000002,0x000007d8, + 0x000000b7,0x000007d1,0x000007d3,0x000007d5,0x000007d6,0x0004003d,0x00000006,0x000007d9, + 0x0000011a,0x00050084,0x00000006,0x000007da,0x000007d9,0x0000020b,0x00050080,0x00000006, + 0x000007db,0x000007da,0x000001bf,0x0004007c,0x0000001a,0x000007dc,0x000007db,0x0004003d, + 0x00000006,0x000007dd,0x0000011b,0x00050084,0x00000006,0x000007de,0x000007dd,0x0000020b, + 0x00050080,0x00000006,0x000007df,0x000007de,0x0000016b,0x0004007c,0x0000001a,0x000007e0, + 0x000007df,0x00050050,0x00000032,0x000007e1,0x000007dc,0x000007e0,0x0003003e,0x00000794, + 0x000007e1,0x0004003d,0x00000006,0x000007e2,0x0000011a,0x00050084,0x00000006,0x000007e3, + 0x000007e2,0x0000016b,0x00050080,0x00000006,0x000007e4,0x000007e3,0x000001bf,0x0004007c, + 0x0000001a,0x000007e5,0x000007e4,0x0004003d,0x00000006,0x000007e6,0x0000011b,0x00050084, + 0x00000006,0x000007e7,0x000007e6,0x0000016b,0x00050080,0x00000006,0x000007e8,0x000007e7, + 0x00000172,0x0004007c,0x0000001a,0x000007e9,0x000007e8,0x00050050,0x00000032,0x000007ea, + 0x000007e5,0x000007e9,0x0003003e,0x0000079e,0x000007ea,0x0004003d,0x00000032,0x000007ec, + 0x00000794,0x0004007c,0x0000002d,0x000007ed,0x000007ec,0x0003003e,0x000007ee,0x000007ed, + 0x0004003d,0x00000006,0x000007f0,0x0000011d,0x0003003e,0x000007ef,0x000007f0,0x00060039, + 0x0000009f,0x000007f1,0x000000dc,0x000007ee,0x000007ef,0x0003003e,0x000007eb,0x000007f1, + 0x0004003d,0x00000032,0x000007f3,0x0000079e,0x0003003e,0x000007f2,0x000007f3,0x0004003d, + 0x0000009f,0x000007f5,0x000007eb,0x0003003e,0x000007f4,0x000007f5,0x0003003e,0x000007f6, + 0x000007af,0x0004003d,0x00000006,0x000007f8,0x0000011d,0x0003003e,0x000007f7,0x000007f8, + 0x00080039,0x00000002,0x000007f9,0x000000b7,0x000007f2,0x000007f4,0x000007f6,0x000007f7, + 0x0004003d,0x00000006,0x000007fa,0x0000011a,0x00050084,0x00000006,0x000007fb,0x000007fa, + 0x0000020b,0x00050080,0x00000006,0x000007fc,0x000007fb,0x0000016b,0x0004007c,0x0000001a, + 0x000007fd,0x000007fc,0x0004003d,0x00000006,0x000007fe,0x0000011b,0x00050084,0x00000006, + 0x000007ff,0x000007fe,0x0000020b,0x00050080,0x00000006,0x00000800,0x000007ff,0x0000016b, + 0x0004007c,0x0000001a,0x00000801,0x00000800,0x00050050,0x00000032,0x00000802,0x000007fd, + 0x00000801,0x0003003e,0x00000794,0x00000802,0x0004003d,0x00000006,0x00000803,0x0000011a, + 0x00050084,0x00000006,0x00000804,0x00000803,0x0000016b,0x00050080,0x00000006,0x00000805, + 0x00000804,0x00000172,0x0004007c,0x0000001a,0x00000806,0x00000805,0x0004003d,0x00000006, + 0x00000807,0x0000011b,0x00050084,0x00000006,0x00000808,0x00000807,0x0000016b,0x00050080, + 0x00000006,0x00000809,0x00000808,0x00000172,0x0004007c,0x0000001a,0x0000080a,0x00000809, + 0x00050050,0x00000032,0x0000080b,0x00000806,0x0000080a,0x0003003e,0x0000079e,0x0000080b, + 0x0004003d,0x00000032,0x0000080d,0x00000794,0x0004007c,0x0000002d,0x0000080e,0x0000080d, + 0x0003003e,0x0000080f,0x0000080e,0x0004003d,0x00000006,0x00000811,0x0000011d,0x0003003e, + 0x00000810,0x00000811,0x00060039,0x0000009f,0x00000812,0x000000dc,0x0000080f,0x00000810, + 0x0003003e,0x0000080c,0x00000812,0x0004003d,0x00000032,0x00000814,0x0000079e,0x0003003e, + 0x00000813,0x00000814,0x0004003d,0x0000009f,0x00000816,0x0000080c,0x0003003e,0x00000815, + 0x00000816,0x0003003e,0x00000817,0x000007af,0x0004003d,0x00000006,0x00000819,0x0000011d, + 0x0003003e,0x00000818,0x00000819,0x00080039,0x00000002,0x0000081a,0x000000b7,0x00000813, + 0x00000815,0x00000817,0x00000818,0x0004003d,0x00000006,0x0000081b,0x0000011c,0x000500b2, + 0x0000006e,0x0000081d,0x0000081b,0x0000081c,0x000300f7,0x0000081f,0x00000000,0x000400fa, + 0x0000081d,0x0000081e,0x0000081f,0x000200f8,0x0000081e,0x000100fd,0x000200f8,0x0000081f, + 0x0004003d,0x0000009f,0x00000823,0x000007a8,0x0003003e,0x00000822,0x00000823,0x0004003d, + 0x0000009f,0x00000825,0x000007ca,0x0003003e,0x00000824,0x00000825,0x0004003d,0x0000009f, + 0x00000827,0x000007eb,0x0003003e,0x00000826,0x00000827,0x0004003d,0x0000009f,0x00000829, + 0x0000080c,0x0003003e,0x00000828,0x00000829,0x00080039,0x0000009f,0x0000082a,0x000000b0, + 0x00000822,0x00000824,0x00000826,0x00000828,0x0003003e,0x00000821,0x0000082a,0x0004003d, + 0x00000006,0x0000082b,0x0000011a,0x0004007c,0x0000001a,0x0000082c,0x0000082b,0x0004003d, + 0x00000006,0x0000082d,0x0000011b,0x0004007c,0x0000001a,0x0000082e,0x0000082d,0x00050050, + 0x00000032,0x0000082f,0x0000082c,0x0000082e,0x0003003e,0x00000830,0x0000082f,0x0004003d, + 0x0000009f,0x00000832,0x00000821,0x0003003e,0x00000831,0x00000832,0x0003003e,0x00000833, + 0x0000081c,0x0004003d,0x00000006,0x00000835,0x0000011d,0x0003003e,0x00000834,0x00000835, + 0x00080039,0x00000002,0x00000836,0x000000b7,0x00000830,0x00000831,0x00000833,0x00000834, + 0x0004003d,0x00000006,0x00000838,0x0000011a,0x0003003e,0x00000837,0x00000838,0x0004003d, + 0x00000006,0x0000083a,0x0000011b,0x0003003e,0x00000839,0x0000083a,0x0004003d,0x0000009f, + 0x0000083c,0x00000821,0x0003003e,0x0000083b,0x0000083c,0x00070039,0x00000002,0x0000083d, + 0x000000c2,0x00000837,0x00000839,0x0000083b,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000128,0x00000000,0x00000120,0x00030037,0x00000007,0x00000121,0x00030037,0x00000007, + 0x00000122,0x00030037,0x000000d0,0x00000123,0x00030037,0x00000007,0x00000124,0x00030037, + 0x00000007,0x00000125,0x00030037,0x00000007,0x00000126,0x00030037,0x00000007,0x00000127, + 0x000200f8,0x00000129,0x0004003b,0x00000007,0x00000845,0x00000007,0x0004003b,0x00000007, + 0x00000847,0x00000007,0x0004003b,0x000000d0,0x00000849,0x00000007,0x0004003b,0x00000007, + 0x0000084b,0x00000007,0x0004003b,0x00000007,0x0000084d,0x00000007,0x0004003b,0x00000007, + 0x0000084f,0x00000007,0x0004003b,0x00000007,0x0000085c,0x00000007,0x0004003b,0x00000007, + 0x0000085e,0x00000007,0x0004003b,0x000000d0,0x00000860,0x00000007,0x0004003b,0x00000007, + 0x00000862,0x00000007,0x0004003b,0x00000007,0x00000864,0x00000007,0x0004003b,0x00000007, + 0x00000865,0x00000007,0x0004003b,0x00000007,0x00000872,0x00000007,0x0004003b,0x00000007, + 0x00000874,0x00000007,0x0004003b,0x000000d0,0x00000876,0x00000007,0x0004003b,0x00000007, + 0x00000878,0x00000007,0x0004003b,0x00000007,0x0000087a,0x00000007,0x0004003b,0x00000007, + 0x0000087b,0x00000007,0x0004003b,0x000000d0,0x00000888,0x00000007,0x0004003b,0x00000007, + 0x0000088a,0x00000007,0x0004003b,0x00000007,0x0000088c,0x00000007,0x0004003b,0x00000007, + 0x0000088d,0x00000007,0x0004003d,0x00000006,0x0000083e,0x00000126,0x0004003d,0x00000006, + 0x0000083f,0x00000125,0x000500b2,0x0000006e,0x00000840,0x0000083e,0x0000083f,0x000300f7, + 0x00000842,0x00000000,0x000400fa,0x00000840,0x00000841,0x00000842,0x000200f8,0x00000841, + 0x000100fd,0x000200f8,0x00000842,0x00040039,0x00000002,0x00000844,0x000000c4,0x0004003d, + 0x00000006,0x00000846,0x00000121,0x0003003e,0x00000845,0x00000846,0x0004003d,0x00000006, + 0x00000848,0x00000122,0x0003003e,0x00000847,0x00000848,0x0004003d,0x0000002d,0x0000084a, + 0x00000123,0x0003003e,0x00000849,0x0000084a,0x0004003d,0x00000006,0x0000084c,0x00000124, + 0x0003003e,0x0000084b,0x0000084c,0x0004003d,0x00000006,0x0000084e,0x00000125,0x0003003e, + 0x0000084d,0x0000084e,0x0004003d,0x00000006,0x00000850,0x00000127,0x0003003e,0x0000084f, + 0x00000850,0x000a0039,0x00000002,0x00000851,0x00000100,0x00000845,0x00000847,0x00000849, + 0x0000084b,0x0000084d,0x0000084f,0x0004003d,0x00000006,0x00000852,0x00000126,0x0004003d, + 0x00000006,0x00000853,0x00000125,0x00050080,0x00000006,0x00000854,0x00000853,0x00000172, + 0x000500b2,0x0000006e,0x00000855,0x00000852,0x00000854,0x000300f7,0x00000857,0x00000000, + 0x000400fa,0x00000855,0x00000856,0x00000857,0x000200f8,0x00000856,0x000100fd,0x000200f8, + 0x00000857,0x00040039,0x00000002,0x00000859,0x000000c4,0x0004003d,0x00000006,0x0000085a, + 0x00000125,0x00050080,0x00000006,0x0000085b,0x0000085a,0x00000172,0x0004003d,0x00000006, + 0x0000085d,0x00000121,0x0003003e,0x0000085c,0x0000085d,0x0004003d,0x00000006,0x0000085f, + 0x00000122,0x0003003e,0x0000085e,0x0000085f,0x0004003d,0x0000002d,0x00000861,0x00000123, + 0x0003003e,0x00000860,0x00000861,0x0004003d,0x00000006,0x00000863,0x00000124,0x0003003e, + 0x00000862,0x00000863,0x0003003e,0x00000864,0x0000085b,0x0004003d,0x00000006,0x00000866, + 0x00000127,0x0003003e,0x00000865,0x00000866,0x000a0039,0x00000002,0x00000867,0x00000108, + 0x0000085c,0x0000085e,0x00000860,0x00000862,0x00000864,0x00000865,0x0004003d,0x00000006, + 0x00000868,0x00000126,0x0004003d,0x00000006,0x00000869,0x00000125,0x00050080,0x00000006, + 0x0000086a,0x00000869,0x0000016b,0x000500b2,0x0000006e,0x0000086b,0x00000868,0x0000086a, + 0x000300f7,0x0000086d,0x00000000,0x000400fa,0x0000086b,0x0000086c,0x0000086d,0x000200f8, + 0x0000086c,0x000100fd,0x000200f8,0x0000086d,0x00040039,0x00000002,0x0000086f,0x000000c4, + 0x0004003d,0x00000006,0x00000870,0x00000125,0x00050080,0x00000006,0x00000871,0x00000870, + 0x0000016b,0x0004003d,0x00000006,0x00000873,0x00000121,0x0003003e,0x00000872,0x00000873, + 0x0004003d,0x00000006,0x00000875,0x00000122,0x0003003e,0x00000874,0x00000875,0x0004003d, + 0x0000002d,0x00000877,0x00000123,0x0003003e,0x00000876,0x00000877,0x0004003d,0x00000006, + 0x00000879,0x00000124,0x0003003e,0x00000878,0x00000879,0x0003003e,0x0000087a,0x00000871, + 0x0004003d,0x00000006,0x0000087c,0x00000127,0x0003003e,0x0000087b,0x0000087c,0x000a0039, + 0x00000002,0x0000087d,0x00000110,0x00000872,0x00000874,0x00000876,0x00000878,0x0000087a, + 0x0000087b,0x0004003d,0x00000006,0x0000087e,0x00000126,0x0004003d,0x00000006,0x0000087f, + 0x00000125,0x00050080,0x00000006,0x00000880,0x0000087f,0x0000016c,0x000500b2,0x0000006e, + 0x00000881,0x0000087e,0x00000880,0x000300f7,0x00000883,0x00000000,0x000400fa,0x00000881, + 0x00000882,0x00000883,0x000200f8,0x00000882,0x000100fd,0x000200f8,0x00000883,0x00040039, + 0x00000002,0x00000885,0x000000c4,0x0004003d,0x00000006,0x00000886,0x00000125,0x00050080, + 0x00000006,0x00000887,0x00000886,0x0000016c,0x0004003d,0x0000002d,0x00000889,0x00000123, + 0x0003003e,0x00000888,0x00000889,0x0004003d,0x00000006,0x0000088b,0x00000124,0x0003003e, + 0x0000088a,0x0000088b,0x0003003e,0x0000088c,0x00000887,0x0004003d,0x00000006,0x0000088e, + 0x00000127,0x0003003e,0x0000088d,0x0000088e,0x00080039,0x00000002,0x0000088f,0x00000117, + 0x00000888,0x0000088a,0x0000088c,0x0000088d,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000130,0x00000000,0x0000012a,0x00030037,0x000000d0,0x0000012b,0x00030037,0x00000007, + 0x0000012c,0x00030037,0x00000007,0x0000012d,0x00030037,0x00000007,0x0000012e,0x00030037, + 0x00000007,0x0000012f,0x000200f8,0x00000131,0x0004003b,0x000000d0,0x00000890,0x00000007, + 0x0004003b,0x00000007,0x00000893,0x00000007,0x0004003b,0x00000007,0x00000895,0x00000007, + 0x0004003b,0x00000007,0x0000089e,0x00000007,0x0004003b,0x00000007,0x000008a5,0x00000007, + 0x0004003b,0x00000007,0x000008a7,0x00000007,0x0004003b,0x000000d0,0x000008a9,0x00000007, + 0x0004003b,0x00000007,0x000008ab,0x00000007,0x0004003b,0x00000007,0x000008ad,0x00000007, + 0x0004003b,0x00000007,0x000008af,0x00000007,0x0004003b,0x00000007,0x000008b2,0x00000007, + 0x0004003b,0x00000007,0x000008b4,0x00000007,0x0004003b,0x000000d0,0x000008b6,0x00000007, + 0x0004003b,0x00000007,0x000008b8,0x00000007,0x0004003b,0x00000007,0x000008ba,0x00000007, + 0x0004003b,0x00000007,0x000008bb,0x00000007,0x0004003b,0x00000007,0x000008bd,0x00000007, + 0x0004003b,0x00000007,0x000008c5,0x00000007,0x0004003b,0x00000007,0x000008c7,0x00000007, + 0x0004003b,0x00000007,0x000008c9,0x00000007,0x0004003b,0x00000007,0x000008cf,0x00000007, + 0x0004003b,0x00000007,0x000008d2,0x00000007,0x0004003b,0x00000007,0x000008d4,0x00000007, + 0x0004003b,0x00000007,0x000008d6,0x00000007,0x0004003b,0x00000007,0x000008d8,0x00000007, + 0x0004003b,0x00000007,0x000008db,0x00000007,0x0004003b,0x00000007,0x000008dd,0x00000007, + 0x0004003b,0x000000d0,0x000008df,0x00000007,0x0004003b,0x00000007,0x000008e0,0x00000007, + 0x0004003b,0x00000007,0x000008e2,0x00000007,0x0004003b,0x00000007,0x000008e3,0x00000007, + 0x0004003b,0x00000007,0x000008e5,0x00000007,0x0004003d,0x00000006,0x00000891,0x0000012c, + 0x00050089,0x00000006,0x00000892,0x00000891,0x00000591,0x0003003e,0x00000893,0x00000892, + 0x00050039,0x0000002d,0x00000894,0x00000030,0x00000893,0x0003003e,0x00000890,0x00000894, + 0x00050041,0x00000007,0x00000896,0x00000890,0x000001bf,0x0004003d,0x00000006,0x00000897, + 0x00000896,0x0004003d,0x00000006,0x00000898,0x0000012c,0x000500c2,0x00000006,0x0000089a, + 0x00000898,0x00000899,0x00050089,0x00000006,0x0000089b,0x0000089a,0x0000016b,0x00050084, + 0x00000006,0x0000089c,0x00000678,0x0000089b,0x00050080,0x00000006,0x0000089d,0x00000897, + 0x0000089c,0x0003003e,0x00000895,0x0000089d,0x00050041,0x00000007,0x0000089f,0x00000890, + 0x00000172,0x0004003d,0x00000006,0x000008a0,0x0000089f,0x0004003d,0x00000006,0x000008a1, + 0x0000012c,0x000500c2,0x00000006,0x000008a2,0x000008a1,0x00000196,0x00050084,0x00000006, + 0x000008a3,0x00000678,0x000008a2,0x00050080,0x00000006,0x000008a4,0x000008a0,0x000008a3, + 0x0003003e,0x0000089e,0x000008a4,0x0004003d,0x00000006,0x000008a6,0x00000895,0x0003003e, + 0x000008a5,0x000008a6,0x0004003d,0x00000006,0x000008a8,0x0000089e,0x0003003e,0x000008a7, + 0x000008a8,0x0004003d,0x0000002d,0x000008aa,0x0000012b,0x0003003e,0x000008a9,0x000008aa, + 0x0004003d,0x00000006,0x000008ac,0x0000012c,0x0003003e,0x000008ab,0x000008ac,0x0004003d, + 0x00000006,0x000008ae,0x0000012d,0x0003003e,0x000008ad,0x000008ae,0x0004003d,0x00000006, + 0x000008b0,0x0000012f,0x0003003e,0x000008af,0x000008b0,0x000a0039,0x00000002,0x000008b1, + 0x000000f8,0x000008a5,0x000008a7,0x000008a9,0x000008ab,0x000008ad,0x000008af,0x0004003d, + 0x00000006,0x000008b3,0x00000895,0x0003003e,0x000008b2,0x000008b3,0x0004003d,0x00000006, + 0x000008b5,0x0000089e,0x0003003e,0x000008b4,0x000008b5,0x0004003d,0x0000002d,0x000008b7, + 0x0000012b,0x0003003e,0x000008b6,0x000008b7,0x0004003d,0x00000006,0x000008b9,0x0000012c, + 0x0003003e,0x000008b8,0x000008b9,0x0003003e,0x000008ba,0x0000016b,0x0004003d,0x00000006, + 0x000008bc,0x0000012d,0x0003003e,0x000008bb,0x000008bc,0x0004003d,0x00000006,0x000008be, + 0x0000012f,0x0003003e,0x000008bd,0x000008be,0x000b0039,0x00000002,0x000008bf,0x00000128, + 0x000008b2,0x000008b4,0x000008b6,0x000008b8,0x000008ba,0x000008bb,0x000008bd,0x0004003d, + 0x00000006,0x000008c0,0x0000012d,0x000500b2,0x0000006e,0x000008c1,0x000008c0,0x000007af, + 0x000300f7,0x000008c3,0x00000000,0x000400fa,0x000008c1,0x000008c2,0x000008c3,0x000200f8, + 0x000008c2,0x000100fd,0x000200f8,0x000008c3,0x0004003d,0x00000006,0x000008c6,0x0000012e, + 0x0003003e,0x000008c5,0x000008c6,0x0004003d,0x00000006,0x000008c8,0x0000012c,0x0003003e, + 0x000008c7,0x000008c8,0x0004003d,0x00000006,0x000008ca,0x0000012f,0x0003003e,0x000008c9, + 0x000008ca,0x00070039,0x0000006e,0x000008cb,0x000000ca,0x000008c5,0x000008c7,0x000008c9, + 0x000300f7,0x000008cd,0x00000000,0x000400fa,0x000008cb,0x000008cc,0x000008cd,0x000200f8, + 0x000008cc,0x000100fd,0x000200f8,0x000008cd,0x0004003d,0x00000006,0x000008d0,0x0000012f, + 0x0003003e,0x000008cf,0x000008d0,0x00050039,0x00000002,0x000008d1,0x0000007f,0x000008cf, + 0x0004003d,0x00000006,0x000008d3,0x00000895,0x0003003e,0x000008d2,0x000008d3,0x0004003d, + 0x00000006,0x000008d5,0x0000089e,0x0003003e,0x000008d4,0x000008d5,0x0004003d,0x00000006, + 0x000008d7,0x0000012d,0x0003003e,0x000008d6,0x000008d7,0x0004003d,0x00000006,0x000008d9, + 0x0000012f,0x0003003e,0x000008d8,0x000008d9,0x00080039,0x00000002,0x000008da,0x0000011e, + 0x000008d2,0x000008d4,0x000008d6,0x000008d8,0x0004003d,0x00000006,0x000008dc,0x00000895, + 0x0003003e,0x000008db,0x000008dc,0x0004003d,0x00000006,0x000008de,0x0000089e,0x0003003e, + 0x000008dd,0x000008de,0x0003003e,0x000008df,0x0000053f,0x0004003d,0x00000006,0x000008e1, + 0x0000012c,0x0003003e,0x000008e0,0x000008e1,0x0003003e,0x000008e2,0x00000678,0x0004003d, + 0x00000006,0x000008e4,0x0000012d,0x0003003e,0x000008e3,0x000008e4,0x0004003d,0x00000006, + 0x000008e6,0x0000012f,0x0003003e,0x000008e5,0x000008e6,0x000b0039,0x00000002,0x000008e7, + 0x00000128,0x000008db,0x000008dd,0x000008df,0x000008e0,0x000008e2,0x000008e3,0x000008e5, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000139,0x00000000,0x00000132,0x00030037, + 0x000000d0,0x00000133,0x00030037,0x00000007,0x00000134,0x00030037,0x00000007,0x00000135, + 0x00030037,0x00000007,0x00000136,0x00030037,0x00000007,0x00000137,0x00030037,0x000000d0, + 0x00000138,0x000200f8,0x0000013a,0x0004003b,0x000000d0,0x000008eb,0x00000007,0x0004003b, + 0x00000007,0x000008ec,0x00000007,0x0004003b,0x00000007,0x000008ee,0x00000007,0x0004003b, + 0x00000007,0x000008f0,0x00000007,0x0004003b,0x00000007,0x000008f2,0x00000007,0x0004003d, + 0x0000002d,0x000008e8,0x00000133,0x0004003d,0x0000002d,0x000008e9,0x00000138,0x00050080, + 0x0000002d,0x000008ea,0x000008e8,0x000008e9,0x0003003e,0x000008eb,0x000008ea,0x0004003d, + 0x00000006,0x000008ed,0x00000134,0x0003003e,0x000008ec,0x000008ed,0x0004003d,0x00000006, + 0x000008ef,0x00000135,0x0003003e,0x000008ee,0x000008ef,0x0004003d,0x00000006,0x000008f1, + 0x00000136,0x0003003e,0x000008f0,0x000008f1,0x0004003d,0x00000006,0x000008f3,0x00000137, + 0x0003003e,0x000008f2,0x000008f3,0x00090039,0x00000002,0x000008f4,0x00000130,0x000008eb, + 0x000008ec,0x000008ee,0x000008f0,0x000008f2,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000140,0x00000000,0x0000013d,0x00030037,0x0000013c,0x0000013e,0x00030037,0x00000007, + 0x0000013f,0x000200f8,0x00000141,0x0004003b,0x000000d0,0x000008fd,0x00000007,0x0004003b, + 0x00000007,0x000008fe,0x00000007,0x0004003b,0x00000007,0x000008ff,0x00000007,0x0004003b, + 0x00000007,0x00000900,0x00000007,0x0004003b,0x00000007,0x00000901,0x00000007,0x0004003b, + 0x000000d0,0x00000902,0x00000007,0x0004003d,0x0000013b,0x000008f5,0x0000013e,0x0007004f, + 0x0000002d,0x000008f6,0x000008f5,0x000008f5,0x00000000,0x00000001,0x0004003d,0x00000006, + 0x000008f7,0x0000013f,0x00040039,0x00000006,0x000008f8,0x00000042,0x00040039,0x00000006, + 0x000008f9,0x00000044,0x00050041,0x00000007,0x000008fa,0x0000013e,0x0000016b,0x0004003d, + 0x00000006,0x000008fb,0x000008fa,0x00040039,0x0000002d,0x000008fc,0x00000047,0x0003003e, + 0x000008fd,0x000008f6,0x0003003e,0x000008fe,0x000008f7,0x0003003e,0x000008ff,0x000008f8, + 0x0003003e,0x00000900,0x000008f9,0x0003003e,0x00000901,0x000008fb,0x0003003e,0x00000902, + 0x000008fc,0x000a0039,0x00000002,0x00000903,0x00000139,0x000008fd,0x000008fe,0x000008ff, + 0x00000900,0x00000901,0x00000902,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h b/gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h new file mode 100644 index 000000000..6b251bbb6 --- /dev/null +++ b/gpu/vk/shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h @@ -0,0 +1,1942 @@ + // 1116.2.0 + #pragma once +const uint32_t FSR3_SHADING_CHANGE_PYRAMID_NOWAVE_COMP_SPV[] = { + 0x07230203,0x00010300,0x0008000b,0x0000095b,0x00000000,0x00020011,0x00000001,0x00020011, + 0x00000031,0x0006000b,0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e, + 0x00000000,0x00000001,0x0007000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000945, + 0x00000947,0x00060010,0x00000004,0x00000011,0x00000100,0x00000001,0x00000001,0x00030003, + 0x00000002,0x000001c2,0x000b0004,0x455f4c47,0x735f5458,0x6c706d61,0x656c7265,0x745f7373, + 0x75747865,0x665f6572,0x74636e75,0x736e6f69,0x00000000,0x000b0004,0x455f4c47,0x735f5458, + 0x65646168,0x78655f72,0x63696c70,0x615f7469,0x68746972,0x6974656d,0x79745f63,0x00736570, + 0x000a0004,0x475f4c47,0x4c474f4f,0x70635f45,0x74735f70,0x5f656c79,0x656e696c,0x7269645f, + 0x69746365,0x00006576,0x00080004,0x475f4c47,0x4c474f4f,0x6e695f45,0x64756c63,0x69645f65, + 0x74636572,0x00657669,0x00040005,0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000c, + 0x42786666,0x69667469,0x45646c65,0x61727478,0x75287463,0x31753b31,0x3b31753b,0x00000000, + 0x00030005,0x00000009,0x00637273,0x00030005,0x0000000a,0x0066666f,0x00040005,0x0000000b, + 0x73746962,0x00000000,0x000a0005,0x00000011,0x42786666,0x69667469,0x49646c65,0x7265736e, + 0x73614d74,0x3175286b,0x3b31753b,0x003b3175,0x00030005,0x0000000e,0x00637273,0x00030005, + 0x0000000f,0x00736e69,0x00040005,0x00000010,0x73746962,0x00000000,0x00060005,0x00000018, + 0x4d786666,0x66286e69,0x31663b31,0x0000003b,0x00030005,0x00000016,0x00000078,0x00030005, + 0x00000017,0x00000079,0x00060005,0x0000001f,0x4d786666,0x69286e69,0x31693b31,0x0000003b, + 0x00030005,0x0000001d,0x00000078,0x00030005,0x0000001e,0x00000079,0x00060005,0x00000023, + 0x4d786666,0x66287861,0x31663b31,0x0000003b,0x00030005,0x00000021,0x00000078,0x00030005, + 0x00000022,0x00000079,0x00060005,0x00000027,0x4d786666,0x69287861,0x31693b31,0x0000003b, + 0x00030005,0x00000025,0x00000078,0x00030005,0x00000026,0x00000079,0x00060005,0x0000002b, + 0x50786666,0x6628776f,0x31663b31,0x0000003b,0x00030005,0x00000029,0x00000078,0x00030005, + 0x0000002a,0x00000079,0x000a0005,0x00000030,0x52786666,0x70616d65,0x57726f46,0x52657661, + 0x63756465,0x6e6f6974,0x3b317528,0x00000000,0x00030005,0x0000002f,0x00000061,0x00050005, + 0x00000034,0x646e6552,0x69537265,0x0028657a,0x00090005,0x00000036,0x76657250,0x73756f69, + 0x6d617246,0x6e655265,0x53726564,0x28657a69,0x00000000,0x00040005,0x0000003a,0x7474694a, + 0x00287265,0x00080005,0x0000003c,0x76657250,0x73756f69,0x6d617246,0x74694a65,0x28726574, + 0x00000000,0x00070005,0x0000003f,0x746c6544,0x65725061,0x6f707845,0x65727573,0x00000028, + 0x00050005,0x00000042,0x4370694d,0x746e756f,0x00000028,0x00060005,0x00000044,0x576d754e, + 0x476b726f,0x70756f72,0x00002873,0x00070005,0x00000047,0x6b726f57,0x756f7247,0x66664f70, + 0x28746573,0x00000000,0x00080005,0x0000004c,0x64616f4c,0x72727543,0x4c746e65,0x28616d75, + 0x3b326976,0x00000000,0x00040005,0x0000004b,0x50785069,0x0000736f,0x00080005,0x0000004f, + 0x64616f4c,0x76657250,0x73756f69,0x616d754c,0x32697628,0x0000003b,0x00040005,0x0000004e, + 0x50785069,0x0000736f,0x000a0005,0x00000053,0x64616f4c,0x616c6944,0x4d646574,0x6f69746f, + 0x6365566e,0x28726f74,0x3b326976,0x00000000,0x00050005,0x00000052,0x49785069,0x7475706e, + 0x00000000,0x00050005,0x00000055,0x6f707845,0x65727573,0x00000028,0x00080005,0x0000005a, + 0x6f4c5752,0x79506461,0x696d6172,0x69762864,0x31753b32,0x0000003b,0x00040005,0x00000058, + 0x50785069,0x0000736f,0x00040005,0x00000059,0x65646e69,0x00000078,0x00090005,0x00000061, + 0x726f7453,0x72795065,0x64696d61,0x32697628,0x3266763b,0x3b31753b,0x00000000,0x00040005, + 0x0000005e,0x50785069,0x0000736f,0x00050005,0x0000005f,0x5674756f,0x65756c61,0x00000000, + 0x00040005,0x00000060,0x65646e69,0x00000078,0x000a0005,0x00000065,0x5f445053,0x72636e49, + 0x65736165,0x6d6f7441,0x6f436369,0x65746e75,0x31752872,0x0000003b,0x00050005,0x00000064, + 0x43647073,0x746e756f,0x00007265,0x00080005,0x00000067,0x5f445053,0x65736552,0x6f744174, + 0x4363696d,0x746e756f,0x00287265,0x00080005,0x0000006c,0x446e694d,0x64697669,0x79426465, + 0x2878614d,0x663b3166,0x00003b31,0x00030005,0x0000006a,0x00003076,0x00030005,0x0000006b, + 0x00003176,0x00060005,0x00000071,0x76557349,0x69736e49,0x76286564,0x003b3266,0x00030005, + 0x00000070,0x00765566,0x00080005,0x00000077,0x6d616c43,0x616f4c70,0x69762864,0x69763b32, + 0x69763b32,0x00003b32,0x00050005,0x00000074,0x53785069,0x6c706d61,0x00000065,0x00050005, + 0x00000075,0x4f785069,0x65736666,0x00000074,0x00060005,0x00000076,0x78655469,0x65727574, + 0x657a6953,0x00000000,0x000a0005,0x0000007a,0x49647053,0x6572636e,0x41657361,0x696d6f74, + 0x756f4363,0x7265746e,0x3b317528,0x00000000,0x00040005,0x00000079,0x63696c73,0x00000065, + 0x00080005,0x0000007c,0x47647053,0x74417465,0x63696d6f,0x6e756f43,0x28726574,0x00000000, + 0x00090005,0x0000007f,0x52647053,0x74657365,0x6d6f7441,0x6f436369,0x65746e75,0x31752872, + 0x0000003b,0x00040005,0x0000007e,0x63696c73,0x00000065,0x00050005,0x00000083,0x706d6153, + 0x6553656c,0x00000074,0x00060006,0x00000083,0x00000000,0x6d615366,0x73656c70,0x00000000, + 0x000b0005,0x00000087,0x74726f53,0x28746553,0x75727473,0x532d7463,0x6c706d61,0x74655365, + 0x5b31662d,0x3b315d35,0x00000000,0x00040005,0x00000086,0x74655366,0x00000000,0x00160005, + 0x0000008d,0x706d6f43,0x4d657475,0x6d696e69,0x69446d75,0x72656666,0x65636e65,0x32697628, + 0x7274733b,0x2d746375,0x706d6153,0x6553656c,0x31662d74,0x315d355b,0x7274733b,0x2d746375, + 0x706d6153,0x6553656c,0x31662d74,0x315d355b,0x0000003b,0x00040005,0x0000008a,0x50785069, + 0x0000736f,0x00040005,0x0000008b,0x74655366,0x00000030,0x00040005,0x0000008c,0x74655366, + 0x00000031,0x000b0005,0x00000091,0x43746547,0x65727275,0x754c746e,0x6942616d,0x656e696c, + 0x61537261,0x656c706d,0x66762873,0x00003b32,0x00030005,0x00000090,0x00765566,0x000a0005, + 0x00000093,0x76657250,0x73756f69,0x616d754c,0x696c6942,0x7261656e,0x706d6153,0x4473656c, + 0x00617461,0x00050006,0x00000093,0x00000000,0x74655366,0x00000000,0x00080006,0x00000093, + 0x00000001,0x45734962,0x74736978,0x53676e69,0x6c706d61,0x00000065,0x000c0005,0x00000097, + 0x50746547,0x69766572,0x4c73756f,0x42616d75,0x6e696c69,0x53726165,0x6c706d61,0x76287365, + 0x763b3266,0x003b3266,0x00030005,0x00000095,0x00765566,0x00060005,0x00000096,0x746f4d66, + 0x566e6f69,0x6f746365,0x00000072,0x00090005,0x0000009d,0x706d6f43,0x44657475,0x28666669, + 0x3b326976,0x3b326676,0x3b326676,0x00000000,0x00040005,0x0000009a,0x50785069,0x0000736f, + 0x00030005,0x0000009b,0x00765566,0x00060005,0x0000009c,0x746f4d66,0x566e6f69,0x6f746365, + 0x00000072,0x00090005,0x000000a3,0x4c647053,0x5364616f,0x6372756f,0x616d4965,0x76286567, + 0x753b3266,0x00003b31,0x00040005,0x000000a1,0x50785069,0x0000736f,0x00040005,0x000000a2, + 0x63696c73,0x00000065,0x00060005,0x000000a8,0x4c647053,0x2864616f,0x3b326976,0x003b3175, + 0x00030005,0x000000a6,0x00786574,0x00040005,0x000000a7,0x63696c73,0x00000065,0x00090005, + 0x000000b0,0x52647053,0x63756465,0x76283465,0x763b3466,0x763b3466,0x763b3466,0x003b3466, + 0x00030005,0x000000ac,0x00003076,0x00030005,0x000000ad,0x00003176,0x00030005,0x000000ae, + 0x00003276,0x00030005,0x000000af,0x00003376,0x00080005,0x000000b7,0x53647053,0x65726f74, + 0x32697628,0x3466763b,0x3b31753b,0x003b3175,0x00030005,0x000000b3,0x00786970,0x00050005, + 0x000000b4,0x5674756f,0x65756c61,0x00000000,0x00040005,0x000000b5,0x65646e69,0x00000078, + 0x00040005,0x000000b6,0x63696c73,0x00000065,0x00090005,0x000000bc,0x4c647053,0x4964616f, + 0x7265746e,0x6964656d,0x28657461,0x753b3175,0x00003b31,0x00030005,0x000000ba,0x00000078, + 0x00030005,0x000000bb,0x00000079,0x000a0005,0x000000c2,0x53647053,0x65726f74,0x65746e49, + 0x64656d72,0x65746169,0x3b317528,0x763b3175,0x003b3466,0x00030005,0x000000bf,0x00000078, + 0x00030005,0x000000c0,0x00000079,0x00040005,0x000000c1,0x756c6176,0x00000065,0x000a0005, + 0x000000c4,0x53786666,0x6f576470,0x72676b72,0x5370756f,0x66667568,0x6142656c,0x65697272, + 0x00002872,0x00090005,0x000000ca,0x45647053,0x57746978,0x676b726f,0x70756f72,0x3b317528, + 0x753b3175,0x00003b31,0x00060005,0x000000c7,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00080005,0x000000c8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00040005,0x000000c9,0x63696c73,0x00000065,0x000c0005,0x000000d2,0x52647053,0x63756465, + 0x746e4965,0x656d7265,0x74616964,0x75762865,0x75763b32,0x75763b32,0x75763b32,0x00003b32, + 0x00030005,0x000000ce,0x00003069,0x00030005,0x000000cf,0x00003169,0x00030005,0x000000d0, + 0x00003269,0x00030005,0x000000d1,0x00003369,0x000b0005,0x000000da,0x52647053,0x63756465, + 0x616f4c65,0x76283464,0x763b3275,0x763b3275,0x763b3275,0x753b3275,0x00003b31,0x00030005, + 0x000000d5,0x00003069,0x00030005,0x000000d6,0x00003169,0x00030005,0x000000d7,0x00003269, + 0x00030005,0x000000d8,0x00003369,0x00040005,0x000000d9,0x63696c73,0x00000065,0x00080005, + 0x000000df,0x52647053,0x63756465,0x616f4c65,0x76283464,0x753b3275,0x00003b31,0x00040005, + 0x000000dd,0x65736162,0x00000000,0x00040005,0x000000de,0x63696c73,0x00000065,0x000e0005, + 0x000000e6,0x52647053,0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x75762834, + 0x75763b32,0x75763b32,0x75763b32,0x31753b32,0x0000003b,0x00030005,0x000000e1,0x00003069, + 0x00030005,0x000000e2,0x00003169,0x00030005,0x000000e3,0x00003269,0x00030005,0x000000e4, + 0x00003369,0x00040005,0x000000e5,0x63696c73,0x00000065,0x000b0005,0x000000ea,0x52647053, + 0x63756465,0x616f4c65,0x756f5364,0x49656372,0x6567616d,0x32757628,0x3b31753b,0x00000000, + 0x00040005,0x000000e8,0x65736162,0x00000000,0x00040005,0x000000e9,0x63696c73,0x00000065, + 0x000e0005,0x000000f3,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x444c5f31, + 0x31752853,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000ed, + 0x00000078,0x00030005,0x000000ee,0x00000079,0x00050005,0x000000ef,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x000000f0,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x000000f1,0x0070696d,0x00040005,0x000000f2,0x63696c73,0x00000065, + 0x000d0005,0x000000fb,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f305f73,0x31752831, + 0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x0000003b,0x00030005,0x000000f5,0x00000078, + 0x00030005,0x000000f6,0x00000079,0x00050005,0x000000f7,0x6b726f77,0x756f7247,0x00444970, + 0x00080005,0x000000f8,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000, + 0x00030005,0x000000f9,0x0070696d,0x00040005,0x000000fa,0x63696c73,0x00000065,0x000c0005, + 0x00000103,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7528325f,0x31753b31,0x3275763b, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x000000fd,0x00000078,0x00030005,0x000000fe, + 0x00000079,0x00050005,0x000000ff,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000100, + 0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000101, + 0x0070696d,0x00040005,0x00000102,0x63696c73,0x00000065,0x000c0005,0x0000010b,0x44647053, + 0x736e776f,0x6c706d61,0x70694d65,0x7528335f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175, + 0x00003b31,0x00030005,0x00000105,0x00000078,0x00030005,0x00000106,0x00000079,0x00050005, + 0x00000107,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000108,0x61636f6c,0x766e496c, + 0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00030005,0x00000109,0x0070696d,0x00040005, + 0x0000010a,0x63696c73,0x00000065,0x000c0005,0x00000113,0x44647053,0x736e776f,0x6c706d61, + 0x70694d65,0x7528345f,0x31753b31,0x3275763b,0x3b31753b,0x753b3175,0x00003b31,0x00030005, + 0x0000010d,0x00000078,0x00030005,0x0000010e,0x00000079,0x00050005,0x0000010f,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x00000110,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00030005,0x00000111,0x0070696d,0x00040005,0x00000112,0x63696c73, + 0x00000065,0x000b0005,0x0000011a,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x7628355f, + 0x753b3275,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x00000116,0x6b726f77,0x756f7247, + 0x00444970,0x00080005,0x00000117,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69,0x7865646e, + 0x00000000,0x00030005,0x00000118,0x0070696d,0x00040005,0x00000119,0x63696c73,0x00000065, + 0x000b0005,0x00000121,0x44647053,0x736e776f,0x6c706d61,0x70694d65,0x5f365f73,0x31752837, + 0x3b31753b,0x753b3175,0x00003b31,0x00030005,0x0000011d,0x00000078,0x00030005,0x0000011e, + 0x00000079,0x00040005,0x0000011f,0x7370696d,0x00000000,0x00040005,0x00000120,0x63696c73, + 0x00000065,0x000e0005,0x0000012b,0x44647053,0x736e776f,0x6c706d61,0x78654e65,0x756f4674, + 0x31752872,0x3b31753b,0x3b327576,0x753b3175,0x31753b31,0x3b31753b,0x00000000,0x00030005, + 0x00000124,0x00000078,0x00030005,0x00000125,0x00000079,0x00050005,0x00000126,0x6b726f77, + 0x756f7247,0x00444970,0x00080005,0x00000127,0x61636f6c,0x766e496c,0x7461636f,0x496e6f69, + 0x7865646e,0x00000000,0x00040005,0x00000128,0x65736162,0x0070694d,0x00040005,0x00000129, + 0x7370696d,0x00000000,0x00040005,0x0000012a,0x63696c73,0x00000065,0x000a0005,0x00000133, + 0x44647053,0x736e776f,0x6c706d61,0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x00003b31, + 0x00050005,0x0000012e,0x6b726f77,0x756f7247,0x00444970,0x00080005,0x0000012f,0x61636f6c, + 0x766e496c,0x7461636f,0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000130,0x7370696d, + 0x00000000,0x00060005,0x00000131,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005, + 0x00000132,0x63696c73,0x00000065,0x000b0005,0x0000013c,0x44647053,0x736e776f,0x6c706d61, + 0x75762865,0x31753b32,0x3b31753b,0x753b3175,0x75763b31,0x00003b32,0x00050005,0x00000136, + 0x6b726f77,0x756f7247,0x00444970,0x00080005,0x00000137,0x61636f6c,0x766e496c,0x7461636f, + 0x496e6f69,0x7865646e,0x00000000,0x00040005,0x00000138,0x7370696d,0x00000000,0x00060005, + 0x00000139,0x576d756e,0x476b726f,0x70756f72,0x00000073,0x00040005,0x0000013a,0x63696c73, + 0x00000065,0x00060005,0x0000013b,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x000b0005, + 0x00000143,0x706d6f43,0x53657475,0x69646168,0x6843676e,0x65676e61,0x61727950,0x2864696d, + 0x3b337576,0x003b3175,0x00050005,0x00000141,0x6b726f57,0x756f7247,0x00644970,0x00070005, + 0x00000142,0x61636f4c,0x7268546c,0x49646165,0x7865646e,0x00000000,0x00040005,0x00000170, + 0x61726170,0x0000006d,0x00040005,0x00000172,0x61726170,0x0000006d,0x00040005,0x00000173, + 0x61726170,0x0000006d,0x00040005,0x00000176,0x61726170,0x0000006d,0x00040005,0x00000177, + 0x61726170,0x0000006d,0x00040005,0x00000179,0x61726170,0x0000006d,0x00040005,0x0000017b, + 0x61726170,0x0000006d,0x00040005,0x0000017d,0x61726170,0x0000006d,0x00040005,0x0000017e, + 0x61726170,0x0000006d,0x00040005,0x00000180,0x61726170,0x0000006d,0x00040005,0x00000182, + 0x61726170,0x0000006d,0x00040005,0x00000183,0x61726170,0x0000006d,0x00040005,0x00000185, + 0x61726170,0x0000006d,0x00040005,0x00000186,0x61726170,0x0000006d,0x00040005,0x00000187, + 0x61726170,0x0000006d,0x00070005,0x0000018c,0x53466263,0x50553352,0x4c414353,0x745f5245, + 0x00000000,0x00060006,0x0000018c,0x00000000,0x6e655269,0x53726564,0x00657a69,0x000a0006, + 0x0000018c,0x00000001,0x65725069,0x756f6976,0x61724673,0x6552656d,0x7265646e,0x657a6953, + 0x00000000,0x00070006,0x0000018c,0x00000002,0x73705569,0x656c6163,0x657a6953,0x00000000, + 0x000a0006,0x0000018c,0x00000003,0x65725069,0x756f6976,0x61724673,0x7055656d,0x6c616373, + 0x7a695365,0x00000065,0x00070006,0x0000018c,0x00000004,0x78614d69,0x646e6552,0x69537265, + 0x0000657a,0x00070006,0x0000018c,0x00000005,0x78614d69,0x63737055,0x53656c61,0x00657a69, + 0x00080006,0x0000018c,0x00000006,0x76654466,0x54656369,0x6569566f,0x70654477,0x00006874, + 0x00050006,0x0000018c,0x00000007,0x74694a66,0x00726574,0x00090006,0x0000018c,0x00000008, + 0x65725066,0x756f6976,0x61724673,0x694a656d,0x72657474,0x00000000,0x00080006,0x0000018c, + 0x00000009,0x746f4d66,0x566e6f69,0x6f746365,0x61635372,0x0000656c,0x00080006,0x0000018c, + 0x0000000a,0x776f4466,0x6163736e,0x6146656c,0x726f7463,0x00000000,0x000b0006,0x0000018c, + 0x0000000b,0x746f4d66,0x566e6f69,0x6f746365,0x74694a72,0x43726574,0x65636e61,0x74616c6c, + 0x006e6f69,0x00060006,0x0000018c,0x0000000c,0x6e615466,0x666c6148,0x00564f46,0x00090006, + 0x0000018c,0x0000000d,0x74694a66,0x53726574,0x65757165,0x4c65636e,0x74676e65,0x00000068, + 0x00060006,0x0000018c,0x0000000e,0x6c654466,0x69546174,0x0000656d,0x00080006,0x0000018c, + 0x0000000f,0x6c654466,0x72506174,0x70784565,0x7275736f,0x00000065,0x000a0006,0x0000018c, + 0x00000010,0x65695666,0x61705377,0x6f546563,0x6574654d,0x61467372,0x726f7463,0x00000000, + 0x00060006,0x0000018c,0x00000011,0x61724666,0x6e49656d,0x00786564,0x00070006,0x0000018c, + 0x00000012,0x6c655666,0x7469636f,0x63614679,0x00726f74,0x00080006,0x0000018c,0x00000013, + 0x61655266,0x76697463,0x73656e65,0x61635373,0x0000656c,0x00080006,0x0000018c,0x00000014, + 0x61685366,0x676e6964,0x6e616843,0x63536567,0x00656c61,0x000a0006,0x0000018c,0x00000015, + 0x63634166,0x6c756d75,0x6f697461,0x6464416e,0x65506465,0x61724672,0x0000656d,0x000b0006, + 0x0000018c,0x00000016,0x6e694d66,0x6f736944,0x756c6363,0x6e6f6973,0x75636341,0x616c756d, + 0x6e6f6974,0x00000000,0x00060005,0x0000018e,0x53466263,0x70553352,0x6c616373,0x00007265, + 0x00040005,0x000001aa,0x50536263,0x00745f44,0x00050006,0x000001aa,0x00000000,0x7370696d, + 0x00000000,0x00070006,0x000001aa,0x00000001,0x576d756e,0x476b726f,0x70756f72,0x00000073, + 0x00070006,0x000001aa,0x00000002,0x6b726f77,0x756f7247,0x66664f70,0x00746573,0x00060006, + 0x000001aa,0x00000003,0x646e6572,0x69537265,0x0000657a,0x00040005,0x000001ac,0x50536263, + 0x00000044,0x00060005,0x000001be,0x75635f72,0x6e657272,0x756c5f74,0x0000616d,0x00060005, + 0x000001c6,0x72705f72,0x6f697665,0x6c5f7375,0x00616d75,0x00090005,0x000001cd,0x69645f72, + 0x6574616c,0x6f6d5f64,0x6e6f6974,0x6365765f,0x73726f74,0x00000000,0x00050005,0x000001d4, + 0x6f707865,0x65727573,0x00000000,0x00070005,0x000001d5,0x6e695f72,0x5f747570,0x6f707865, + 0x65727573,0x00000000,0x00050005,0x000001e9,0x735f7772,0x6d5f6470,0x00307069,0x00050005, + 0x000001f3,0x735f7772,0x6d5f6470,0x00317069,0x00050005,0x000001fd,0x735f7772,0x6d5f6470, + 0x00327069,0x00050005,0x00000207,0x735f7772,0x6d5f6470,0x00337069,0x00050005,0x00000212, + 0x735f7772,0x6d5f6470,0x00347069,0x00050005,0x0000021c,0x735f7772,0x6d5f6470,0x00357069, + 0x00080005,0x00000263,0x735f7772,0x675f6470,0x61626f6c,0x74615f6c,0x63696d6f,0x00000000, + 0x00030005,0x0000026a,0x0000006d,0x00040005,0x0000026b,0x61726170,0x0000006d,0x00040005, + 0x0000026c,0x61726170,0x0000006d,0x00040005,0x00000273,0x61726170,0x0000006d,0x00040005, + 0x00000274,0x61726170,0x0000006d,0x00040005,0x00000293,0x75736572,0x0000746c,0x00040005, + 0x0000029a,0x61726170,0x0000006d,0x00040005,0x0000029d,0x61726170,0x0000006d,0x00040005, + 0x0000029f,0x61726170,0x0000006d,0x00040005,0x000002a0,0x61726170,0x0000006d,0x00040005, + 0x000002a6,0x61726170,0x0000006d,0x00040005,0x000002a9,0x61726170,0x0000006d,0x00040005, + 0x000002ab,0x61726170,0x0000006d,0x00040005,0x000002ac,0x61726170,0x0000006d,0x00050005, + 0x000002b3,0x43647073,0x746e756f,0x00007265,0x00040005,0x000002b4,0x61726170,0x0000006d, + 0x00040005,0x000002bc,0x706d5466,0x00000000,0x00040005,0x000002be,0x61726170,0x0000006d, + 0x00040005,0x000002c1,0x61726170,0x0000006d,0x00040005,0x000002c5,0x61726170,0x0000006d, + 0x00040005,0x000002c8,0x61726170,0x0000006d,0x00040005,0x000002cf,0x706d5466,0x00000000, + 0x00040005,0x000002d1,0x61726170,0x0000006d,0x00040005,0x000002d4,0x61726170,0x0000006d, + 0x00040005,0x000002d8,0x61726170,0x0000006d,0x00040005,0x000002db,0x61726170,0x0000006d, + 0x00040005,0x000002e2,0x706d5466,0x00000000,0x00040005,0x000002e3,0x61726170,0x0000006d, + 0x00040005,0x000002e6,0x61726170,0x0000006d,0x00040005,0x000002ea,0x61726170,0x0000006d, + 0x00040005,0x000002ed,0x61726170,0x0000006d,0x00040005,0x000002f4,0x706d5466,0x00000000, + 0x00040005,0x000002f5,0x61726170,0x0000006d,0x00040005,0x000002f8,0x61726170,0x0000006d, + 0x00040005,0x000002fc,0x61726170,0x0000006d,0x00040005,0x000002ff,0x61726170,0x0000006d, + 0x00040005,0x00000306,0x706d5466,0x00000000,0x00040005,0x00000307,0x61726170,0x0000006d, + 0x00040005,0x0000030a,0x61726170,0x0000006d,0x00040005,0x0000030e,0x61726170,0x0000006d, + 0x00040005,0x00000311,0x61726170,0x0000006d,0x00040005,0x00000318,0x706d5466,0x00000000, + 0x00040005,0x00000319,0x61726170,0x0000006d,0x00040005,0x0000031c,0x61726170,0x0000006d, + 0x00040005,0x00000320,0x61726170,0x0000006d,0x00040005,0x00000323,0x61726170,0x0000006d, + 0x00040005,0x0000032a,0x706d5466,0x00000000,0x00040005,0x0000032b,0x61726170,0x0000006d, + 0x00040005,0x0000032e,0x61726170,0x0000006d,0x00040005,0x00000332,0x61726170,0x0000006d, + 0x00040005,0x00000335,0x61726170,0x0000006d,0x00040005,0x0000033c,0x706d5466,0x00000000, + 0x00040005,0x0000033d,0x61726170,0x0000006d,0x00040005,0x00000340,0x61726170,0x0000006d, + 0x00040005,0x00000344,0x61726170,0x0000006d,0x00040005,0x00000347,0x61726170,0x0000006d, + 0x00040005,0x0000034e,0x706d5466,0x00000000,0x00040005,0x0000034f,0x61726170,0x0000006d, + 0x00040005,0x00000352,0x61726170,0x0000006d,0x00040005,0x00000356,0x61726170,0x0000006d, + 0x00040005,0x00000359,0x61726170,0x0000006d,0x00050005,0x00000360,0x6e694d66,0x66666944, + 0x00000000,0x00030005,0x00000362,0x00000061,0x00030005,0x00000363,0x00000062,0x00040005, + 0x00000364,0x61726170,0x0000006d,0x00040005,0x00000368,0x61726170,0x0000006d,0x00040005, + 0x0000036c,0x78614d66,0x00000000,0x00040005,0x0000036d,0x61726170,0x0000006d,0x00040005, + 0x00000370,0x61726170,0x0000006d,0x00030005,0x00000379,0x00000069,0x00040005,0x00000386, + 0x66694466,0x00000066,0x00050005,0x000003c5,0x4a765566,0x65747469,0x00646572,0x00050005, + 0x000003cc,0x73614269,0x736f5065,0x00000000,0x00060005,0x000003d3,0x6d615369,0x49656c70, + 0x7865646e,0x00000000,0x00050005,0x000003db,0x6d615369,0x50656c70,0x0000736f,0x00040005, + 0x000003e5,0x61726170,0x0000006d,0x00040005,0x000003e7,0x61726170,0x0000006d,0x00050005, + 0x000003e9,0x65646e69,0x6c626178,0x00000065,0x00040005,0x000003ec,0x61726170,0x0000006d, + 0x00040005,0x000003ee,0x74655366,0x00000000,0x00040005,0x000003f0,0x61726170,0x0000006d, + 0x00040005,0x000003f8,0x61726170,0x0000006d,0x00040005,0x000003fb,0x61726170,0x0000006d, + 0x00040005,0x00000400,0x61726170,0x0000006d,0x00040005,0x00000403,0x61726170,0x0000006d, + 0x00050005,0x0000040b,0x4a765566,0x65747469,0x00646572,0x00060005,0x00000412,0x70655266, + 0x656a6f72,0x64657463,0x00007655,0x00040005,0x00000417,0x61746164,0x00000000,0x00040005, + 0x00000418,0x61726170,0x0000006d,0x00050005,0x00000421,0x73614269,0x736f5065,0x00000000, + 0x00060005,0x00000428,0x6d615369,0x49656c70,0x7865646e,0x00000000,0x00050005,0x00000430, + 0x6d615369,0x50656c70,0x0000736f,0x00040005,0x00000433,0x61726170,0x0000006d,0x00040005, + 0x00000435,0x61726170,0x0000006d,0x00050005,0x00000436,0x65646e69,0x6c626178,0x00000065, + 0x00040005,0x00000439,0x61726170,0x0000006d,0x00040005,0x0000043c,0x61726170,0x0000006d, + 0x00040005,0x00000446,0x61726170,0x0000006d,0x00040005,0x00000449,0x61726170,0x0000006d, + 0x00040005,0x0000044e,0x61726170,0x0000006d,0x00040005,0x00000451,0x61726170,0x0000006d, + 0x00050005,0x00000459,0x6e694d66,0x66666944,0x00000000,0x00060005,0x0000045a,0x72754366, + 0x746e6572,0x706d6153,0x0073656c,0x00040005,0x0000045b,0x61726170,0x0000006d,0x00060005, + 0x0000045e,0x76657270,0x73756f69,0x61746144,0x00000000,0x00040005,0x0000045f,0x61726170, + 0x0000006d,0x00040005,0x00000461,0x61726170,0x0000006d,0x00040005,0x00000468,0x61726170, + 0x0000006d,0x00040005,0x0000046a,0x61726170,0x0000006d,0x00040005,0x0000046c,0x61726170, + 0x0000006d,0x00060005,0x00000473,0x53785069,0x6c706d61,0x736f5065,0x00000000,0x00040005, + 0x00000477,0x61726170,0x0000006d,0x00040005,0x00000478,0x61726170,0x0000006d,0x00040005, + 0x00000479,0x61726170,0x0000006d,0x00080005,0x0000047b,0x6c694466,0x64657461,0x69746f4d, + 0x65566e6f,0x726f7463,0x00000000,0x00040005,0x0000047c,0x61726170,0x0000006d,0x00030005, + 0x0000047f,0x00765566,0x00090005,0x00000488,0x61635366,0x4164656c,0x6953646e,0x64656e67, + 0x616d754c,0x66666944,0x00000000,0x00040005,0x00000489,0x61726170,0x0000006d,0x00040005, + 0x0000048b,0x61726170,0x0000006d,0x00040005,0x0000048d,0x61726170,0x0000006d,0x00040005, + 0x00000490,0x74754f66,0x00747570,0x00040005,0x000004a2,0x61726170,0x0000006d,0x00040005, + 0x000004a4,0x61726170,0x0000006d,0x00040005,0x000004ba,0x61726170,0x0000006d,0x00040005, + 0x000004bc,0x61726170,0x0000006d,0x00040005,0x000004bf,0x61726170,0x0000006d,0x00070005, + 0x000004c6,0x49647073,0x7265746e,0x6964656d,0x52657461,0x00000000,0x00070005,0x000004cc, + 0x49647073,0x7265746e,0x6964656d,0x47657461,0x00000000,0x00070005,0x000004d1,0x49647073, + 0x7265746e,0x6964656d,0x42657461,0x00000000,0x00070005,0x000004d6,0x49647073,0x7265746e, + 0x6964656d,0x41657461,0x00000000,0x00040005,0x000004f8,0x61726170,0x0000006d,0x00030005, + 0x00000502,0x00003076,0x00040005,0x00000503,0x61726170,0x0000006d,0x00040005,0x00000506, + 0x61726170,0x0000006d,0x00030005,0x0000050a,0x00003176,0x00040005,0x0000050b,0x61726170, + 0x0000006d,0x00040005,0x0000050e,0x61726170,0x0000006d,0x00030005,0x00000512,0x00003276, + 0x00040005,0x00000513,0x61726170,0x0000006d,0x00040005,0x00000516,0x61726170,0x0000006d, + 0x00030005,0x0000051a,0x00003376,0x00040005,0x0000051b,0x61726170,0x0000006d,0x00040005, + 0x0000051e,0x61726170,0x0000006d,0x00040005,0x00000522,0x61726170,0x0000006d,0x00040005, + 0x00000524,0x61726170,0x0000006d,0x00040005,0x00000526,0x61726170,0x0000006d,0x00040005, + 0x00000528,0x61726170,0x0000006d,0x00030005,0x0000052d,0x00003076,0x00040005,0x00000530, + 0x61726170,0x0000006d,0x00040005,0x00000531,0x61726170,0x0000006d,0x00030005,0x00000534, + 0x00003176,0x00040005,0x00000537,0x61726170,0x0000006d,0x00040005,0x00000538,0x61726170, + 0x0000006d,0x00030005,0x0000053b,0x00003276,0x00040005,0x0000053e,0x61726170,0x0000006d, + 0x00040005,0x0000053f,0x61726170,0x0000006d,0x00030005,0x00000542,0x00003376,0x00040005, + 0x00000545,0x61726170,0x0000006d,0x00040005,0x00000546,0x61726170,0x0000006d,0x00040005, + 0x00000549,0x61726170,0x0000006d,0x00040005,0x0000054b,0x61726170,0x0000006d,0x00040005, + 0x0000054d,0x61726170,0x0000006d,0x00040005,0x0000054f,0x61726170,0x0000006d,0x00040005, + 0x00000560,0x61726170,0x0000006d,0x00040005,0x00000561,0x61726170,0x0000006d,0x00040005, + 0x00000562,0x61726170,0x0000006d,0x00040005,0x00000563,0x61726170,0x0000006d,0x00040005, + 0x00000564,0x61726170,0x0000006d,0x00030005,0x00000569,0x00003076,0x00040005,0x0000056d, + 0x61726170,0x0000006d,0x00040005,0x0000056e,0x61726170,0x0000006d,0x00030005,0x00000571, + 0x00003176,0x00040005,0x00000575,0x61726170,0x0000006d,0x00040005,0x00000576,0x61726170, + 0x0000006d,0x00030005,0x00000579,0x00003276,0x00040005,0x0000057d,0x61726170,0x0000006d, + 0x00040005,0x0000057e,0x61726170,0x0000006d,0x00030005,0x00000581,0x00003376,0x00040005, + 0x00000585,0x61726170,0x0000006d,0x00040005,0x00000586,0x61726170,0x0000006d,0x00040005, + 0x00000589,0x61726170,0x0000006d,0x00040005,0x0000058b,0x61726170,0x0000006d,0x00040005, + 0x0000058d,0x61726170,0x0000006d,0x00040005,0x0000058f,0x61726170,0x0000006d,0x00040005, + 0x0000059c,0x61726170,0x0000006d,0x00040005,0x0000059d,0x61726170,0x0000006d,0x00040005, + 0x0000059e,0x61726170,0x0000006d,0x00040005,0x0000059f,0x61726170,0x0000006d,0x00040005, + 0x000005a0,0x61726170,0x0000006d,0x00030005,0x000005a5,0x00786574,0x00030005,0x000005b3, + 0x00786970,0x00030005,0x000005c1,0x00000076,0x00040005,0x000005c4,0x61726170,0x0000006d, + 0x00040005,0x000005c5,0x61726170,0x0000006d,0x00040005,0x000005c9,0x61726170,0x0000006d, + 0x00040005,0x000005cb,0x61726170,0x0000006d,0x00040005,0x000005ce,0x61726170,0x0000006d, + 0x00040005,0x000005cf,0x61726170,0x0000006d,0x00040005,0x000005ec,0x61726170,0x0000006d, + 0x00040005,0x000005ed,0x61726170,0x0000006d,0x00040005,0x000005f1,0x61726170,0x0000006d, + 0x00040005,0x000005f3,0x61726170,0x0000006d,0x00040005,0x000005f6,0x61726170,0x0000006d, + 0x00040005,0x000005f7,0x61726170,0x0000006d,0x00040005,0x00000614,0x61726170,0x0000006d, + 0x00040005,0x00000615,0x61726170,0x0000006d,0x00040005,0x00000619,0x61726170,0x0000006d, + 0x00040005,0x0000061b,0x61726170,0x0000006d,0x00040005,0x0000061e,0x61726170,0x0000006d, + 0x00040005,0x0000061f,0x61726170,0x0000006d,0x00040005,0x0000063e,0x61726170,0x0000006d, + 0x00040005,0x0000063f,0x61726170,0x0000006d,0x00040005,0x00000643,0x61726170,0x0000006d, + 0x00040005,0x00000645,0x61726170,0x0000006d,0x00040005,0x00000648,0x61726170,0x0000006d, + 0x00040005,0x00000649,0x61726170,0x0000006d,0x00030005,0x00000651,0x00000069,0x00040005, + 0x0000065a,0x61726170,0x0000006d,0x00040005,0x0000065c,0x61726170,0x0000006d,0x00040005, + 0x0000065e,0x61726170,0x0000006d,0x00040005,0x00000684,0x61726170,0x0000006d,0x00040005, + 0x00000685,0x61726170,0x0000006d,0x00040005,0x00000686,0x61726170,0x0000006d,0x00040005, + 0x00000687,0x61726170,0x0000006d,0x00040005,0x0000069e,0x61726170,0x0000006d,0x00040005, + 0x0000069f,0x61726170,0x0000006d,0x00040005,0x000006a2,0x61726170,0x0000006d,0x00040005, + 0x000006a3,0x61726170,0x0000006d,0x00040005,0x000006b1,0x61726170,0x0000006d,0x00040005, + 0x000006b2,0x61726170,0x0000006d,0x00040005,0x000006b3,0x61726170,0x0000006d,0x00040005, + 0x000006bb,0x61726170,0x0000006d,0x00040005,0x000006bc,0x61726170,0x0000006d,0x00040005, + 0x000006bd,0x61726170,0x0000006d,0x00040005,0x000006c5,0x61726170,0x0000006d,0x00040005, + 0x000006c6,0x61726170,0x0000006d,0x00040005,0x000006c7,0x61726170,0x0000006d,0x00040005, + 0x000006cf,0x61726170,0x0000006d,0x00040005,0x000006d0,0x61726170,0x0000006d,0x00040005, + 0x000006d1,0x61726170,0x0000006d,0x00040005,0x000006d5,0x61726170,0x0000006d,0x00040005, + 0x000006d7,0x61726170,0x0000006d,0x00040005,0x000006d9,0x61726170,0x0000006d,0x00040005, + 0x000006db,0x61726170,0x0000006d,0x00040005,0x000006dd,0x61726170,0x0000006d,0x00040005, + 0x000006df,0x61726170,0x0000006d,0x00030005,0x000006e6,0x00000076,0x00040005,0x00000703, + 0x61726170,0x0000006d,0x00040005,0x00000704,0x61726170,0x0000006d,0x00040005,0x00000705, + 0x61726170,0x0000006d,0x00040005,0x00000706,0x61726170,0x0000006d,0x00040005,0x00000712, + 0x61726170,0x0000006d,0x00040005,0x00000713,0x61726170,0x0000006d,0x00040005,0x00000715, + 0x61726170,0x0000006d,0x00040005,0x00000717,0x61726170,0x0000006d,0x00040005,0x00000721, + 0x61726170,0x0000006d,0x00040005,0x00000722,0x61726170,0x0000006d,0x00040005,0x00000723, + 0x61726170,0x0000006d,0x00030005,0x0000072a,0x00000076,0x00040005,0x0000074b,0x61726170, + 0x0000006d,0x00040005,0x0000074c,0x61726170,0x0000006d,0x00040005,0x0000074d,0x61726170, + 0x0000006d,0x00040005,0x0000074e,0x61726170,0x0000006d,0x00040005,0x0000075a,0x61726170, + 0x0000006d,0x00040005,0x0000075b,0x61726170,0x0000006d,0x00040005,0x0000075d,0x61726170, + 0x0000006d,0x00040005,0x0000075f,0x61726170,0x0000006d,0x00040005,0x00000768,0x61726170, + 0x0000006d,0x00040005,0x00000769,0x61726170,0x0000006d,0x00040005,0x0000076a,0x61726170, + 0x0000006d,0x00030005,0x00000771,0x00000076,0x00040005,0x0000079e,0x61726170,0x0000006d, + 0x00040005,0x0000079f,0x61726170,0x0000006d,0x00040005,0x000007a0,0x61726170,0x0000006d, + 0x00040005,0x000007a1,0x61726170,0x0000006d,0x00040005,0x000007ad,0x61726170,0x0000006d, + 0x00040005,0x000007ae,0x61726170,0x0000006d,0x00040005,0x000007b0,0x61726170,0x0000006d, + 0x00040005,0x000007b2,0x61726170,0x0000006d,0x00040005,0x000007b9,0x61726170,0x0000006d, + 0x00040005,0x000007ba,0x61726170,0x0000006d,0x00040005,0x000007bb,0x61726170,0x0000006d, + 0x00030005,0x000007c2,0x00000076,0x00040005,0x000007c5,0x61726170,0x0000006d,0x00040005, + 0x000007c6,0x61726170,0x0000006d,0x00040005,0x000007c7,0x61726170,0x0000006d,0x00040005, + 0x000007c8,0x61726170,0x0000006d,0x00040005,0x000007cc,0x61726170,0x0000006d,0x00040005, + 0x000007cd,0x61726170,0x0000006d,0x00040005,0x000007cf,0x61726170,0x0000006d,0x00040005, + 0x000007d1,0x61726170,0x0000006d,0x00030005,0x000007d4,0x00786574,0x00030005,0x000007de, + 0x00786970,0x00030005,0x000007e8,0x00003076,0x00040005,0x000007eb,0x61726170,0x0000006d, + 0x00040005,0x000007ec,0x61726170,0x0000006d,0x00040005,0x000007f0,0x61726170,0x0000006d, + 0x00040005,0x000007f2,0x61726170,0x0000006d,0x00040005,0x000007f4,0x61726170,0x0000006d, + 0x00040005,0x000007f5,0x61726170,0x0000006d,0x00030005,0x0000080a,0x00003176,0x00040005, + 0x0000080d,0x61726170,0x0000006d,0x00040005,0x0000080e,0x61726170,0x0000006d,0x00040005, + 0x00000811,0x61726170,0x0000006d,0x00040005,0x00000813,0x61726170,0x0000006d,0x00040005, + 0x00000815,0x61726170,0x0000006d,0x00040005,0x00000816,0x61726170,0x0000006d,0x00030005, + 0x0000082b,0x00003276,0x00040005,0x0000082e,0x61726170,0x0000006d,0x00040005,0x0000082f, + 0x61726170,0x0000006d,0x00040005,0x00000832,0x61726170,0x0000006d,0x00040005,0x00000834, + 0x61726170,0x0000006d,0x00040005,0x00000836,0x61726170,0x0000006d,0x00040005,0x00000837, + 0x61726170,0x0000006d,0x00030005,0x0000084c,0x00003376,0x00040005,0x0000084f,0x61726170, + 0x0000006d,0x00040005,0x00000850,0x61726170,0x0000006d,0x00040005,0x00000853,0x61726170, + 0x0000006d,0x00040005,0x00000855,0x61726170,0x0000006d,0x00040005,0x00000857,0x61726170, + 0x0000006d,0x00040005,0x00000858,0x61726170,0x0000006d,0x00030005,0x00000861,0x00000076, + 0x00040005,0x00000862,0x61726170,0x0000006d,0x00040005,0x00000864,0x61726170,0x0000006d, + 0x00040005,0x00000866,0x61726170,0x0000006d,0x00040005,0x00000868,0x61726170,0x0000006d, + 0x00040005,0x00000870,0x61726170,0x0000006d,0x00040005,0x00000871,0x61726170,0x0000006d, + 0x00040005,0x00000873,0x61726170,0x0000006d,0x00040005,0x00000874,0x61726170,0x0000006d, + 0x00040005,0x00000877,0x61726170,0x0000006d,0x00040005,0x00000879,0x61726170,0x0000006d, + 0x00040005,0x0000087b,0x61726170,0x0000006d,0x00040005,0x00000885,0x61726170,0x0000006d, + 0x00040005,0x00000887,0x61726170,0x0000006d,0x00040005,0x00000889,0x61726170,0x0000006d, + 0x00040005,0x0000088b,0x61726170,0x0000006d,0x00040005,0x0000088d,0x61726170,0x0000006d, + 0x00040005,0x0000088f,0x61726170,0x0000006d,0x00040005,0x0000089c,0x61726170,0x0000006d, + 0x00040005,0x0000089e,0x61726170,0x0000006d,0x00040005,0x000008a0,0x61726170,0x0000006d, + 0x00040005,0x000008a2,0x61726170,0x0000006d,0x00040005,0x000008a4,0x61726170,0x0000006d, + 0x00040005,0x000008a5,0x61726170,0x0000006d,0x00040005,0x000008b2,0x61726170,0x0000006d, + 0x00040005,0x000008b4,0x61726170,0x0000006d,0x00040005,0x000008b6,0x61726170,0x0000006d, + 0x00040005,0x000008b8,0x61726170,0x0000006d,0x00040005,0x000008ba,0x61726170,0x0000006d, + 0x00040005,0x000008bb,0x61726170,0x0000006d,0x00040005,0x000008c8,0x61726170,0x0000006d, + 0x00040005,0x000008ca,0x61726170,0x0000006d,0x00040005,0x000008cc,0x61726170,0x0000006d, + 0x00040005,0x000008cd,0x61726170,0x0000006d,0x00040005,0x000008d0,0x5f627573,0x00007978, + 0x00040005,0x000008d3,0x61726170,0x0000006d,0x00030005,0x000008d5,0x00000078,0x00030005, + 0x000008de,0x00000079,0x00040005,0x000008e5,0x61726170,0x0000006d,0x00040005,0x000008e7, + 0x61726170,0x0000006d,0x00040005,0x000008e9,0x61726170,0x0000006d,0x00040005,0x000008eb, + 0x61726170,0x0000006d,0x00040005,0x000008ed,0x61726170,0x0000006d,0x00040005,0x000008ef, + 0x61726170,0x0000006d,0x00040005,0x000008f2,0x61726170,0x0000006d,0x00040005,0x000008f4, + 0x61726170,0x0000006d,0x00040005,0x000008f6,0x61726170,0x0000006d,0x00040005,0x000008f8, + 0x61726170,0x0000006d,0x00040005,0x000008fa,0x61726170,0x0000006d,0x00040005,0x000008fb, + 0x61726170,0x0000006d,0x00040005,0x000008fd,0x61726170,0x0000006d,0x00040005,0x00000905, + 0x61726170,0x0000006d,0x00040005,0x00000907,0x61726170,0x0000006d,0x00040005,0x00000909, + 0x61726170,0x0000006d,0x00040005,0x0000090f,0x61726170,0x0000006d,0x00040005,0x00000912, + 0x61726170,0x0000006d,0x00040005,0x00000914,0x61726170,0x0000006d,0x00040005,0x00000916, + 0x61726170,0x0000006d,0x00040005,0x00000918,0x61726170,0x0000006d,0x00040005,0x0000091b, + 0x61726170,0x0000006d,0x00040005,0x0000091d,0x61726170,0x0000006d,0x00040005,0x0000091f, + 0x61726170,0x0000006d,0x00040005,0x00000920,0x61726170,0x0000006d,0x00040005,0x00000922, + 0x61726170,0x0000006d,0x00040005,0x00000923,0x61726170,0x0000006d,0x00040005,0x00000925, + 0x61726170,0x0000006d,0x00040005,0x0000092b,0x61726170,0x0000006d,0x00040005,0x0000092c, + 0x61726170,0x0000006d,0x00040005,0x0000092e,0x61726170,0x0000006d,0x00040005,0x00000930, + 0x61726170,0x0000006d,0x00040005,0x00000932,0x61726170,0x0000006d,0x00040005,0x0000093d, + 0x61726170,0x0000006d,0x00040005,0x0000093e,0x61726170,0x0000006d,0x00040005,0x0000093f, + 0x61726170,0x0000006d,0x00040005,0x00000940,0x61726170,0x0000006d,0x00040005,0x00000941, + 0x61726170,0x0000006d,0x00040005,0x00000942,0x61726170,0x0000006d,0x00060005,0x00000945, + 0x575f6c67,0x476b726f,0x70756f72,0x00004449,0x00080005,0x00000947,0x4c5f6c67,0x6c61636f, + 0x6f766e49,0x69746163,0x6e496e6f,0x00786564,0x00040005,0x00000948,0x61726170,0x0000006d, + 0x00040005,0x0000094a,0x61726170,0x0000006d,0x00060005,0x00000950,0x6f505f73,0x43746e69, + 0x706d616c,0x00000000,0x00060005,0x00000951,0x694c5f73,0x7261656e,0x6d616c43,0x00000070, + 0x00030047,0x0000018c,0x00000002,0x00050048,0x0000018c,0x00000000,0x00000023,0x00000000, + 0x00050048,0x0000018c,0x00000001,0x00000023,0x00000008,0x00050048,0x0000018c,0x00000002, + 0x00000023,0x00000010,0x00050048,0x0000018c,0x00000003,0x00000023,0x00000018,0x00050048, + 0x0000018c,0x00000004,0x00000023,0x00000020,0x00050048,0x0000018c,0x00000005,0x00000023, + 0x00000028,0x00050048,0x0000018c,0x00000006,0x00000023,0x00000030,0x00050048,0x0000018c, + 0x00000007,0x00000023,0x00000040,0x00050048,0x0000018c,0x00000008,0x00000023,0x00000048, + 0x00050048,0x0000018c,0x00000009,0x00000023,0x00000050,0x00050048,0x0000018c,0x0000000a, + 0x00000023,0x00000058,0x00050048,0x0000018c,0x0000000b,0x00000023,0x00000060,0x00050048, + 0x0000018c,0x0000000c,0x00000023,0x00000068,0x00050048,0x0000018c,0x0000000d,0x00000023, + 0x0000006c,0x00050048,0x0000018c,0x0000000e,0x00000023,0x00000070,0x00050048,0x0000018c, + 0x0000000f,0x00000023,0x00000074,0x00050048,0x0000018c,0x00000010,0x00000023,0x00000078, + 0x00050048,0x0000018c,0x00000011,0x00000023,0x0000007c,0x00050048,0x0000018c,0x00000012, + 0x00000023,0x00000080,0x00050048,0x0000018c,0x00000013,0x00000023,0x00000084,0x00050048, + 0x0000018c,0x00000014,0x00000023,0x00000088,0x00050048,0x0000018c,0x00000015,0x00000023, + 0x0000008c,0x00050048,0x0000018c,0x00000016,0x00000023,0x00000090,0x00040047,0x0000018e, + 0x00000021,0x0000000b,0x00040047,0x0000018e,0x00000022,0x00000000,0x00030047,0x000001aa, + 0x00000002,0x00050048,0x000001aa,0x00000000,0x00000023,0x00000000,0x00050048,0x000001aa, + 0x00000001,0x00000023,0x00000004,0x00050048,0x000001aa,0x00000002,0x00000023,0x00000008, + 0x00050048,0x000001aa,0x00000003,0x00000023,0x00000010,0x00040047,0x000001ac,0x00000021, + 0x0000000c,0x00040047,0x000001ac,0x00000022,0x00000000,0x00040047,0x000001be,0x00000021, + 0x00000000,0x00040047,0x000001be,0x00000022,0x00000000,0x00040047,0x000001c6,0x00000021, + 0x00000001,0x00040047,0x000001c6,0x00000022,0x00000000,0x00040047,0x000001cd,0x00000021, + 0x00000002,0x00040047,0x000001cd,0x00000022,0x00000000,0x00040047,0x000001d5,0x00000021, + 0x00000003,0x00040047,0x000001d5,0x00000022,0x00000000,0x00040047,0x000001e9,0x00000021, + 0x00000005,0x00040047,0x000001e9,0x00000022,0x00000000,0x00040047,0x000001f3,0x00000021, + 0x00000006,0x00040047,0x000001f3,0x00000022,0x00000000,0x00040047,0x000001fd,0x00000021, + 0x00000007,0x00040047,0x000001fd,0x00000022,0x00000000,0x00040047,0x00000207,0x00000021, + 0x00000008,0x00040047,0x00000207,0x00000022,0x00000000,0x00040047,0x00000212,0x00000021, + 0x00000009,0x00040047,0x00000212,0x00000022,0x00000000,0x00030047,0x0000021c,0x00000017, + 0x00040047,0x0000021c,0x00000021,0x0000000a,0x00040047,0x0000021c,0x00000022,0x00000000, + 0x00030047,0x00000263,0x00000017,0x00040047,0x00000263,0x00000021,0x00000004,0x00040047, + 0x00000263,0x00000022,0x00000000,0x00040047,0x00000945,0x0000000b,0x0000001a,0x00040047, + 0x00000947,0x0000000b,0x0000001d,0x00040047,0x00000950,0x00000021,0x000003e8,0x00040047, + 0x00000950,0x00000022,0x00000000,0x00040047,0x00000951,0x00000021,0x000003e9,0x00040047, + 0x00000951,0x00000022,0x00000000,0x00040047,0x0000095a,0x0000000b,0x00000019,0x00020013, + 0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000, + 0x00040020,0x00000007,0x00000007,0x00000006,0x00060021,0x00000008,0x00000006,0x00000007, + 0x00000007,0x00000007,0x00030016,0x00000013,0x00000020,0x00040020,0x00000014,0x00000007, + 0x00000013,0x00050021,0x00000015,0x00000013,0x00000014,0x00000014,0x00040015,0x0000001a, + 0x00000020,0x00000001,0x00040020,0x0000001b,0x00000007,0x0000001a,0x00050021,0x0000001c, + 0x0000001a,0x0000001b,0x0000001b,0x00040017,0x0000002d,0x00000006,0x00000002,0x00040021, + 0x0000002e,0x0000002d,0x00000007,0x00040017,0x00000032,0x0000001a,0x00000002,0x00030021, + 0x00000033,0x00000032,0x00040017,0x00000038,0x00000013,0x00000002,0x00030021,0x00000039, + 0x00000038,0x00030021,0x0000003e,0x00000013,0x00030021,0x00000041,0x00000006,0x00030021, + 0x00000046,0x0000002d,0x00040020,0x00000049,0x00000007,0x00000032,0x00040021,0x0000004a, + 0x00000013,0x00000049,0x00040021,0x00000051,0x00000038,0x00000049,0x00050021,0x00000057, + 0x00000038,0x00000049,0x00000007,0x00040020,0x0000005c,0x00000007,0x00000038,0x00060021, + 0x0000005d,0x00000002,0x00000049,0x0000005c,0x00000007,0x00040021,0x00000063,0x00000002, + 0x00000007,0x00050021,0x00000069,0x00000013,0x00000013,0x00000013,0x00020014,0x0000006e, + 0x00040021,0x0000006f,0x0000006e,0x0000005c,0x00060021,0x00000073,0x00000032,0x00000049, + 0x00000049,0x00000049,0x0004002b,0x00000006,0x00000081,0x00000005,0x0004001c,0x00000082, + 0x00000013,0x00000081,0x0003001e,0x00000083,0x00000082,0x00040020,0x00000084,0x00000007, + 0x00000083,0x00040021,0x00000085,0x00000002,0x00000084,0x00060021,0x00000089,0x00000013, + 0x00000049,0x00000084,0x00000084,0x00040021,0x0000008f,0x00000083,0x0000005c,0x0004001e, + 0x00000093,0x00000083,0x0000006e,0x00050021,0x00000094,0x00000093,0x0000005c,0x0000005c, + 0x00060021,0x00000099,0x00000013,0x00000049,0x0000005c,0x0000005c,0x00040017,0x0000009f, + 0x00000013,0x00000004,0x00050021,0x000000a0,0x0000009f,0x0000005c,0x00000007,0x00050021, + 0x000000a5,0x0000009f,0x00000049,0x00000007,0x00040020,0x000000aa,0x00000007,0x0000009f, + 0x00070021,0x000000ab,0x0000009f,0x000000aa,0x000000aa,0x000000aa,0x000000aa,0x00070021, + 0x000000b2,0x00000002,0x00000049,0x000000aa,0x00000007,0x00000007,0x00050021,0x000000b9, + 0x0000009f,0x00000007,0x00000007,0x00060021,0x000000be,0x00000002,0x00000007,0x00000007, + 0x000000aa,0x00060021,0x000000c6,0x0000006e,0x00000007,0x00000007,0x00000007,0x00040020, + 0x000000cc,0x00000007,0x0000002d,0x00070021,0x000000cd,0x0000009f,0x000000cc,0x000000cc, + 0x000000cc,0x000000cc,0x00080021,0x000000d4,0x0000009f,0x000000cc,0x000000cc,0x000000cc, + 0x000000cc,0x00000007,0x00050021,0x000000dc,0x0000009f,0x000000cc,0x00000007,0x00090021, + 0x000000ec,0x00000002,0x00000007,0x00000007,0x000000cc,0x00000007,0x00000007,0x00000007, + 0x00070021,0x00000115,0x00000002,0x000000cc,0x00000007,0x00000007,0x00000007,0x00070021, + 0x0000011c,0x00000002,0x00000007,0x00000007,0x00000007,0x00000007,0x000a0021,0x00000123, + 0x00000002,0x00000007,0x00000007,0x000000cc,0x00000007,0x00000007,0x00000007,0x00000007, + 0x00080021,0x0000012d,0x00000002,0x000000cc,0x00000007,0x00000007,0x00000007,0x00000007, + 0x00090021,0x00000135,0x00000002,0x000000cc,0x00000007,0x00000007,0x00000007,0x00000007, + 0x000000cc,0x00040017,0x0000013e,0x00000006,0x00000003,0x00040020,0x0000013f,0x00000007, + 0x0000013e,0x00050021,0x00000140,0x00000002,0x0000013f,0x00000007,0x0004002b,0x0000001a, + 0x0000014f,0x00000000,0x0004002b,0x00000006,0x0000016e,0x00000002,0x0004002b,0x00000006, + 0x0000016f,0x00000003,0x0004002b,0x00000006,0x00000175,0x00000001,0x0019001e,0x0000018c, + 0x00000032,0x00000032,0x00000032,0x00000032,0x00000032,0x00000032,0x0000009f,0x00000038, + 0x00000038,0x00000038,0x00000038,0x00000038,0x00000013,0x00000013,0x00000013,0x00000013, + 0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00000013,0x00040020, + 0x0000018d,0x00000002,0x0000018c,0x0004003b,0x0000018d,0x0000018e,0x00000002,0x00040020, + 0x0000018f,0x00000002,0x00000032,0x0004002b,0x0000001a,0x00000194,0x00000001,0x0004002b, + 0x0000001a,0x00000199,0x00000007,0x00040020,0x0000019a,0x00000002,0x00000038,0x0004002b, + 0x0000001a,0x0000019f,0x00000008,0x0004002b,0x0000001a,0x000001a4,0x0000000f,0x00040020, + 0x000001a5,0x00000002,0x00000013,0x0006001e,0x000001aa,0x00000006,0x00000006,0x0000002d, + 0x0000002d,0x00040020,0x000001ab,0x00000002,0x000001aa,0x0004003b,0x000001ab,0x000001ac, + 0x00000002,0x00040020,0x000001ad,0x00000002,0x00000006,0x0004002b,0x0000001a,0x000001b6, + 0x00000002,0x00040020,0x000001b7,0x00000002,0x0000002d,0x00090019,0x000001bc,0x00000013, + 0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000,0x00040020,0x000001bd, + 0x00000000,0x000001bc,0x0004003b,0x000001bd,0x000001be,0x00000000,0x0004002b,0x00000006, + 0x000001c2,0x00000000,0x0004003b,0x000001bd,0x000001c6,0x00000000,0x0004003b,0x000001bd, + 0x000001cd,0x00000000,0x0004003b,0x000001bd,0x000001d5,0x00000000,0x0005002c,0x00000032, + 0x000001d7,0x0000014f,0x0000014f,0x0004002b,0x00000013,0x000001db,0x00000000,0x0004002b, + 0x00000013,0x000001df,0x3f800000,0x00090019,0x000001e7,0x00000013,0x00000001,0x00000000, + 0x00000000,0x00000000,0x00000002,0x00000007,0x00040020,0x000001e8,0x00000000,0x000001e7, + 0x0004003b,0x000001e8,0x000001e9,0x00000000,0x0004003b,0x000001e8,0x000001f3,0x00000000, + 0x0004003b,0x000001e8,0x000001fd,0x00000000,0x0004003b,0x000001e8,0x00000207,0x00000000, + 0x0004002b,0x00000006,0x0000020e,0x00000004,0x0004003b,0x000001e8,0x00000212,0x00000000, + 0x0004003b,0x000001e8,0x0000021c,0x00000000,0x0005002c,0x00000038,0x00000222,0x000001db, + 0x000001db,0x00090019,0x00000261,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000002,0x00000021,0x00040020,0x00000262,0x00000000,0x00000261,0x0004003b,0x00000262, + 0x00000263,0x00000000,0x00040020,0x00000264,0x0000000b,0x00000006,0x00040017,0x00000268, + 0x00000006,0x00000004,0x0007002c,0x00000268,0x00000269,0x000001c2,0x000001c2,0x000001c2, + 0x000001c2,0x00040020,0x000002b2,0x00000004,0x00000006,0x0004003b,0x000002b2,0x000002b3, + 0x00000004,0x0004002b,0x0000001a,0x000002bd,0x00000003,0x0004002b,0x0000001a,0x000002d0, + 0x00000004,0x0004002b,0x00000013,0x00000361,0x477fdf00,0x0004002b,0x00000013,0x00000375, + 0x00800000,0x0004002b,0x0000001a,0x00000380,0x00000005,0x0004002b,0x00000013,0x00000383, + 0x477fe000,0x0004002b,0x00000013,0x00000390,0x387fda40,0x0004001c,0x000003dc,0x00000032, + 0x00000081,0x0004002b,0x0000001a,0x000003dd,0xffffffff,0x0005002c,0x00000032,0x000003de, + 0x000003dd,0x0000014f,0x0005002c,0x00000032,0x000003df,0x00000194,0x0000014f,0x0005002c, + 0x00000032,0x000003e0,0x0000014f,0x000003dd,0x0005002c,0x00000032,0x000003e1,0x0000014f, + 0x00000194,0x0008002c,0x000003dc,0x000003e2,0x000001d7,0x000003de,0x000003df,0x000003e0, + 0x000003e1,0x00040020,0x000003e8,0x00000007,0x000003dc,0x00040020,0x00000416,0x00000007, + 0x00000093,0x00040020,0x0000041b,0x00000007,0x0000006e,0x0004002b,0x00000013,0x00000482, + 0x3f000000,0x0007002c,0x0000009f,0x00000491,0x000001db,0x000001db,0x000001db,0x000001db, + 0x0004002b,0x00000013,0x000004b2,0x3e800000,0x0004002b,0x00000006,0x000004c2,0x00000010, + 0x0004001c,0x000004c3,0x00000013,0x000004c2,0x0004001c,0x000004c4,0x000004c3,0x000004c2, + 0x00040020,0x000004c5,0x00000004,0x000004c4,0x0004003b,0x000004c5,0x000004c6,0x00000004, + 0x00040020,0x000004c9,0x00000004,0x00000013,0x0004003b,0x000004c5,0x000004cc,0x00000004, + 0x0004003b,0x000004c5,0x000004d1,0x00000004,0x0004003b,0x000004c5,0x000004d6,0x00000004, + 0x0004002b,0x00000006,0x000004f2,0x00000d48,0x0004002b,0x00000006,0x000004f3,0x00000108, + 0x0005002c,0x0000002d,0x00000555,0x000001c2,0x000001c2,0x0005002c,0x0000002d,0x00000558, + 0x000001c2,0x00000175,0x0005002c,0x0000002d,0x0000055b,0x00000175,0x000001c2,0x0005002c, + 0x0000002d,0x0000055e,0x00000175,0x00000175,0x0004002b,0x00000006,0x000005a7,0x00000040, + 0x0004002b,0x00000006,0x000005b5,0x00000020,0x0004001c,0x000005bf,0x0000009f,0x0000020e, + 0x00040020,0x000005c0,0x00000007,0x000005bf,0x0004002b,0x00000006,0x00000691,0x00000008, + 0x0005002c,0x0000002d,0x000007c3,0x0000016e,0x000001c2,0x0005002c,0x0000002d,0x000007c4, + 0x0000016f,0x000001c2,0x0004002b,0x00000006,0x000007ef,0x00000006,0x0004002b,0x00000006, + 0x0000085c,0x00000007,0x0004002b,0x0000001a,0x000008d9,0x00000006,0x00040020,0x00000944, + 0x00000001,0x0000013e,0x0004003b,0x00000944,0x00000945,0x00000001,0x00040020,0x00000946, + 0x00000001,0x00000006,0x0004003b,0x00000946,0x00000947,0x00000001,0x0004002b,0x00000013, + 0x0000094d,0x37801002,0x0002001a,0x0000094e,0x00040020,0x0000094f,0x00000000,0x0000094e, + 0x0004003b,0x0000094f,0x00000950,0x00000000,0x0004003b,0x0000094f,0x00000951,0x00000000, + 0x0004002b,0x00000013,0x00000952,0x7f7fffff,0x0004002b,0x00000013,0x00000953,0x3a1fe868, + 0x0004002b,0x00000013,0x00000954,0x3d800000,0x0004002b,0x00000013,0x00000955,0x3d3d70a4, + 0x0004002b,0x00000013,0x00000956,0x3e400000,0x0004002b,0x00000013,0x00000957,0x40000000, + 0x0004002b,0x00000013,0x00000958,0x461c4000,0x0004002b,0x00000006,0x00000959,0x00000100, + 0x0006002c,0x0000013e,0x0000095a,0x00000959,0x00000175,0x00000175,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x0000013f,0x00000948, + 0x00000007,0x0004003b,0x00000007,0x0000094a,0x00000007,0x0004003d,0x0000013e,0x00000949, + 0x00000945,0x0003003e,0x00000948,0x00000949,0x0004003d,0x00000006,0x0000094b,0x00000947, + 0x0003003e,0x0000094a,0x0000094b,0x00060039,0x00000002,0x0000094c,0x00000143,0x00000948, + 0x0000094a,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000c,0x00000000,0x00000008, + 0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x00030037,0x00000007, + 0x0000000b,0x000200f8,0x0000000d,0x0004003d,0x00000006,0x00000145,0x00000009,0x0004003d, + 0x00000006,0x00000146,0x0000000a,0x0004007c,0x0000001a,0x00000147,0x00000146,0x0004003d, + 0x00000006,0x00000148,0x0000000b,0x0004007c,0x0000001a,0x00000149,0x00000148,0x000600cb, + 0x00000006,0x0000014a,0x00000145,0x00000147,0x00000149,0x000200fe,0x0000014a,0x00010038, + 0x00050036,0x00000006,0x00000011,0x00000000,0x00000008,0x00030037,0x00000007,0x0000000e, + 0x00030037,0x00000007,0x0000000f,0x00030037,0x00000007,0x00000010,0x000200f8,0x00000012, + 0x0004003d,0x00000006,0x0000014d,0x0000000e,0x0004003d,0x00000006,0x0000014e,0x0000000f, + 0x0004003d,0x00000006,0x00000150,0x00000010,0x0004007c,0x0000001a,0x00000151,0x00000150, + 0x000700c9,0x00000006,0x00000152,0x0000014d,0x0000014e,0x0000014f,0x00000151,0x000200fe, + 0x00000152,0x00010038,0x00050036,0x00000013,0x00000018,0x00000000,0x00000015,0x00030037, + 0x00000014,0x00000016,0x00030037,0x00000014,0x00000017,0x000200f8,0x00000019,0x0004003d, + 0x00000013,0x00000155,0x00000016,0x0004003d,0x00000013,0x00000156,0x00000017,0x0007000c, + 0x00000013,0x00000157,0x00000001,0x00000025,0x00000155,0x00000156,0x000200fe,0x00000157, + 0x00010038,0x00050036,0x0000001a,0x0000001f,0x00000000,0x0000001c,0x00030037,0x0000001b, + 0x0000001d,0x00030037,0x0000001b,0x0000001e,0x000200f8,0x00000020,0x0004003d,0x0000001a, + 0x0000015a,0x0000001d,0x0004003d,0x0000001a,0x0000015b,0x0000001e,0x0007000c,0x0000001a, + 0x0000015c,0x00000001,0x00000027,0x0000015a,0x0000015b,0x000200fe,0x0000015c,0x00010038, + 0x00050036,0x00000013,0x00000023,0x00000000,0x00000015,0x00030037,0x00000014,0x00000021, + 0x00030037,0x00000014,0x00000022,0x000200f8,0x00000024,0x0004003d,0x00000013,0x0000015f, + 0x00000021,0x0004003d,0x00000013,0x00000160,0x00000022,0x0007000c,0x00000013,0x00000161, + 0x00000001,0x00000028,0x0000015f,0x00000160,0x000200fe,0x00000161,0x00010038,0x00050036, + 0x0000001a,0x00000027,0x00000000,0x0000001c,0x00030037,0x0000001b,0x00000025,0x00030037, + 0x0000001b,0x00000026,0x000200f8,0x00000028,0x0004003d,0x0000001a,0x00000164,0x00000025, + 0x0004003d,0x0000001a,0x00000165,0x00000026,0x0007000c,0x0000001a,0x00000166,0x00000001, + 0x0000002a,0x00000164,0x00000165,0x000200fe,0x00000166,0x00010038,0x00050036,0x00000013, + 0x0000002b,0x00000000,0x00000015,0x00030037,0x00000014,0x00000029,0x00030037,0x00000014, + 0x0000002a,0x000200f8,0x0000002c,0x0004003d,0x00000013,0x00000169,0x00000029,0x0004003d, + 0x00000013,0x0000016a,0x0000002a,0x0007000c,0x00000013,0x0000016b,0x00000001,0x0000001a, + 0x00000169,0x0000016a,0x000200fe,0x0000016b,0x00010038,0x00050036,0x0000002d,0x00000030, + 0x00000000,0x0000002e,0x00030037,0x00000007,0x0000002f,0x000200f8,0x00000031,0x0004003b, + 0x00000007,0x00000170,0x00000007,0x0004003b,0x00000007,0x00000172,0x00000007,0x0004003b, + 0x00000007,0x00000173,0x00000007,0x0004003b,0x00000007,0x00000176,0x00000007,0x0004003b, + 0x00000007,0x00000177,0x00000007,0x0004003b,0x00000007,0x00000179,0x00000007,0x0004003b, + 0x00000007,0x0000017b,0x00000007,0x0004003b,0x00000007,0x0000017d,0x00000007,0x0004003b, + 0x00000007,0x0000017e,0x00000007,0x0004003b,0x00000007,0x00000180,0x00000007,0x0004003b, + 0x00000007,0x00000182,0x00000007,0x0004003b,0x00000007,0x00000183,0x00000007,0x0004003b, + 0x00000007,0x00000185,0x00000007,0x0004003b,0x00000007,0x00000186,0x00000007,0x0004003b, + 0x00000007,0x00000187,0x00000007,0x0004003d,0x00000006,0x00000171,0x0000002f,0x0003003e, + 0x00000170,0x00000171,0x0003003e,0x00000172,0x0000016e,0x0003003e,0x00000173,0x0000016f, + 0x00070039,0x00000006,0x00000174,0x0000000c,0x00000170,0x00000172,0x00000173,0x0003003e, + 0x00000176,0x00000174,0x0004003d,0x00000006,0x00000178,0x0000002f,0x0003003e,0x00000177, + 0x00000178,0x0003003e,0x00000179,0x00000175,0x00070039,0x00000006,0x0000017a,0x00000011, + 0x00000176,0x00000177,0x00000179,0x0004003d,0x00000006,0x0000017c,0x0000002f,0x0003003e, + 0x0000017b,0x0000017c,0x0003003e,0x0000017d,0x0000016f,0x0003003e,0x0000017e,0x0000016f, + 0x00070039,0x00000006,0x0000017f,0x0000000c,0x0000017b,0x0000017d,0x0000017e,0x0004003d, + 0x00000006,0x00000181,0x0000002f,0x0003003e,0x00000180,0x00000181,0x0003003e,0x00000182, + 0x00000175,0x0003003e,0x00000183,0x0000016e,0x00070039,0x00000006,0x00000184,0x0000000c, + 0x00000180,0x00000182,0x00000183,0x0003003e,0x00000185,0x0000017f,0x0003003e,0x00000186, + 0x00000184,0x0003003e,0x00000187,0x0000016e,0x00070039,0x00000006,0x00000188,0x00000011, + 0x00000185,0x00000186,0x00000187,0x00050050,0x0000002d,0x00000189,0x0000017a,0x00000188, + 0x000200fe,0x00000189,0x00010038,0x00050036,0x00000032,0x00000034,0x00000000,0x00000033, + 0x000200f8,0x00000035,0x00050041,0x0000018f,0x00000190,0x0000018e,0x0000014f,0x0004003d, + 0x00000032,0x00000191,0x00000190,0x000200fe,0x00000191,0x00010038,0x00050036,0x00000032, + 0x00000036,0x00000000,0x00000033,0x000200f8,0x00000037,0x00050041,0x0000018f,0x00000195, + 0x0000018e,0x00000194,0x0004003d,0x00000032,0x00000196,0x00000195,0x000200fe,0x00000196, + 0x00010038,0x00050036,0x00000038,0x0000003a,0x00000000,0x00000039,0x000200f8,0x0000003b, + 0x00050041,0x0000019a,0x0000019b,0x0000018e,0x00000199,0x0004003d,0x00000038,0x0000019c, + 0x0000019b,0x000200fe,0x0000019c,0x00010038,0x00050036,0x00000038,0x0000003c,0x00000000, + 0x00000039,0x000200f8,0x0000003d,0x00050041,0x0000019a,0x000001a0,0x0000018e,0x0000019f, + 0x0004003d,0x00000038,0x000001a1,0x000001a0,0x000200fe,0x000001a1,0x00010038,0x00050036, + 0x00000013,0x0000003f,0x00000000,0x0000003e,0x000200f8,0x00000040,0x00050041,0x000001a5, + 0x000001a6,0x0000018e,0x000001a4,0x0004003d,0x00000013,0x000001a7,0x000001a6,0x000200fe, + 0x000001a7,0x00010038,0x00050036,0x00000006,0x00000042,0x00000000,0x00000041,0x000200f8, + 0x00000043,0x00050041,0x000001ad,0x000001ae,0x000001ac,0x0000014f,0x0004003d,0x00000006, + 0x000001af,0x000001ae,0x000200fe,0x000001af,0x00010038,0x00050036,0x00000006,0x00000044, + 0x00000000,0x00000041,0x000200f8,0x00000045,0x00050041,0x000001ad,0x000001b2,0x000001ac, + 0x00000194,0x0004003d,0x00000006,0x000001b3,0x000001b2,0x000200fe,0x000001b3,0x00010038, + 0x00050036,0x0000002d,0x00000047,0x00000000,0x00000046,0x000200f8,0x00000048,0x00050041, + 0x000001b7,0x000001b8,0x000001ac,0x000001b6,0x0004003d,0x0000002d,0x000001b9,0x000001b8, + 0x000200fe,0x000001b9,0x00010038,0x00050036,0x00000013,0x0000004c,0x00000000,0x0000004a, + 0x00030037,0x00000049,0x0000004b,0x000200f8,0x0000004d,0x0004003d,0x000001bc,0x000001bf, + 0x000001be,0x0004003d,0x00000032,0x000001c0,0x0000004b,0x0007005f,0x0000009f,0x000001c1, + 0x000001bf,0x000001c0,0x00000002,0x0000014f,0x00050051,0x00000013,0x000001c3,0x000001c1, + 0x00000000,0x000200fe,0x000001c3,0x00010038,0x00050036,0x00000013,0x0000004f,0x00000000, + 0x0000004a,0x00030037,0x00000049,0x0000004e,0x000200f8,0x00000050,0x0004003d,0x000001bc, + 0x000001c7,0x000001c6,0x0004003d,0x00000032,0x000001c8,0x0000004e,0x0007005f,0x0000009f, + 0x000001c9,0x000001c7,0x000001c8,0x00000002,0x0000014f,0x00050051,0x00000013,0x000001ca, + 0x000001c9,0x00000000,0x000200fe,0x000001ca,0x00010038,0x00050036,0x00000038,0x00000053, + 0x00000000,0x00000051,0x00030037,0x00000049,0x00000052,0x000200f8,0x00000054,0x0004003d, + 0x000001bc,0x000001ce,0x000001cd,0x0004003d,0x00000032,0x000001cf,0x00000052,0x0007005f, + 0x0000009f,0x000001d0,0x000001ce,0x000001cf,0x00000002,0x0000014f,0x0007004f,0x00000038, + 0x000001d1,0x000001d0,0x000001d0,0x00000000,0x00000001,0x000200fe,0x000001d1,0x00010038, + 0x00050036,0x00000013,0x00000055,0x00000000,0x0000003e,0x000200f8,0x00000056,0x0004003b, + 0x00000014,0x000001d4,0x00000007,0x0004003d,0x000001bc,0x000001d6,0x000001d5,0x0007005f, + 0x0000009f,0x000001d8,0x000001d6,0x000001d7,0x00000002,0x0000014f,0x00050051,0x00000013, + 0x000001d9,0x000001d8,0x00000000,0x0003003e,0x000001d4,0x000001d9,0x0004003d,0x00000013, + 0x000001da,0x000001d4,0x000500b4,0x0000006e,0x000001dc,0x000001da,0x000001db,0x000300f7, + 0x000001de,0x00000000,0x000400fa,0x000001dc,0x000001dd,0x000001de,0x000200f8,0x000001dd, + 0x0003003e,0x000001d4,0x000001df,0x000200f9,0x000001de,0x000200f8,0x000001de,0x0004003d, + 0x00000013,0x000001e0,0x000001d4,0x000200fe,0x000001e0,0x00010038,0x00050036,0x00000038, + 0x0000005a,0x00000000,0x00000057,0x00030037,0x00000049,0x00000058,0x00030037,0x00000007, + 0x00000059,0x000200f8,0x0000005b,0x0004003d,0x00000006,0x000001e3,0x00000059,0x000500aa, + 0x0000006e,0x000001e4,0x000001e3,0x000001c2,0x000300f7,0x000001e6,0x00000000,0x000400fa, + 0x000001e4,0x000001e5,0x000001e6,0x000200f8,0x000001e5,0x0004003d,0x000001e7,0x000001ea, + 0x000001e9,0x0004003d,0x00000032,0x000001eb,0x00000058,0x00050062,0x0000009f,0x000001ec, + 0x000001ea,0x000001eb,0x0007004f,0x00000038,0x000001ed,0x000001ec,0x000001ec,0x00000000, + 0x00000001,0x000200fe,0x000001ed,0x000200f8,0x000001e6,0x0004003d,0x00000006,0x000001ef, + 0x00000059,0x000500aa,0x0000006e,0x000001f0,0x000001ef,0x00000175,0x000300f7,0x000001f2, + 0x00000000,0x000400fa,0x000001f0,0x000001f1,0x000001f2,0x000200f8,0x000001f1,0x0004003d, + 0x000001e7,0x000001f4,0x000001f3,0x0004003d,0x00000032,0x000001f5,0x00000058,0x00050062, + 0x0000009f,0x000001f6,0x000001f4,0x000001f5,0x0007004f,0x00000038,0x000001f7,0x000001f6, + 0x000001f6,0x00000000,0x00000001,0x000200fe,0x000001f7,0x000200f8,0x000001f2,0x0004003d, + 0x00000006,0x000001f9,0x00000059,0x000500aa,0x0000006e,0x000001fa,0x000001f9,0x0000016e, + 0x000300f7,0x000001fc,0x00000000,0x000400fa,0x000001fa,0x000001fb,0x000001fc,0x000200f8, + 0x000001fb,0x0004003d,0x000001e7,0x000001fe,0x000001fd,0x0004003d,0x00000032,0x000001ff, + 0x00000058,0x00050062,0x0000009f,0x00000200,0x000001fe,0x000001ff,0x0007004f,0x00000038, + 0x00000201,0x00000200,0x00000200,0x00000000,0x00000001,0x000200fe,0x00000201,0x000200f8, + 0x000001fc,0x0004003d,0x00000006,0x00000203,0x00000059,0x000500aa,0x0000006e,0x00000204, + 0x00000203,0x0000016f,0x000300f7,0x00000206,0x00000000,0x000400fa,0x00000204,0x00000205, + 0x00000206,0x000200f8,0x00000205,0x0004003d,0x000001e7,0x00000208,0x00000207,0x0004003d, + 0x00000032,0x00000209,0x00000058,0x00050062,0x0000009f,0x0000020a,0x00000208,0x00000209, + 0x0007004f,0x00000038,0x0000020b,0x0000020a,0x0000020a,0x00000000,0x00000001,0x000200fe, + 0x0000020b,0x000200f8,0x00000206,0x0004003d,0x00000006,0x0000020d,0x00000059,0x000500aa, + 0x0000006e,0x0000020f,0x0000020d,0x0000020e,0x000300f7,0x00000211,0x00000000,0x000400fa, + 0x0000020f,0x00000210,0x00000211,0x000200f8,0x00000210,0x0004003d,0x000001e7,0x00000213, + 0x00000212,0x0004003d,0x00000032,0x00000214,0x00000058,0x00050062,0x0000009f,0x00000215, + 0x00000213,0x00000214,0x0007004f,0x00000038,0x00000216,0x00000215,0x00000215,0x00000000, + 0x00000001,0x000200fe,0x00000216,0x000200f8,0x00000211,0x0004003d,0x00000006,0x00000218, + 0x00000059,0x000500aa,0x0000006e,0x00000219,0x00000218,0x00000081,0x000300f7,0x0000021b, + 0x00000000,0x000400fa,0x00000219,0x0000021a,0x0000021b,0x000200f8,0x0000021a,0x0004003d, + 0x000001e7,0x0000021d,0x0000021c,0x0004003d,0x00000032,0x0000021e,0x00000058,0x00050062, + 0x0000009f,0x0000021f,0x0000021d,0x0000021e,0x0007004f,0x00000038,0x00000220,0x0000021f, + 0x0000021f,0x00000000,0x00000001,0x000200fe,0x00000220,0x000200f8,0x0000021b,0x000200fe, + 0x00000222,0x00010038,0x00050036,0x00000002,0x00000061,0x00000000,0x0000005d,0x00030037, + 0x00000049,0x0000005e,0x00030037,0x0000005c,0x0000005f,0x00030037,0x00000007,0x00000060, + 0x000200f8,0x00000062,0x0004003d,0x00000006,0x00000225,0x00000060,0x000500aa,0x0000006e, + 0x00000226,0x00000225,0x000001c2,0x000300f7,0x00000228,0x00000000,0x000400fa,0x00000226, + 0x00000227,0x00000228,0x000200f8,0x00000227,0x0004003d,0x000001e7,0x00000229,0x000001e9, + 0x0004003d,0x00000032,0x0000022a,0x0000005e,0x0004003d,0x00000038,0x0000022b,0x0000005f, + 0x00050051,0x00000013,0x0000022c,0x0000022b,0x00000000,0x00050051,0x00000013,0x0000022d, + 0x0000022b,0x00000001,0x00070050,0x0000009f,0x0000022e,0x0000022c,0x0000022d,0x000001db, + 0x000001db,0x00040063,0x00000229,0x0000022a,0x0000022e,0x000200f9,0x00000228,0x000200f8, + 0x00000228,0x0004003d,0x00000006,0x0000022f,0x00000060,0x000500aa,0x0000006e,0x00000230, + 0x0000022f,0x00000175,0x000300f7,0x00000232,0x00000000,0x000400fa,0x00000230,0x00000231, + 0x00000232,0x000200f8,0x00000231,0x0004003d,0x000001e7,0x00000233,0x000001f3,0x0004003d, + 0x00000032,0x00000234,0x0000005e,0x0004003d,0x00000038,0x00000235,0x0000005f,0x00050051, + 0x00000013,0x00000236,0x00000235,0x00000000,0x00050051,0x00000013,0x00000237,0x00000235, + 0x00000001,0x00070050,0x0000009f,0x00000238,0x00000236,0x00000237,0x000001db,0x000001db, + 0x00040063,0x00000233,0x00000234,0x00000238,0x000200f9,0x00000232,0x000200f8,0x00000232, + 0x0004003d,0x00000006,0x00000239,0x00000060,0x000500aa,0x0000006e,0x0000023a,0x00000239, + 0x0000016e,0x000300f7,0x0000023c,0x00000000,0x000400fa,0x0000023a,0x0000023b,0x0000023c, + 0x000200f8,0x0000023b,0x0004003d,0x000001e7,0x0000023d,0x000001fd,0x0004003d,0x00000032, + 0x0000023e,0x0000005e,0x0004003d,0x00000038,0x0000023f,0x0000005f,0x00050051,0x00000013, + 0x00000240,0x0000023f,0x00000000,0x00050051,0x00000013,0x00000241,0x0000023f,0x00000001, + 0x00070050,0x0000009f,0x00000242,0x00000240,0x00000241,0x000001db,0x000001db,0x00040063, + 0x0000023d,0x0000023e,0x00000242,0x000200f9,0x0000023c,0x000200f8,0x0000023c,0x0004003d, + 0x00000006,0x00000243,0x00000060,0x000500aa,0x0000006e,0x00000244,0x00000243,0x0000016f, + 0x000300f7,0x00000246,0x00000000,0x000400fa,0x00000244,0x00000245,0x00000246,0x000200f8, + 0x00000245,0x0004003d,0x000001e7,0x00000247,0x00000207,0x0004003d,0x00000032,0x00000248, + 0x0000005e,0x0004003d,0x00000038,0x00000249,0x0000005f,0x00050051,0x00000013,0x0000024a, + 0x00000249,0x00000000,0x00050051,0x00000013,0x0000024b,0x00000249,0x00000001,0x00070050, + 0x0000009f,0x0000024c,0x0000024a,0x0000024b,0x000001db,0x000001db,0x00040063,0x00000247, + 0x00000248,0x0000024c,0x000200f9,0x00000246,0x000200f8,0x00000246,0x0004003d,0x00000006, + 0x0000024d,0x00000060,0x000500aa,0x0000006e,0x0000024e,0x0000024d,0x0000020e,0x000300f7, + 0x00000250,0x00000000,0x000400fa,0x0000024e,0x0000024f,0x00000250,0x000200f8,0x0000024f, + 0x0004003d,0x000001e7,0x00000251,0x00000212,0x0004003d,0x00000032,0x00000252,0x0000005e, + 0x0004003d,0x00000038,0x00000253,0x0000005f,0x00050051,0x00000013,0x00000254,0x00000253, + 0x00000000,0x00050051,0x00000013,0x00000255,0x00000253,0x00000001,0x00070050,0x0000009f, + 0x00000256,0x00000254,0x00000255,0x000001db,0x000001db,0x00040063,0x00000251,0x00000252, + 0x00000256,0x000200f9,0x00000250,0x000200f8,0x00000250,0x0004003d,0x00000006,0x00000257, + 0x00000060,0x000500aa,0x0000006e,0x00000258,0x00000257,0x00000081,0x000300f7,0x0000025a, + 0x00000000,0x000400fa,0x00000258,0x00000259,0x0000025a,0x000200f8,0x00000259,0x0004003d, + 0x000001e7,0x0000025b,0x0000021c,0x0004003d,0x00000032,0x0000025c,0x0000005e,0x0004003d, + 0x00000038,0x0000025d,0x0000005f,0x00050051,0x00000013,0x0000025e,0x0000025d,0x00000000, + 0x00050051,0x00000013,0x0000025f,0x0000025d,0x00000001,0x00070050,0x0000009f,0x00000260, + 0x0000025e,0x0000025f,0x000001db,0x000001db,0x00040063,0x0000025b,0x0000025c,0x00000260, + 0x000200f9,0x0000025a,0x000200f8,0x0000025a,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000065,0x00000000,0x00000063,0x00030037,0x00000007,0x00000064,0x000200f8,0x00000066, + 0x0006003c,0x00000264,0x00000265,0x00000263,0x000001d7,0x000001c2,0x000700ea,0x00000006, + 0x00000266,0x00000265,0x00000175,0x000001c2,0x00000175,0x0003003e,0x00000064,0x00000266, + 0x000100fd,0x00010038,0x00050036,0x00000002,0x00000067,0x00000000,0x00000003,0x000200f8, + 0x00000068,0x0004003d,0x00000261,0x00000267,0x00000263,0x00040063,0x00000267,0x000001d7, + 0x00000269,0x000100fd,0x00010038,0x00050036,0x00000013,0x0000006c,0x00000000,0x00000069, + 0x00030037,0x00000013,0x0000006a,0x00030037,0x00000013,0x0000006b,0x000200f8,0x0000006d, + 0x0004003b,0x00000014,0x0000026a,0x00000007,0x0004003b,0x00000014,0x0000026b,0x00000007, + 0x0004003b,0x00000014,0x0000026c,0x00000007,0x0004003b,0x00000014,0x00000270,0x00000007, + 0x0004003b,0x00000014,0x00000273,0x00000007,0x0004003b,0x00000014,0x00000274,0x00000007, + 0x0003003e,0x0000026b,0x0000006a,0x0003003e,0x0000026c,0x0000006b,0x00060039,0x00000013, + 0x0000026d,0x00000023,0x0000026b,0x0000026c,0x0003003e,0x0000026a,0x0000026d,0x0004003d, + 0x00000013,0x0000026e,0x0000026a,0x000500b7,0x0000006e,0x0000026f,0x0000026e,0x000001db, + 0x000300f7,0x00000272,0x00000000,0x000400fa,0x0000026f,0x00000271,0x00000278,0x000200f8, + 0x00000271,0x0003003e,0x00000273,0x0000006a,0x0003003e,0x00000274,0x0000006b,0x00060039, + 0x00000013,0x00000275,0x00000018,0x00000273,0x00000274,0x0004003d,0x00000013,0x00000276, + 0x0000026a,0x00050088,0x00000013,0x00000277,0x00000275,0x00000276,0x0003003e,0x00000270, + 0x00000277,0x000200f9,0x00000272,0x000200f8,0x00000278,0x0003003e,0x00000270,0x000001db, + 0x000200f9,0x00000272,0x000200f8,0x00000272,0x0004003d,0x00000013,0x00000279,0x00000270, + 0x000200fe,0x00000279,0x00010038,0x00050036,0x0000006e,0x00000071,0x00000000,0x0000006f, + 0x00030037,0x0000005c,0x00000070,0x000200f8,0x00000072,0x00050041,0x00000014,0x0000027c, + 0x00000070,0x000001c2,0x0004003d,0x00000013,0x0000027d,0x0000027c,0x000500be,0x0000006e, + 0x0000027e,0x0000027d,0x000001db,0x000300f7,0x00000280,0x00000000,0x000400fa,0x0000027e, + 0x0000027f,0x00000280,0x000200f8,0x0000027f,0x00050041,0x00000014,0x00000281,0x00000070, + 0x000001c2,0x0004003d,0x00000013,0x00000282,0x00000281,0x000500bc,0x0000006e,0x00000283, + 0x00000282,0x000001df,0x000200f9,0x00000280,0x000200f8,0x00000280,0x000700f5,0x0000006e, + 0x00000284,0x0000027e,0x00000072,0x00000283,0x0000027f,0x000300f7,0x00000286,0x00000000, + 0x000400fa,0x00000284,0x00000285,0x00000286,0x000200f8,0x00000285,0x00050041,0x00000014, + 0x00000287,0x00000070,0x00000175,0x0004003d,0x00000013,0x00000288,0x00000287,0x000500be, + 0x0000006e,0x00000289,0x00000288,0x000001db,0x000300f7,0x0000028b,0x00000000,0x000400fa, + 0x00000289,0x0000028a,0x0000028b,0x000200f8,0x0000028a,0x00050041,0x00000014,0x0000028c, + 0x00000070,0x00000175,0x0004003d,0x00000013,0x0000028d,0x0000028c,0x000500bc,0x0000006e, + 0x0000028e,0x0000028d,0x000001df,0x000200f9,0x0000028b,0x000200f8,0x0000028b,0x000700f5, + 0x0000006e,0x0000028f,0x00000289,0x00000285,0x0000028e,0x0000028a,0x000200f9,0x00000286, + 0x000200f8,0x00000286,0x000700f5,0x0000006e,0x00000290,0x00000284,0x00000280,0x0000028f, + 0x0000028b,0x000200fe,0x00000290,0x00010038,0x00050036,0x00000032,0x00000077,0x00000000, + 0x00000073,0x00030037,0x00000049,0x00000074,0x00030037,0x00000049,0x00000075,0x00030037, + 0x00000049,0x00000076,0x000200f8,0x00000078,0x0004003b,0x00000049,0x00000293,0x00000007, + 0x0004003b,0x0000001b,0x0000029a,0x00000007,0x0004003b,0x0000001b,0x0000029d,0x00000007, + 0x0004003b,0x0000001b,0x0000029f,0x00000007,0x0004003b,0x0000001b,0x000002a0,0x00000007, + 0x0004003b,0x0000001b,0x000002a6,0x00000007,0x0004003b,0x0000001b,0x000002a9,0x00000007, + 0x0004003b,0x0000001b,0x000002ab,0x00000007,0x0004003b,0x0000001b,0x000002ac,0x00000007, + 0x0004003d,0x00000032,0x00000294,0x00000074,0x0004003d,0x00000032,0x00000295,0x00000075, + 0x00050080,0x00000032,0x00000296,0x00000294,0x00000295,0x0003003e,0x00000293,0x00000296, + 0x00050041,0x0000001b,0x00000297,0x00000076,0x000001c2,0x0004003d,0x0000001a,0x00000298, + 0x00000297,0x00050082,0x0000001a,0x00000299,0x00000298,0x00000194,0x00050041,0x0000001b, + 0x0000029b,0x00000293,0x000001c2,0x0004003d,0x0000001a,0x0000029c,0x0000029b,0x0003003e, + 0x0000029a,0x0000029c,0x0003003e,0x0000029d,0x00000299,0x00060039,0x0000001a,0x0000029e, + 0x0000001f,0x0000029a,0x0000029d,0x0003003e,0x0000029f,0x0000014f,0x0003003e,0x000002a0, + 0x0000029e,0x00060039,0x0000001a,0x000002a1,0x00000027,0x0000029f,0x000002a0,0x00050041, + 0x0000001b,0x000002a2,0x00000293,0x000001c2,0x0003003e,0x000002a2,0x000002a1,0x00050041, + 0x0000001b,0x000002a3,0x00000076,0x00000175,0x0004003d,0x0000001a,0x000002a4,0x000002a3, + 0x00050082,0x0000001a,0x000002a5,0x000002a4,0x00000194,0x00050041,0x0000001b,0x000002a7, + 0x00000293,0x00000175,0x0004003d,0x0000001a,0x000002a8,0x000002a7,0x0003003e,0x000002a6, + 0x000002a8,0x0003003e,0x000002a9,0x000002a5,0x00060039,0x0000001a,0x000002aa,0x0000001f, + 0x000002a6,0x000002a9,0x0003003e,0x000002ab,0x0000014f,0x0003003e,0x000002ac,0x000002aa, + 0x00060039,0x0000001a,0x000002ad,0x00000027,0x000002ab,0x000002ac,0x00050041,0x0000001b, + 0x000002ae,0x00000293,0x00000175,0x0003003e,0x000002ae,0x000002ad,0x0004003d,0x00000032, + 0x000002af,0x00000293,0x000200fe,0x000002af,0x00010038,0x00050036,0x00000002,0x0000007a, + 0x00000000,0x00000063,0x00030037,0x00000007,0x00000079,0x000200f8,0x0000007b,0x0004003b, + 0x00000007,0x000002b4,0x00000007,0x0004003d,0x00000006,0x000002b5,0x000002b3,0x0003003e, + 0x000002b4,0x000002b5,0x00050039,0x00000002,0x000002b6,0x00000065,0x000002b4,0x0004003d, + 0x00000006,0x000002b7,0x000002b4,0x0003003e,0x000002b3,0x000002b7,0x000100fd,0x00010038, + 0x00050036,0x00000006,0x0000007c,0x00000000,0x00000041,0x000200f8,0x0000007d,0x0004003d, + 0x00000006,0x000002b8,0x000002b3,0x000200fe,0x000002b8,0x00010038,0x00050036,0x00000002, + 0x0000007f,0x00000000,0x00000063,0x00030037,0x00000007,0x0000007e,0x000200f8,0x00000080, + 0x00040039,0x00000002,0x000002bb,0x00000067,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000087,0x00000000,0x00000085,0x00030037,0x00000084,0x00000086,0x000200f8,0x00000088, + 0x0004003b,0x00000014,0x000002bc,0x00000007,0x0004003b,0x00000014,0x000002be,0x00000007, + 0x0004003b,0x00000014,0x000002c1,0x00000007,0x0004003b,0x00000014,0x000002c5,0x00000007, + 0x0004003b,0x00000014,0x000002c8,0x00000007,0x0004003b,0x00000014,0x000002cf,0x00000007, + 0x0004003b,0x00000014,0x000002d1,0x00000007,0x0004003b,0x00000014,0x000002d4,0x00000007, + 0x0004003b,0x00000014,0x000002d8,0x00000007,0x0004003b,0x00000014,0x000002db,0x00000007, + 0x0004003b,0x00000014,0x000002e2,0x00000007,0x0004003b,0x00000014,0x000002e3,0x00000007, + 0x0004003b,0x00000014,0x000002e6,0x00000007,0x0004003b,0x00000014,0x000002ea,0x00000007, + 0x0004003b,0x00000014,0x000002ed,0x00000007,0x0004003b,0x00000014,0x000002f4,0x00000007, + 0x0004003b,0x00000014,0x000002f5,0x00000007,0x0004003b,0x00000014,0x000002f8,0x00000007, + 0x0004003b,0x00000014,0x000002fc,0x00000007,0x0004003b,0x00000014,0x000002ff,0x00000007, + 0x0004003b,0x00000014,0x00000306,0x00000007,0x0004003b,0x00000014,0x00000307,0x00000007, + 0x0004003b,0x00000014,0x0000030a,0x00000007,0x0004003b,0x00000014,0x0000030e,0x00000007, + 0x0004003b,0x00000014,0x00000311,0x00000007,0x0004003b,0x00000014,0x00000318,0x00000007, + 0x0004003b,0x00000014,0x00000319,0x00000007,0x0004003b,0x00000014,0x0000031c,0x00000007, + 0x0004003b,0x00000014,0x00000320,0x00000007,0x0004003b,0x00000014,0x00000323,0x00000007, + 0x0004003b,0x00000014,0x0000032a,0x00000007,0x0004003b,0x00000014,0x0000032b,0x00000007, + 0x0004003b,0x00000014,0x0000032e,0x00000007,0x0004003b,0x00000014,0x00000332,0x00000007, + 0x0004003b,0x00000014,0x00000335,0x00000007,0x0004003b,0x00000014,0x0000033c,0x00000007, + 0x0004003b,0x00000014,0x0000033d,0x00000007,0x0004003b,0x00000014,0x00000340,0x00000007, + 0x0004003b,0x00000014,0x00000344,0x00000007,0x0004003b,0x00000014,0x00000347,0x00000007, + 0x0004003b,0x00000014,0x0000034e,0x00000007,0x0004003b,0x00000014,0x0000034f,0x00000007, + 0x0004003b,0x00000014,0x00000352,0x00000007,0x0004003b,0x00000014,0x00000356,0x00000007, + 0x0004003b,0x00000014,0x00000359,0x00000007,0x00060041,0x00000014,0x000002bf,0x00000086, + 0x0000014f,0x0000014f,0x0004003d,0x00000013,0x000002c0,0x000002bf,0x0003003e,0x000002be, + 0x000002c0,0x00060041,0x00000014,0x000002c2,0x00000086,0x0000014f,0x000002bd,0x0004003d, + 0x00000013,0x000002c3,0x000002c2,0x0003003e,0x000002c1,0x000002c3,0x00060039,0x00000013, + 0x000002c4,0x00000018,0x000002be,0x000002c1,0x0003003e,0x000002bc,0x000002c4,0x00060041, + 0x00000014,0x000002c6,0x00000086,0x0000014f,0x0000014f,0x0004003d,0x00000013,0x000002c7, + 0x000002c6,0x0003003e,0x000002c5,0x000002c7,0x00060041,0x00000014,0x000002c9,0x00000086, + 0x0000014f,0x000002bd,0x0004003d,0x00000013,0x000002ca,0x000002c9,0x0003003e,0x000002c8, + 0x000002ca,0x00060039,0x00000013,0x000002cb,0x00000023,0x000002c5,0x000002c8,0x00060041, + 0x00000014,0x000002cc,0x00000086,0x0000014f,0x000002bd,0x0003003e,0x000002cc,0x000002cb, + 0x0004003d,0x00000013,0x000002cd,0x000002bc,0x00060041,0x00000014,0x000002ce,0x00000086, + 0x0000014f,0x0000014f,0x0003003e,0x000002ce,0x000002cd,0x00060041,0x00000014,0x000002d2, + 0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x000002d3,0x000002d2,0x0003003e, + 0x000002d1,0x000002d3,0x00060041,0x00000014,0x000002d5,0x00000086,0x0000014f,0x000002d0, + 0x0004003d,0x00000013,0x000002d6,0x000002d5,0x0003003e,0x000002d4,0x000002d6,0x00060039, + 0x00000013,0x000002d7,0x00000018,0x000002d1,0x000002d4,0x0003003e,0x000002cf,0x000002d7, + 0x00060041,0x00000014,0x000002d9,0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013, + 0x000002da,0x000002d9,0x0003003e,0x000002d8,0x000002da,0x00060041,0x00000014,0x000002dc, + 0x00000086,0x0000014f,0x000002d0,0x0004003d,0x00000013,0x000002dd,0x000002dc,0x0003003e, + 0x000002db,0x000002dd,0x00060039,0x00000013,0x000002de,0x00000023,0x000002d8,0x000002db, + 0x00060041,0x00000014,0x000002df,0x00000086,0x0000014f,0x000002d0,0x0003003e,0x000002df, + 0x000002de,0x0004003d,0x00000013,0x000002e0,0x000002cf,0x00060041,0x00000014,0x000002e1, + 0x00000086,0x0000014f,0x00000194,0x0003003e,0x000002e1,0x000002e0,0x00060041,0x00000014, + 0x000002e4,0x00000086,0x0000014f,0x0000014f,0x0004003d,0x00000013,0x000002e5,0x000002e4, + 0x0003003e,0x000002e3,0x000002e5,0x00060041,0x00000014,0x000002e7,0x00000086,0x0000014f, + 0x000001b6,0x0004003d,0x00000013,0x000002e8,0x000002e7,0x0003003e,0x000002e6,0x000002e8, + 0x00060039,0x00000013,0x000002e9,0x00000018,0x000002e3,0x000002e6,0x0003003e,0x000002e2, + 0x000002e9,0x00060041,0x00000014,0x000002eb,0x00000086,0x0000014f,0x0000014f,0x0004003d, + 0x00000013,0x000002ec,0x000002eb,0x0003003e,0x000002ea,0x000002ec,0x00060041,0x00000014, + 0x000002ee,0x00000086,0x0000014f,0x000001b6,0x0004003d,0x00000013,0x000002ef,0x000002ee, + 0x0003003e,0x000002ed,0x000002ef,0x00060039,0x00000013,0x000002f0,0x00000023,0x000002ea, + 0x000002ed,0x00060041,0x00000014,0x000002f1,0x00000086,0x0000014f,0x000001b6,0x0003003e, + 0x000002f1,0x000002f0,0x0004003d,0x00000013,0x000002f2,0x000002e2,0x00060041,0x00000014, + 0x000002f3,0x00000086,0x0000014f,0x0000014f,0x0003003e,0x000002f3,0x000002f2,0x00060041, + 0x00000014,0x000002f6,0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x000002f7, + 0x000002f6,0x0003003e,0x000002f5,0x000002f7,0x00060041,0x00000014,0x000002f9,0x00000086, + 0x0000014f,0x000002bd,0x0004003d,0x00000013,0x000002fa,0x000002f9,0x0003003e,0x000002f8, + 0x000002fa,0x00060039,0x00000013,0x000002fb,0x00000018,0x000002f5,0x000002f8,0x0003003e, + 0x000002f4,0x000002fb,0x00060041,0x00000014,0x000002fd,0x00000086,0x0000014f,0x00000194, + 0x0004003d,0x00000013,0x000002fe,0x000002fd,0x0003003e,0x000002fc,0x000002fe,0x00060041, + 0x00000014,0x00000300,0x00000086,0x0000014f,0x000002bd,0x0004003d,0x00000013,0x00000301, + 0x00000300,0x0003003e,0x000002ff,0x00000301,0x00060039,0x00000013,0x00000302,0x00000023, + 0x000002fc,0x000002ff,0x00060041,0x00000014,0x00000303,0x00000086,0x0000014f,0x000002bd, + 0x0003003e,0x00000303,0x00000302,0x0004003d,0x00000013,0x00000304,0x000002f4,0x00060041, + 0x00000014,0x00000305,0x00000086,0x0000014f,0x00000194,0x0003003e,0x00000305,0x00000304, + 0x00060041,0x00000014,0x00000308,0x00000086,0x0000014f,0x0000014f,0x0004003d,0x00000013, + 0x00000309,0x00000308,0x0003003e,0x00000307,0x00000309,0x00060041,0x00000014,0x0000030b, + 0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x0000030c,0x0000030b,0x0003003e, + 0x0000030a,0x0000030c,0x00060039,0x00000013,0x0000030d,0x00000018,0x00000307,0x0000030a, + 0x0003003e,0x00000306,0x0000030d,0x00060041,0x00000014,0x0000030f,0x00000086,0x0000014f, + 0x0000014f,0x0004003d,0x00000013,0x00000310,0x0000030f,0x0003003e,0x0000030e,0x00000310, + 0x00060041,0x00000014,0x00000312,0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013, + 0x00000313,0x00000312,0x0003003e,0x00000311,0x00000313,0x00060039,0x00000013,0x00000314, + 0x00000023,0x0000030e,0x00000311,0x00060041,0x00000014,0x00000315,0x00000086,0x0000014f, + 0x00000194,0x0003003e,0x00000315,0x00000314,0x0004003d,0x00000013,0x00000316,0x00000306, + 0x00060041,0x00000014,0x00000317,0x00000086,0x0000014f,0x0000014f,0x0003003e,0x00000317, + 0x00000316,0x00060041,0x00000014,0x0000031a,0x00000086,0x0000014f,0x000001b6,0x0004003d, + 0x00000013,0x0000031b,0x0000031a,0x0003003e,0x00000319,0x0000031b,0x00060041,0x00000014, + 0x0000031d,0x00000086,0x0000014f,0x000002d0,0x0004003d,0x00000013,0x0000031e,0x0000031d, + 0x0003003e,0x0000031c,0x0000031e,0x00060039,0x00000013,0x0000031f,0x00000018,0x00000319, + 0x0000031c,0x0003003e,0x00000318,0x0000031f,0x00060041,0x00000014,0x00000321,0x00000086, + 0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000322,0x00000321,0x0003003e,0x00000320, + 0x00000322,0x00060041,0x00000014,0x00000324,0x00000086,0x0000014f,0x000002d0,0x0004003d, + 0x00000013,0x00000325,0x00000324,0x0003003e,0x00000323,0x00000325,0x00060039,0x00000013, + 0x00000326,0x00000023,0x00000320,0x00000323,0x00060041,0x00000014,0x00000327,0x00000086, + 0x0000014f,0x000002d0,0x0003003e,0x00000327,0x00000326,0x0004003d,0x00000013,0x00000328, + 0x00000318,0x00060041,0x00000014,0x00000329,0x00000086,0x0000014f,0x000001b6,0x0003003e, + 0x00000329,0x00000328,0x00060041,0x00000014,0x0000032c,0x00000086,0x0000014f,0x00000194, + 0x0004003d,0x00000013,0x0000032d,0x0000032c,0x0003003e,0x0000032b,0x0000032d,0x00060041, + 0x00000014,0x0000032f,0x00000086,0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000330, + 0x0000032f,0x0003003e,0x0000032e,0x00000330,0x00060039,0x00000013,0x00000331,0x00000018, + 0x0000032b,0x0000032e,0x0003003e,0x0000032a,0x00000331,0x00060041,0x00000014,0x00000333, + 0x00000086,0x0000014f,0x00000194,0x0004003d,0x00000013,0x00000334,0x00000333,0x0003003e, + 0x00000332,0x00000334,0x00060041,0x00000014,0x00000336,0x00000086,0x0000014f,0x000001b6, + 0x0004003d,0x00000013,0x00000337,0x00000336,0x0003003e,0x00000335,0x00000337,0x00060039, + 0x00000013,0x00000338,0x00000023,0x00000332,0x00000335,0x00060041,0x00000014,0x00000339, + 0x00000086,0x0000014f,0x000001b6,0x0003003e,0x00000339,0x00000338,0x0004003d,0x00000013, + 0x0000033a,0x0000032a,0x00060041,0x00000014,0x0000033b,0x00000086,0x0000014f,0x00000194, + 0x0003003e,0x0000033b,0x0000033a,0x00060041,0x00000014,0x0000033e,0x00000086,0x0000014f, + 0x000002bd,0x0004003d,0x00000013,0x0000033f,0x0000033e,0x0003003e,0x0000033d,0x0000033f, + 0x00060041,0x00000014,0x00000341,0x00000086,0x0000014f,0x000002d0,0x0004003d,0x00000013, + 0x00000342,0x00000341,0x0003003e,0x00000340,0x00000342,0x00060039,0x00000013,0x00000343, + 0x00000018,0x0000033d,0x00000340,0x0003003e,0x0000033c,0x00000343,0x00060041,0x00000014, + 0x00000345,0x00000086,0x0000014f,0x000002bd,0x0004003d,0x00000013,0x00000346,0x00000345, + 0x0003003e,0x00000344,0x00000346,0x00060041,0x00000014,0x00000348,0x00000086,0x0000014f, + 0x000002d0,0x0004003d,0x00000013,0x00000349,0x00000348,0x0003003e,0x00000347,0x00000349, + 0x00060039,0x00000013,0x0000034a,0x00000023,0x00000344,0x00000347,0x00060041,0x00000014, + 0x0000034b,0x00000086,0x0000014f,0x000002d0,0x0003003e,0x0000034b,0x0000034a,0x0004003d, + 0x00000013,0x0000034c,0x0000033c,0x00060041,0x00000014,0x0000034d,0x00000086,0x0000014f, + 0x000002bd,0x0003003e,0x0000034d,0x0000034c,0x00060041,0x00000014,0x00000350,0x00000086, + 0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000351,0x00000350,0x0003003e,0x0000034f, + 0x00000351,0x00060041,0x00000014,0x00000353,0x00000086,0x0000014f,0x000002bd,0x0004003d, + 0x00000013,0x00000354,0x00000353,0x0003003e,0x00000352,0x00000354,0x00060039,0x00000013, + 0x00000355,0x00000018,0x0000034f,0x00000352,0x0003003e,0x0000034e,0x00000355,0x00060041, + 0x00000014,0x00000357,0x00000086,0x0000014f,0x000001b6,0x0004003d,0x00000013,0x00000358, + 0x00000357,0x0003003e,0x00000356,0x00000358,0x00060041,0x00000014,0x0000035a,0x00000086, + 0x0000014f,0x000002bd,0x0004003d,0x00000013,0x0000035b,0x0000035a,0x0003003e,0x00000359, + 0x0000035b,0x00060039,0x00000013,0x0000035c,0x00000023,0x00000356,0x00000359,0x00060041, + 0x00000014,0x0000035d,0x00000086,0x0000014f,0x000002bd,0x0003003e,0x0000035d,0x0000035c, + 0x0004003d,0x00000013,0x0000035e,0x0000034e,0x00060041,0x00000014,0x0000035f,0x00000086, + 0x0000014f,0x000001b6,0x0003003e,0x0000035f,0x0000035e,0x000100fd,0x00010038,0x00050036, + 0x00000013,0x0000008d,0x00000000,0x00000089,0x00030037,0x00000049,0x0000008a,0x00030037, + 0x00000084,0x0000008b,0x00030037,0x00000084,0x0000008c,0x000200f8,0x0000008e,0x0004003b, + 0x00000014,0x00000360,0x00000007,0x0004003b,0x0000001b,0x00000362,0x00000007,0x0004003b, + 0x0000001b,0x00000363,0x00000007,0x0004003b,0x00000084,0x00000364,0x00000007,0x0004003b, + 0x00000084,0x00000368,0x00000007,0x0004003b,0x00000014,0x0000036c,0x00000007,0x0004003b, + 0x00000014,0x0000036d,0x00000007,0x0004003b,0x00000014,0x00000370,0x00000007,0x0004003b, + 0x0000001b,0x00000379,0x00000007,0x0004003b,0x00000014,0x00000386,0x00000007,0x0003003e, + 0x00000360,0x00000361,0x0003003e,0x00000362,0x0000014f,0x0003003e,0x00000363,0x0000014f, + 0x0004003d,0x00000083,0x00000365,0x0000008b,0x0003003e,0x00000364,0x00000365,0x00050039, + 0x00000002,0x00000366,0x00000087,0x00000364,0x0004003d,0x00000083,0x00000367,0x00000364, + 0x0003003e,0x0000008b,0x00000367,0x0004003d,0x00000083,0x00000369,0x0000008c,0x0003003e, + 0x00000368,0x00000369,0x00050039,0x00000002,0x0000036a,0x00000087,0x00000368,0x0004003d, + 0x00000083,0x0000036b,0x00000368,0x0003003e,0x0000008c,0x0000036b,0x00060041,0x00000014, + 0x0000036e,0x0000008b,0x0000014f,0x000002d0,0x0004003d,0x00000013,0x0000036f,0x0000036e, + 0x0003003e,0x0000036d,0x0000036f,0x00060041,0x00000014,0x00000371,0x0000008c,0x0000014f, + 0x000002d0,0x0004003d,0x00000013,0x00000372,0x00000371,0x0003003e,0x00000370,0x00000372, + 0x00060039,0x00000013,0x00000373,0x00000018,0x0000036d,0x00000370,0x0003003e,0x0000036c, + 0x00000373,0x0004003d,0x00000013,0x00000374,0x0000036c,0x000500ba,0x0000006e,0x00000376, + 0x00000374,0x00000375,0x000300f7,0x00000378,0x00000000,0x000400fa,0x00000376,0x00000377, + 0x00000378,0x000200f8,0x00000377,0x0003003e,0x00000379,0x0000014f,0x000200f9,0x0000037a, + 0x000200f8,0x0000037a,0x000400f6,0x0000037c,0x0000037d,0x00000000,0x000200f9,0x0000037e, + 0x000200f8,0x0000037e,0x0004003d,0x0000001a,0x0000037f,0x00000379,0x000500b1,0x0000006e, + 0x00000381,0x0000037f,0x00000380,0x0004003d,0x00000013,0x00000382,0x00000360,0x000500b8, + 0x0000006e,0x00000384,0x00000382,0x00000383,0x000500a7,0x0000006e,0x00000385,0x00000381, + 0x00000384,0x000400fa,0x00000385,0x0000037b,0x0000037c,0x000200f8,0x0000037b,0x0004003d, + 0x0000001a,0x00000387,0x00000362,0x00060041,0x00000014,0x00000388,0x0000008b,0x0000014f, + 0x00000387,0x0004003d,0x00000013,0x00000389,0x00000388,0x0004003d,0x0000001a,0x0000038a, + 0x00000363,0x00060041,0x00000014,0x0000038b,0x0000008c,0x0000014f,0x0000038a,0x0004003d, + 0x00000013,0x0000038c,0x0000038b,0x00050083,0x00000013,0x0000038d,0x00000389,0x0000038c, + 0x0003003e,0x00000386,0x0000038d,0x0004003d,0x00000013,0x0000038e,0x00000386,0x0006000c, + 0x00000013,0x0000038f,0x00000001,0x00000004,0x0000038e,0x000500ba,0x0000006e,0x00000391, + 0x0000038f,0x00000390,0x000300f7,0x00000393,0x00000000,0x000400fa,0x00000391,0x00000392, + 0x000003bb,0x000200f8,0x00000392,0x0004003d,0x00000013,0x00000394,0x00000386,0x0006000c, + 0x00000013,0x00000395,0x00000001,0x00000006,0x00000394,0x0004003d,0x0000001a,0x00000396, + 0x00000362,0x00060041,0x00000014,0x00000397,0x0000008b,0x0000014f,0x00000396,0x0004003d, + 0x00000013,0x00000398,0x00000397,0x0004003d,0x0000001a,0x00000399,0x00000363,0x00060041, + 0x00000014,0x0000039a,0x0000008c,0x0000014f,0x00000399,0x0004003d,0x00000013,0x0000039b, + 0x0000039a,0x00060039,0x00000013,0x0000039c,0x0000006c,0x00000398,0x0000039b,0x00050083, + 0x00000013,0x0000039d,0x000001df,0x0000039c,0x00050085,0x00000013,0x0000039e,0x00000395, + 0x0000039d,0x0003003e,0x00000386,0x0000039e,0x0004003d,0x00000013,0x0000039f,0x00000386, + 0x0006000c,0x00000013,0x000003a0,0x00000001,0x00000004,0x0000039f,0x0004003d,0x00000013, + 0x000003a1,0x00000360,0x0006000c,0x00000013,0x000003a2,0x00000001,0x00000004,0x000003a1, + 0x000500b8,0x0000006e,0x000003a3,0x000003a0,0x000003a2,0x0004003d,0x00000013,0x000003a4, + 0x00000386,0x0004003d,0x00000013,0x000003a5,0x00000360,0x000600a9,0x00000013,0x000003a6, + 0x000003a3,0x000003a4,0x000003a5,0x0003003e,0x00000360,0x000003a6,0x0004003d,0x0000001a, + 0x000003a7,0x00000362,0x00060041,0x00000014,0x000003a8,0x0000008b,0x0000014f,0x000003a7, + 0x0004003d,0x00000013,0x000003a9,0x000003a8,0x0004003d,0x0000001a,0x000003aa,0x00000363, + 0x00060041,0x00000014,0x000003ab,0x0000008c,0x0000014f,0x000003aa,0x0004003d,0x00000013, + 0x000003ac,0x000003ab,0x000500b8,0x0000006e,0x000003ad,0x000003a9,0x000003ac,0x000600a9, + 0x0000001a,0x000003ae,0x000003ad,0x00000194,0x0000014f,0x0004003d,0x0000001a,0x000003af, + 0x00000362,0x00050080,0x0000001a,0x000003b0,0x000003af,0x000003ae,0x0003003e,0x00000362, + 0x000003b0,0x0004003d,0x0000001a,0x000003b1,0x00000362,0x00060041,0x00000014,0x000003b2, + 0x0000008b,0x0000014f,0x000003b1,0x0004003d,0x00000013,0x000003b3,0x000003b2,0x0004003d, + 0x0000001a,0x000003b4,0x00000363,0x00060041,0x00000014,0x000003b5,0x0000008c,0x0000014f, + 0x000003b4,0x0004003d,0x00000013,0x000003b6,0x000003b5,0x000500be,0x0000006e,0x000003b7, + 0x000003b3,0x000003b6,0x000600a9,0x0000001a,0x000003b8,0x000003b7,0x00000194,0x0000014f, + 0x0004003d,0x0000001a,0x000003b9,0x00000363,0x00050080,0x0000001a,0x000003ba,0x000003b9, + 0x000003b8,0x0003003e,0x00000363,0x000003ba,0x000200f9,0x00000393,0x000200f8,0x000003bb, + 0x0003003e,0x00000360,0x00000383,0x000200f9,0x00000393,0x000200f8,0x00000393,0x000200f9, + 0x0000037d,0x000200f8,0x0000037d,0x0004003d,0x0000001a,0x000003bc,0x00000379,0x00050080, + 0x0000001a,0x000003bd,0x000003bc,0x00000194,0x0003003e,0x00000379,0x000003bd,0x000200f9, + 0x0000037a,0x000200f8,0x0000037c,0x000200f9,0x00000378,0x000200f8,0x00000378,0x0004003d, + 0x00000013,0x000003be,0x00000360,0x0004003d,0x00000013,0x000003bf,0x00000360,0x000500b8, + 0x0000006e,0x000003c0,0x000003bf,0x00000361,0x000600a9,0x00000013,0x000003c1,0x000003c0, + 0x000001df,0x000001db,0x00050085,0x00000013,0x000003c2,0x000003be,0x000003c1,0x000200fe, + 0x000003c2,0x00010038,0x00050036,0x00000083,0x00000091,0x00000000,0x0000008f,0x00030037, + 0x0000005c,0x00000090,0x000200f8,0x00000092,0x0004003b,0x0000005c,0x000003c5,0x00000007, + 0x0004003b,0x00000049,0x000003cc,0x00000007,0x0004003b,0x0000001b,0x000003d3,0x00000007, + 0x0004003b,0x00000049,0x000003db,0x00000007,0x0004003b,0x00000049,0x000003e5,0x00000007, + 0x0004003b,0x00000049,0x000003e7,0x00000007,0x0004003b,0x000003e8,0x000003e9,0x00000007, + 0x0004003b,0x00000049,0x000003ec,0x00000007,0x0004003b,0x00000084,0x000003ee,0x00000007, + 0x0004003b,0x00000049,0x000003f0,0x00000007,0x0004003b,0x00000014,0x000003f8,0x00000007, + 0x0004003b,0x00000014,0x000003fb,0x00000007,0x0004003b,0x00000014,0x00000400,0x00000007, + 0x0004003b,0x00000014,0x00000403,0x00000007,0x0004003d,0x00000038,0x000003c6,0x00000090, + 0x00040039,0x00000038,0x000003c7,0x0000003a,0x00040039,0x00000032,0x000003c8,0x00000034, + 0x0004006f,0x00000038,0x000003c9,0x000003c8,0x00050088,0x00000038,0x000003ca,0x000003c7, + 0x000003c9,0x00050081,0x00000038,0x000003cb,0x000003c6,0x000003ca,0x0003003e,0x000003c5, + 0x000003cb,0x0004003d,0x00000038,0x000003cd,0x000003c5,0x00040039,0x00000032,0x000003ce, + 0x00000034,0x0004006f,0x00000038,0x000003cf,0x000003ce,0x00050085,0x00000038,0x000003d0, + 0x000003cd,0x000003cf,0x0006000c,0x00000038,0x000003d1,0x00000001,0x00000008,0x000003d0, + 0x0004006e,0x00000032,0x000003d2,0x000003d1,0x0003003e,0x000003cc,0x000003d2,0x0003003e, + 0x000003d3,0x0000014f,0x000200f9,0x000003d4,0x000200f8,0x000003d4,0x000400f6,0x000003d6, + 0x000003d7,0x00000000,0x000200f9,0x000003d8,0x000200f8,0x000003d8,0x0004003d,0x0000001a, + 0x000003d9,0x000003d3,0x000500b1,0x0000006e,0x000003da,0x000003d9,0x00000380,0x000400fa, + 0x000003da,0x000003d5,0x000003d6,0x000200f8,0x000003d5,0x0004003d,0x0000001a,0x000003e3, + 0x000003d3,0x00040039,0x00000032,0x000003e4,0x00000034,0x0004003d,0x00000032,0x000003e6, + 0x000003cc,0x0003003e,0x000003e5,0x000003e6,0x0003003e,0x000003e9,0x000003e2,0x00050041, + 0x00000049,0x000003ea,0x000003e9,0x000003e3,0x0004003d,0x00000032,0x000003eb,0x000003ea, + 0x0003003e,0x000003e7,0x000003eb,0x0003003e,0x000003ec,0x000003e4,0x00070039,0x00000032, + 0x000003ed,0x00000077,0x000003e5,0x000003e7,0x000003ec,0x0003003e,0x000003db,0x000003ed, + 0x0004003d,0x0000001a,0x000003ef,0x000003d3,0x0004003d,0x00000032,0x000003f1,0x000003db, + 0x0003003e,0x000003f0,0x000003f1,0x00050039,0x00000013,0x000003f2,0x0000004c,0x000003f0, + 0x00040039,0x00000013,0x000003f3,0x00000055,0x00050085,0x00000013,0x000003f4,0x000003f2, + 0x000003f3,0x00060041,0x00000014,0x000003f5,0x000003ee,0x0000014f,0x000003ef,0x0003003e, + 0x000003f5,0x000003f4,0x0004003d,0x0000001a,0x000003f6,0x000003d3,0x0004003d,0x0000001a, + 0x000003f7,0x000003d3,0x00060041,0x00000014,0x000003f9,0x000003ee,0x0000014f,0x000003f7, + 0x0004003d,0x00000013,0x000003fa,0x000003f9,0x0003003e,0x000003f8,0x000003fa,0x0003003e, + 0x000003fb,0x000001df,0x00060039,0x00000013,0x000003fc,0x0000002b,0x000003f8,0x000003fb, + 0x00060041,0x00000014,0x000003fd,0x000003ee,0x0000014f,0x000003f6,0x0003003e,0x000003fd, + 0x000003fc,0x0004003d,0x0000001a,0x000003fe,0x000003d3,0x0004003d,0x0000001a,0x000003ff, + 0x000003d3,0x00060041,0x00000014,0x00000401,0x000003ee,0x0000014f,0x000003ff,0x0004003d, + 0x00000013,0x00000402,0x00000401,0x0003003e,0x00000400,0x00000402,0x0003003e,0x00000403, + 0x00000390,0x00060039,0x00000013,0x00000404,0x00000023,0x00000400,0x00000403,0x00060041, + 0x00000014,0x00000405,0x000003ee,0x0000014f,0x000003fe,0x0003003e,0x00000405,0x00000404, + 0x000200f9,0x000003d7,0x000200f8,0x000003d7,0x0004003d,0x0000001a,0x00000406,0x000003d3, + 0x00050080,0x0000001a,0x00000407,0x00000406,0x00000194,0x0003003e,0x000003d3,0x00000407, + 0x000200f9,0x000003d4,0x000200f8,0x000003d6,0x0004003d,0x00000083,0x00000408,0x000003ee, + 0x000200fe,0x00000408,0x00010038,0x00050036,0x00000093,0x00000097,0x00000000,0x00000094, + 0x00030037,0x0000005c,0x00000095,0x00030037,0x0000005c,0x00000096,0x000200f8,0x00000098, + 0x0004003b,0x0000005c,0x0000040b,0x00000007,0x0004003b,0x0000005c,0x00000412,0x00000007, + 0x0004003b,0x00000416,0x00000417,0x00000007,0x0004003b,0x0000005c,0x00000418,0x00000007, + 0x0004003b,0x00000049,0x00000421,0x00000007,0x0004003b,0x0000001b,0x00000428,0x00000007, + 0x0004003b,0x00000049,0x00000430,0x00000007,0x0004003b,0x00000049,0x00000433,0x00000007, + 0x0004003b,0x00000049,0x00000435,0x00000007,0x0004003b,0x000003e8,0x00000436,0x00000007, + 0x0004003b,0x00000049,0x00000439,0x00000007,0x0004003b,0x00000049,0x0000043c,0x00000007, + 0x0004003b,0x00000014,0x00000446,0x00000007,0x0004003b,0x00000014,0x00000449,0x00000007, + 0x0004003b,0x00000014,0x0000044e,0x00000007,0x0004003b,0x00000014,0x00000451,0x00000007, + 0x0004003d,0x00000038,0x0000040c,0x00000095,0x00040039,0x00000038,0x0000040d,0x0000003c, + 0x00040039,0x00000032,0x0000040e,0x00000036,0x0004006f,0x00000038,0x0000040f,0x0000040e, + 0x00050088,0x00000038,0x00000410,0x0000040d,0x0000040f,0x00050081,0x00000038,0x00000411, + 0x0000040c,0x00000410,0x0003003e,0x0000040b,0x00000411,0x0004003d,0x00000038,0x00000413, + 0x0000040b,0x0004003d,0x00000038,0x00000414,0x00000096,0x00050081,0x00000038,0x00000415, + 0x00000413,0x00000414,0x0003003e,0x00000412,0x00000415,0x0004003d,0x00000038,0x00000419, + 0x00000412,0x0003003e,0x00000418,0x00000419,0x00050039,0x0000006e,0x0000041a,0x00000071, + 0x00000418,0x00050041,0x0000041b,0x0000041c,0x00000417,0x00000194,0x0003003e,0x0000041c, + 0x0000041a,0x00050041,0x0000041b,0x0000041d,0x00000417,0x00000194,0x0004003d,0x0000006e, + 0x0000041e,0x0000041d,0x000300f7,0x00000420,0x00000000,0x000400fa,0x0000041e,0x0000041f, + 0x00000420,0x000200f8,0x0000041f,0x0004003d,0x00000038,0x00000422,0x00000412,0x00040039, + 0x00000032,0x00000423,0x00000036,0x0004006f,0x00000038,0x00000424,0x00000423,0x00050085, + 0x00000038,0x00000425,0x00000422,0x00000424,0x0006000c,0x00000038,0x00000426,0x00000001, + 0x00000008,0x00000425,0x0004006e,0x00000032,0x00000427,0x00000426,0x0003003e,0x00000421, + 0x00000427,0x0003003e,0x00000428,0x0000014f,0x000200f9,0x00000429,0x000200f8,0x00000429, + 0x000400f6,0x0000042b,0x0000042c,0x00000000,0x000200f9,0x0000042d,0x000200f8,0x0000042d, + 0x0004003d,0x0000001a,0x0000042e,0x00000428,0x000500b1,0x0000006e,0x0000042f,0x0000042e, + 0x00000380,0x000400fa,0x0000042f,0x0000042a,0x0000042b,0x000200f8,0x0000042a,0x0004003d, + 0x0000001a,0x00000431,0x00000428,0x00040039,0x00000032,0x00000432,0x00000036,0x0004003d, + 0x00000032,0x00000434,0x00000421,0x0003003e,0x00000433,0x00000434,0x0003003e,0x00000436, + 0x000003e2,0x00050041,0x00000049,0x00000437,0x00000436,0x00000431,0x0004003d,0x00000032, + 0x00000438,0x00000437,0x0003003e,0x00000435,0x00000438,0x0003003e,0x00000439,0x00000432, + 0x00070039,0x00000032,0x0000043a,0x00000077,0x00000433,0x00000435,0x00000439,0x0003003e, + 0x00000430,0x0000043a,0x0004003d,0x0000001a,0x0000043b,0x00000428,0x0004003d,0x00000032, + 0x0000043d,0x00000430,0x0003003e,0x0000043c,0x0000043d,0x00050039,0x00000013,0x0000043e, + 0x0000004f,0x0000043c,0x00040039,0x00000013,0x0000043f,0x0000003f,0x00050085,0x00000013, + 0x00000440,0x0000043e,0x0000043f,0x00040039,0x00000013,0x00000441,0x00000055,0x00050085, + 0x00000013,0x00000442,0x00000440,0x00000441,0x00070041,0x00000014,0x00000443,0x00000417, + 0x0000014f,0x0000014f,0x0000043b,0x0003003e,0x00000443,0x00000442,0x0004003d,0x0000001a, + 0x00000444,0x00000428,0x0004003d,0x0000001a,0x00000445,0x00000428,0x00070041,0x00000014, + 0x00000447,0x00000417,0x0000014f,0x0000014f,0x00000445,0x0004003d,0x00000013,0x00000448, + 0x00000447,0x0003003e,0x00000446,0x00000448,0x0003003e,0x00000449,0x000001df,0x00060039, + 0x00000013,0x0000044a,0x0000002b,0x00000446,0x00000449,0x00070041,0x00000014,0x0000044b, + 0x00000417,0x0000014f,0x0000014f,0x00000444,0x0003003e,0x0000044b,0x0000044a,0x0004003d, + 0x0000001a,0x0000044c,0x00000428,0x0004003d,0x0000001a,0x0000044d,0x00000428,0x00070041, + 0x00000014,0x0000044f,0x00000417,0x0000014f,0x0000014f,0x0000044d,0x0004003d,0x00000013, + 0x00000450,0x0000044f,0x0003003e,0x0000044e,0x00000450,0x0003003e,0x00000451,0x00000390, + 0x00060039,0x00000013,0x00000452,0x00000023,0x0000044e,0x00000451,0x00070041,0x00000014, + 0x00000453,0x00000417,0x0000014f,0x0000014f,0x0000044c,0x0003003e,0x00000453,0x00000452, + 0x000200f9,0x0000042c,0x000200f8,0x0000042c,0x0004003d,0x0000001a,0x00000454,0x00000428, + 0x00050080,0x0000001a,0x00000455,0x00000454,0x00000194,0x0003003e,0x00000428,0x00000455, + 0x000200f9,0x00000429,0x000200f8,0x0000042b,0x000200f9,0x00000420,0x000200f8,0x00000420, + 0x0004003d,0x00000093,0x00000456,0x00000417,0x000200fe,0x00000456,0x00010038,0x00050036, + 0x00000013,0x0000009d,0x00000000,0x00000099,0x00030037,0x00000049,0x0000009a,0x00030037, + 0x0000005c,0x0000009b,0x00030037,0x0000005c,0x0000009c,0x000200f8,0x0000009e,0x0004003b, + 0x00000014,0x00000459,0x00000007,0x0004003b,0x00000084,0x0000045a,0x00000007,0x0004003b, + 0x0000005c,0x0000045b,0x00000007,0x0004003b,0x00000416,0x0000045e,0x00000007,0x0004003b, + 0x0000005c,0x0000045f,0x00000007,0x0004003b,0x0000005c,0x00000461,0x00000007,0x0004003b, + 0x00000049,0x00000468,0x00000007,0x0004003b,0x00000084,0x0000046a,0x00000007,0x0004003b, + 0x00000084,0x0000046c,0x00000007,0x0003003e,0x00000459,0x000001db,0x0004003d,0x00000038, + 0x0000045c,0x0000009b,0x0003003e,0x0000045b,0x0000045c,0x00050039,0x00000083,0x0000045d, + 0x00000091,0x0000045b,0x0003003e,0x0000045a,0x0000045d,0x0004003d,0x00000038,0x00000460, + 0x0000009b,0x0003003e,0x0000045f,0x00000460,0x0004003d,0x00000038,0x00000462,0x0000009c, + 0x0003003e,0x00000461,0x00000462,0x00060039,0x00000093,0x00000463,0x00000097,0x0000045f, + 0x00000461,0x0003003e,0x0000045e,0x00000463,0x00050041,0x0000041b,0x00000464,0x0000045e, + 0x00000194,0x0004003d,0x0000006e,0x00000465,0x00000464,0x000300f7,0x00000467,0x00000000, + 0x000400fa,0x00000465,0x00000466,0x00000467,0x000200f8,0x00000466,0x0004003d,0x00000032, + 0x00000469,0x0000009a,0x0003003e,0x00000468,0x00000469,0x0004003d,0x00000083,0x0000046b, + 0x0000045a,0x0003003e,0x0000046a,0x0000046b,0x00050041,0x00000084,0x0000046d,0x0000045e, + 0x0000014f,0x0004003d,0x00000083,0x0000046e,0x0000046d,0x0003003e,0x0000046c,0x0000046e, + 0x00070039,0x00000013,0x0000046f,0x0000008d,0x00000468,0x0000046a,0x0000046c,0x0003003e, + 0x00000459,0x0000046f,0x000200f9,0x00000467,0x000200f8,0x00000467,0x0004003d,0x00000013, + 0x00000470,0x00000459,0x000200fe,0x00000470,0x00010038,0x00050036,0x0000009f,0x000000a3, + 0x00000000,0x000000a0,0x00030037,0x0000005c,0x000000a1,0x00030037,0x00000007,0x000000a2, + 0x000200f8,0x000000a4,0x0004003b,0x00000049,0x00000473,0x00000007,0x0004003b,0x00000049, + 0x00000477,0x00000007,0x0004003b,0x00000049,0x00000478,0x00000007,0x0004003b,0x00000049, + 0x00000479,0x00000007,0x0004003b,0x0000005c,0x0000047b,0x00000007,0x0004003b,0x00000049, + 0x0000047c,0x00000007,0x0004003b,0x0000005c,0x0000047f,0x00000007,0x0004003b,0x00000014, + 0x00000488,0x00000007,0x0004003b,0x00000049,0x00000489,0x00000007,0x0004003b,0x0000005c, + 0x0000048b,0x00000007,0x0004003b,0x0000005c,0x0000048d,0x00000007,0x0004003b,0x000000aa, + 0x00000490,0x00000007,0x0004003b,0x00000014,0x00000496,0x00000007,0x0004003d,0x00000038, + 0x00000474,0x000000a1,0x0004006e,0x00000032,0x00000475,0x00000474,0x00040039,0x00000032, + 0x00000476,0x00000034,0x0003003e,0x00000477,0x00000475,0x0003003e,0x00000478,0x000001d7, + 0x0003003e,0x00000479,0x00000476,0x00070039,0x00000032,0x0000047a,0x00000077,0x00000477, + 0x00000478,0x00000479,0x0003003e,0x00000473,0x0000047a,0x0004003d,0x00000032,0x0000047d, + 0x00000473,0x0003003e,0x0000047c,0x0000047d,0x00050039,0x00000038,0x0000047e,0x00000053, + 0x0000047c,0x0003003e,0x0000047b,0x0000047e,0x0004003d,0x00000032,0x00000480,0x00000473, + 0x0004006f,0x00000038,0x00000481,0x00000480,0x00050050,0x00000038,0x00000483,0x00000482, + 0x00000482,0x00050081,0x00000038,0x00000484,0x00000481,0x00000483,0x00040039,0x00000032, + 0x00000485,0x00000034,0x0004006f,0x00000038,0x00000486,0x00000485,0x00050088,0x00000038, + 0x00000487,0x00000484,0x00000486,0x0003003e,0x0000047f,0x00000487,0x0004003d,0x00000032, + 0x0000048a,0x00000473,0x0003003e,0x00000489,0x0000048a,0x0004003d,0x00000038,0x0000048c, + 0x0000047f,0x0003003e,0x0000048b,0x0000048c,0x0004003d,0x00000038,0x0000048e,0x0000047b, + 0x0003003e,0x0000048d,0x0000048e,0x00070039,0x00000013,0x0000048f,0x0000009d,0x00000489, + 0x0000048b,0x0000048d,0x0003003e,0x00000488,0x0000048f,0x0003003e,0x00000490,0x00000491, + 0x0004003d,0x00000013,0x00000492,0x00000488,0x00050041,0x00000014,0x00000493,0x00000490, + 0x000001c2,0x0003003e,0x00000493,0x00000492,0x0004003d,0x00000013,0x00000494,0x00000488, + 0x000500b7,0x0000006e,0x00000495,0x00000494,0x000001db,0x000300f7,0x00000498,0x00000000, + 0x000400fa,0x00000495,0x00000497,0x0000049b,0x000200f8,0x00000497,0x0004003d,0x00000013, + 0x00000499,0x00000488,0x0006000c,0x00000013,0x0000049a,0x00000001,0x00000006,0x00000499, + 0x0003003e,0x00000496,0x0000049a,0x000200f9,0x00000498,0x000200f8,0x0000049b,0x0003003e, + 0x00000496,0x000001db,0x000200f9,0x00000498,0x000200f8,0x00000498,0x0004003d,0x00000013, + 0x0000049c,0x00000496,0x00050041,0x00000014,0x0000049d,0x00000490,0x00000175,0x0003003e, + 0x0000049d,0x0000049c,0x00050041,0x00000014,0x0000049e,0x00000490,0x0000016e,0x0003003e, + 0x0000049e,0x000001df,0x0004003d,0x0000009f,0x0000049f,0x00000490,0x000200fe,0x0000049f, + 0x00010038,0x00050036,0x0000009f,0x000000a8,0x00000000,0x000000a5,0x00030037,0x00000049, + 0x000000a6,0x00030037,0x00000007,0x000000a7,0x000200f8,0x000000a9,0x0004003b,0x00000049, + 0x000004a2,0x00000007,0x0004003b,0x00000007,0x000004a4,0x00000007,0x0004003d,0x00000032, + 0x000004a3,0x000000a6,0x0003003e,0x000004a2,0x000004a3,0x0003003e,0x000004a4,0x00000081, + 0x00060039,0x00000038,0x000004a5,0x0000005a,0x000004a2,0x000004a4,0x00050051,0x00000013, + 0x000004a6,0x000004a5,0x00000000,0x00050051,0x00000013,0x000004a7,0x000004a5,0x00000001, + 0x00070050,0x0000009f,0x000004a8,0x000004a6,0x000004a7,0x000001db,0x000001db,0x000200fe, + 0x000004a8,0x00010038,0x00050036,0x0000009f,0x000000b0,0x00000000,0x000000ab,0x00030037, + 0x000000aa,0x000000ac,0x00030037,0x000000aa,0x000000ad,0x00030037,0x000000aa,0x000000ae, + 0x00030037,0x000000aa,0x000000af,0x000200f8,0x000000b1,0x0004003d,0x0000009f,0x000004ab, + 0x000000ac,0x0004003d,0x0000009f,0x000004ac,0x000000ad,0x00050081,0x0000009f,0x000004ad, + 0x000004ab,0x000004ac,0x0004003d,0x0000009f,0x000004ae,0x000000ae,0x00050081,0x0000009f, + 0x000004af,0x000004ad,0x000004ae,0x0004003d,0x0000009f,0x000004b0,0x000000af,0x00050081, + 0x0000009f,0x000004b1,0x000004af,0x000004b0,0x0005008e,0x0000009f,0x000004b3,0x000004b1, + 0x000004b2,0x000200fe,0x000004b3,0x00010038,0x00050036,0x00000002,0x000000b7,0x00000000, + 0x000000b2,0x00030037,0x00000049,0x000000b3,0x00030037,0x000000aa,0x000000b4,0x00030037, + 0x00000007,0x000000b5,0x00030037,0x00000007,0x000000b6,0x000200f8,0x000000b8,0x0004003b, + 0x00000049,0x000004ba,0x00000007,0x0004003b,0x0000005c,0x000004bc,0x00000007,0x0004003b, + 0x00000007,0x000004bf,0x00000007,0x0004003d,0x00000006,0x000004b6,0x000000b5,0x000500ae, + 0x0000006e,0x000004b7,0x000004b6,0x000001c2,0x000300f7,0x000004b9,0x00000000,0x000400fa, + 0x000004b7,0x000004b8,0x000004b9,0x000200f8,0x000004b8,0x0004003d,0x00000032,0x000004bb, + 0x000000b3,0x0003003e,0x000004ba,0x000004bb,0x0004003d,0x0000009f,0x000004bd,0x000000b4, + 0x0007004f,0x00000038,0x000004be,0x000004bd,0x000004bd,0x00000000,0x00000001,0x0003003e, + 0x000004bc,0x000004be,0x0004003d,0x00000006,0x000004c0,0x000000b5,0x0003003e,0x000004bf, + 0x000004c0,0x00070039,0x00000002,0x000004c1,0x00000061,0x000004ba,0x000004bc,0x000004bf, + 0x000200f9,0x000004b9,0x000200f8,0x000004b9,0x000100fd,0x00010038,0x00050036,0x0000009f, + 0x000000bc,0x00000000,0x000000b9,0x00030037,0x00000007,0x000000ba,0x00030037,0x00000007, + 0x000000bb,0x000200f8,0x000000bd,0x0004003d,0x00000006,0x000004c7,0x000000ba,0x0004003d, + 0x00000006,0x000004c8,0x000000bb,0x00060041,0x000004c9,0x000004ca,0x000004c6,0x000004c7, + 0x000004c8,0x0004003d,0x00000013,0x000004cb,0x000004ca,0x0004003d,0x00000006,0x000004cd, + 0x000000ba,0x0004003d,0x00000006,0x000004ce,0x000000bb,0x00060041,0x000004c9,0x000004cf, + 0x000004cc,0x000004cd,0x000004ce,0x0004003d,0x00000013,0x000004d0,0x000004cf,0x0004003d, + 0x00000006,0x000004d2,0x000000ba,0x0004003d,0x00000006,0x000004d3,0x000000bb,0x00060041, + 0x000004c9,0x000004d4,0x000004d1,0x000004d2,0x000004d3,0x0004003d,0x00000013,0x000004d5, + 0x000004d4,0x0004003d,0x00000006,0x000004d7,0x000000ba,0x0004003d,0x00000006,0x000004d8, + 0x000000bb,0x00060041,0x000004c9,0x000004d9,0x000004d6,0x000004d7,0x000004d8,0x0004003d, + 0x00000013,0x000004da,0x000004d9,0x00070050,0x0000009f,0x000004db,0x000004cb,0x000004d0, + 0x000004d5,0x000004da,0x000200fe,0x000004db,0x00010038,0x00050036,0x00000002,0x000000c2, + 0x00000000,0x000000be,0x00030037,0x00000007,0x000000bf,0x00030037,0x00000007,0x000000c0, + 0x00030037,0x000000aa,0x000000c1,0x000200f8,0x000000c3,0x0004003d,0x00000006,0x000004de, + 0x000000bf,0x0004003d,0x00000006,0x000004df,0x000000c0,0x00050041,0x00000014,0x000004e0, + 0x000000c1,0x000001c2,0x0004003d,0x00000013,0x000004e1,0x000004e0,0x00060041,0x000004c9, + 0x000004e2,0x000004c6,0x000004de,0x000004df,0x0003003e,0x000004e2,0x000004e1,0x0004003d, + 0x00000006,0x000004e3,0x000000bf,0x0004003d,0x00000006,0x000004e4,0x000000c0,0x00050041, + 0x00000014,0x000004e5,0x000000c1,0x00000175,0x0004003d,0x00000013,0x000004e6,0x000004e5, + 0x00060041,0x000004c9,0x000004e7,0x000004cc,0x000004e3,0x000004e4,0x0003003e,0x000004e7, + 0x000004e6,0x0004003d,0x00000006,0x000004e8,0x000000bf,0x0004003d,0x00000006,0x000004e9, + 0x000000c0,0x00050041,0x00000014,0x000004ea,0x000000c1,0x0000016e,0x0004003d,0x00000013, + 0x000004eb,0x000004ea,0x00060041,0x000004c9,0x000004ec,0x000004d1,0x000004e8,0x000004e9, + 0x0003003e,0x000004ec,0x000004eb,0x0004003d,0x00000006,0x000004ed,0x000000bf,0x0004003d, + 0x00000006,0x000004ee,0x000000c0,0x00050041,0x00000014,0x000004ef,0x000000c1,0x0000016f, + 0x0004003d,0x00000013,0x000004f0,0x000004ef,0x00060041,0x000004c9,0x000004f1,0x000004d6, + 0x000004ed,0x000004ee,0x0003003e,0x000004f1,0x000004f0,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x000000c4,0x00000000,0x00000003,0x000200f8,0x000000c5,0x000300e1,0x0000016e, + 0x000004f2,0x000400e0,0x0000016e,0x0000016e,0x000004f3,0x000100fd,0x00010038,0x00050036, + 0x0000006e,0x000000ca,0x00000000,0x000000c6,0x00030037,0x00000007,0x000000c7,0x00030037, + 0x00000007,0x000000c8,0x00030037,0x00000007,0x000000c9,0x000200f8,0x000000cb,0x0004003b, + 0x00000007,0x000004f8,0x00000007,0x0004003d,0x00000006,0x000004f4,0x000000c8,0x000500aa, + 0x0000006e,0x000004f5,0x000004f4,0x000001c2,0x000300f7,0x000004f7,0x00000000,0x000400fa, + 0x000004f5,0x000004f6,0x000004f7,0x000200f8,0x000004f6,0x0004003d,0x00000006,0x000004f9, + 0x000000c9,0x0003003e,0x000004f8,0x000004f9,0x00050039,0x00000002,0x000004fa,0x0000007a, + 0x000004f8,0x000200f9,0x000004f7,0x000200f8,0x000004f7,0x00040039,0x00000002,0x000004fb, + 0x000000c4,0x00040039,0x00000006,0x000004fc,0x0000007c,0x0004003d,0x00000006,0x000004fd, + 0x000000c7,0x00050082,0x00000006,0x000004fe,0x000004fd,0x00000175,0x000500ab,0x0000006e, + 0x000004ff,0x000004fc,0x000004fe,0x000200fe,0x000004ff,0x00010038,0x00050036,0x0000009f, + 0x000000d2,0x00000000,0x000000cd,0x00030037,0x000000cc,0x000000ce,0x00030037,0x000000cc, + 0x000000cf,0x00030037,0x000000cc,0x000000d0,0x00030037,0x000000cc,0x000000d1,0x000200f8, + 0x000000d3,0x0004003b,0x000000aa,0x00000502,0x00000007,0x0004003b,0x00000007,0x00000503, + 0x00000007,0x0004003b,0x00000007,0x00000506,0x00000007,0x0004003b,0x000000aa,0x0000050a, + 0x00000007,0x0004003b,0x00000007,0x0000050b,0x00000007,0x0004003b,0x00000007,0x0000050e, + 0x00000007,0x0004003b,0x000000aa,0x00000512,0x00000007,0x0004003b,0x00000007,0x00000513, + 0x00000007,0x0004003b,0x00000007,0x00000516,0x00000007,0x0004003b,0x000000aa,0x0000051a, + 0x00000007,0x0004003b,0x00000007,0x0000051b,0x00000007,0x0004003b,0x00000007,0x0000051e, + 0x00000007,0x0004003b,0x000000aa,0x00000522,0x00000007,0x0004003b,0x000000aa,0x00000524, + 0x00000007,0x0004003b,0x000000aa,0x00000526,0x00000007,0x0004003b,0x000000aa,0x00000528, + 0x00000007,0x00050041,0x00000007,0x00000504,0x000000ce,0x000001c2,0x0004003d,0x00000006, + 0x00000505,0x00000504,0x0003003e,0x00000503,0x00000505,0x00050041,0x00000007,0x00000507, + 0x000000ce,0x00000175,0x0004003d,0x00000006,0x00000508,0x00000507,0x0003003e,0x00000506, + 0x00000508,0x00060039,0x0000009f,0x00000509,0x000000bc,0x00000503,0x00000506,0x0003003e, + 0x00000502,0x00000509,0x00050041,0x00000007,0x0000050c,0x000000cf,0x000001c2,0x0004003d, + 0x00000006,0x0000050d,0x0000050c,0x0003003e,0x0000050b,0x0000050d,0x00050041,0x00000007, + 0x0000050f,0x000000cf,0x00000175,0x0004003d,0x00000006,0x00000510,0x0000050f,0x0003003e, + 0x0000050e,0x00000510,0x00060039,0x0000009f,0x00000511,0x000000bc,0x0000050b,0x0000050e, + 0x0003003e,0x0000050a,0x00000511,0x00050041,0x00000007,0x00000514,0x000000d0,0x000001c2, + 0x0004003d,0x00000006,0x00000515,0x00000514,0x0003003e,0x00000513,0x00000515,0x00050041, + 0x00000007,0x00000517,0x000000d0,0x00000175,0x0004003d,0x00000006,0x00000518,0x00000517, + 0x0003003e,0x00000516,0x00000518,0x00060039,0x0000009f,0x00000519,0x000000bc,0x00000513, + 0x00000516,0x0003003e,0x00000512,0x00000519,0x00050041,0x00000007,0x0000051c,0x000000d1, + 0x000001c2,0x0004003d,0x00000006,0x0000051d,0x0000051c,0x0003003e,0x0000051b,0x0000051d, + 0x00050041,0x00000007,0x0000051f,0x000000d1,0x00000175,0x0004003d,0x00000006,0x00000520, + 0x0000051f,0x0003003e,0x0000051e,0x00000520,0x00060039,0x0000009f,0x00000521,0x000000bc, + 0x0000051b,0x0000051e,0x0003003e,0x0000051a,0x00000521,0x0004003d,0x0000009f,0x00000523, + 0x00000502,0x0003003e,0x00000522,0x00000523,0x0004003d,0x0000009f,0x00000525,0x0000050a, + 0x0003003e,0x00000524,0x00000525,0x0004003d,0x0000009f,0x00000527,0x00000512,0x0003003e, + 0x00000526,0x00000527,0x0004003d,0x0000009f,0x00000529,0x0000051a,0x0003003e,0x00000528, + 0x00000529,0x00080039,0x0000009f,0x0000052a,0x000000b0,0x00000522,0x00000524,0x00000526, + 0x00000528,0x000200fe,0x0000052a,0x00010038,0x00050036,0x0000009f,0x000000da,0x00000000, + 0x000000d4,0x00030037,0x000000cc,0x000000d5,0x00030037,0x000000cc,0x000000d6,0x00030037, + 0x000000cc,0x000000d7,0x00030037,0x000000cc,0x000000d8,0x00030037,0x00000007,0x000000d9, + 0x000200f8,0x000000db,0x0004003b,0x000000aa,0x0000052d,0x00000007,0x0004003b,0x00000049, + 0x00000530,0x00000007,0x0004003b,0x00000007,0x00000531,0x00000007,0x0004003b,0x000000aa, + 0x00000534,0x00000007,0x0004003b,0x00000049,0x00000537,0x00000007,0x0004003b,0x00000007, + 0x00000538,0x00000007,0x0004003b,0x000000aa,0x0000053b,0x00000007,0x0004003b,0x00000049, + 0x0000053e,0x00000007,0x0004003b,0x00000007,0x0000053f,0x00000007,0x0004003b,0x000000aa, + 0x00000542,0x00000007,0x0004003b,0x00000049,0x00000545,0x00000007,0x0004003b,0x00000007, + 0x00000546,0x00000007,0x0004003b,0x000000aa,0x00000549,0x00000007,0x0004003b,0x000000aa, + 0x0000054b,0x00000007,0x0004003b,0x000000aa,0x0000054d,0x00000007,0x0004003b,0x000000aa, + 0x0000054f,0x00000007,0x0004003d,0x0000002d,0x0000052e,0x000000d5,0x0004007c,0x00000032, + 0x0000052f,0x0000052e,0x0003003e,0x00000530,0x0000052f,0x0004003d,0x00000006,0x00000532, + 0x000000d9,0x0003003e,0x00000531,0x00000532,0x00060039,0x0000009f,0x00000533,0x000000a8, + 0x00000530,0x00000531,0x0003003e,0x0000052d,0x00000533,0x0004003d,0x0000002d,0x00000535, + 0x000000d6,0x0004007c,0x00000032,0x00000536,0x00000535,0x0003003e,0x00000537,0x00000536, + 0x0004003d,0x00000006,0x00000539,0x000000d9,0x0003003e,0x00000538,0x00000539,0x00060039, + 0x0000009f,0x0000053a,0x000000a8,0x00000537,0x00000538,0x0003003e,0x00000534,0x0000053a, + 0x0004003d,0x0000002d,0x0000053c,0x000000d7,0x0004007c,0x00000032,0x0000053d,0x0000053c, + 0x0003003e,0x0000053e,0x0000053d,0x0004003d,0x00000006,0x00000540,0x000000d9,0x0003003e, + 0x0000053f,0x00000540,0x00060039,0x0000009f,0x00000541,0x000000a8,0x0000053e,0x0000053f, + 0x0003003e,0x0000053b,0x00000541,0x0004003d,0x0000002d,0x00000543,0x000000d8,0x0004007c, + 0x00000032,0x00000544,0x00000543,0x0003003e,0x00000545,0x00000544,0x0004003d,0x00000006, + 0x00000547,0x000000d9,0x0003003e,0x00000546,0x00000547,0x00060039,0x0000009f,0x00000548, + 0x000000a8,0x00000545,0x00000546,0x0003003e,0x00000542,0x00000548,0x0004003d,0x0000009f, + 0x0000054a,0x0000052d,0x0003003e,0x00000549,0x0000054a,0x0004003d,0x0000009f,0x0000054c, + 0x00000534,0x0003003e,0x0000054b,0x0000054c,0x0004003d,0x0000009f,0x0000054e,0x0000053b, + 0x0003003e,0x0000054d,0x0000054e,0x0004003d,0x0000009f,0x00000550,0x00000542,0x0003003e, + 0x0000054f,0x00000550,0x00080039,0x0000009f,0x00000551,0x000000b0,0x00000549,0x0000054b, + 0x0000054d,0x0000054f,0x000200fe,0x00000551,0x00010038,0x00050036,0x0000009f,0x000000df, + 0x00000000,0x000000dc,0x00030037,0x000000cc,0x000000dd,0x00030037,0x00000007,0x000000de, + 0x000200f8,0x000000e0,0x0004003b,0x000000cc,0x00000560,0x00000007,0x0004003b,0x000000cc, + 0x00000561,0x00000007,0x0004003b,0x000000cc,0x00000562,0x00000007,0x0004003b,0x000000cc, + 0x00000563,0x00000007,0x0004003b,0x00000007,0x00000564,0x00000007,0x0004003d,0x0000002d, + 0x00000554,0x000000dd,0x00050080,0x0000002d,0x00000556,0x00000554,0x00000555,0x0004003d, + 0x0000002d,0x00000557,0x000000dd,0x00050080,0x0000002d,0x00000559,0x00000557,0x00000558, + 0x0004003d,0x0000002d,0x0000055a,0x000000dd,0x00050080,0x0000002d,0x0000055c,0x0000055a, + 0x0000055b,0x0004003d,0x0000002d,0x0000055d,0x000000dd,0x00050080,0x0000002d,0x0000055f, + 0x0000055d,0x0000055e,0x0003003e,0x00000560,0x00000556,0x0003003e,0x00000561,0x00000559, + 0x0003003e,0x00000562,0x0000055c,0x0003003e,0x00000563,0x0000055f,0x0004003d,0x00000006, + 0x00000565,0x000000de,0x0003003e,0x00000564,0x00000565,0x00090039,0x0000009f,0x00000566, + 0x000000da,0x00000560,0x00000561,0x00000562,0x00000563,0x00000564,0x000200fe,0x00000566, + 0x00010038,0x00050036,0x0000009f,0x000000e6,0x00000000,0x000000d4,0x00030037,0x000000cc, + 0x000000e1,0x00030037,0x000000cc,0x000000e2,0x00030037,0x000000cc,0x000000e3,0x00030037, + 0x000000cc,0x000000e4,0x00030037,0x00000007,0x000000e5,0x000200f8,0x000000e7,0x0004003b, + 0x000000aa,0x00000569,0x00000007,0x0004003b,0x0000005c,0x0000056d,0x00000007,0x0004003b, + 0x00000007,0x0000056e,0x00000007,0x0004003b,0x000000aa,0x00000571,0x00000007,0x0004003b, + 0x0000005c,0x00000575,0x00000007,0x0004003b,0x00000007,0x00000576,0x00000007,0x0004003b, + 0x000000aa,0x00000579,0x00000007,0x0004003b,0x0000005c,0x0000057d,0x00000007,0x0004003b, + 0x00000007,0x0000057e,0x00000007,0x0004003b,0x000000aa,0x00000581,0x00000007,0x0004003b, + 0x0000005c,0x00000585,0x00000007,0x0004003b,0x00000007,0x00000586,0x00000007,0x0004003b, + 0x000000aa,0x00000589,0x00000007,0x0004003b,0x000000aa,0x0000058b,0x00000007,0x0004003b, + 0x000000aa,0x0000058d,0x00000007,0x0004003b,0x000000aa,0x0000058f,0x00000007,0x0004003d, + 0x0000002d,0x0000056a,0x000000e1,0x0004007c,0x00000032,0x0000056b,0x0000056a,0x0004006f, + 0x00000038,0x0000056c,0x0000056b,0x0003003e,0x0000056d,0x0000056c,0x0004003d,0x00000006, + 0x0000056f,0x000000e5,0x0003003e,0x0000056e,0x0000056f,0x00060039,0x0000009f,0x00000570, + 0x000000a3,0x0000056d,0x0000056e,0x0003003e,0x00000569,0x00000570,0x0004003d,0x0000002d, + 0x00000572,0x000000e2,0x0004007c,0x00000032,0x00000573,0x00000572,0x0004006f,0x00000038, + 0x00000574,0x00000573,0x0003003e,0x00000575,0x00000574,0x0004003d,0x00000006,0x00000577, + 0x000000e5,0x0003003e,0x00000576,0x00000577,0x00060039,0x0000009f,0x00000578,0x000000a3, + 0x00000575,0x00000576,0x0003003e,0x00000571,0x00000578,0x0004003d,0x0000002d,0x0000057a, + 0x000000e3,0x0004007c,0x00000032,0x0000057b,0x0000057a,0x0004006f,0x00000038,0x0000057c, + 0x0000057b,0x0003003e,0x0000057d,0x0000057c,0x0004003d,0x00000006,0x0000057f,0x000000e5, + 0x0003003e,0x0000057e,0x0000057f,0x00060039,0x0000009f,0x00000580,0x000000a3,0x0000057d, + 0x0000057e,0x0003003e,0x00000579,0x00000580,0x0004003d,0x0000002d,0x00000582,0x000000e4, + 0x0004007c,0x00000032,0x00000583,0x00000582,0x0004006f,0x00000038,0x00000584,0x00000583, + 0x0003003e,0x00000585,0x00000584,0x0004003d,0x00000006,0x00000587,0x000000e5,0x0003003e, + 0x00000586,0x00000587,0x00060039,0x0000009f,0x00000588,0x000000a3,0x00000585,0x00000586, + 0x0003003e,0x00000581,0x00000588,0x0004003d,0x0000009f,0x0000058a,0x00000569,0x0003003e, + 0x00000589,0x0000058a,0x0004003d,0x0000009f,0x0000058c,0x00000571,0x0003003e,0x0000058b, + 0x0000058c,0x0004003d,0x0000009f,0x0000058e,0x00000579,0x0003003e,0x0000058d,0x0000058e, + 0x0004003d,0x0000009f,0x00000590,0x00000581,0x0003003e,0x0000058f,0x00000590,0x00080039, + 0x0000009f,0x00000591,0x000000b0,0x00000589,0x0000058b,0x0000058d,0x0000058f,0x000200fe, + 0x00000591,0x00010038,0x00050036,0x0000009f,0x000000ea,0x00000000,0x000000dc,0x00030037, + 0x000000cc,0x000000e8,0x00030037,0x00000007,0x000000e9,0x000200f8,0x000000eb,0x0004003b, + 0x000000cc,0x0000059c,0x00000007,0x0004003b,0x000000cc,0x0000059d,0x00000007,0x0004003b, + 0x000000cc,0x0000059e,0x00000007,0x0004003b,0x000000cc,0x0000059f,0x00000007,0x0004003b, + 0x00000007,0x000005a0,0x00000007,0x0004003d,0x0000002d,0x00000594,0x000000e8,0x00050080, + 0x0000002d,0x00000595,0x00000594,0x00000555,0x0004003d,0x0000002d,0x00000596,0x000000e8, + 0x00050080,0x0000002d,0x00000597,0x00000596,0x00000558,0x0004003d,0x0000002d,0x00000598, + 0x000000e8,0x00050080,0x0000002d,0x00000599,0x00000598,0x0000055b,0x0004003d,0x0000002d, + 0x0000059a,0x000000e8,0x00050080,0x0000002d,0x0000059b,0x0000059a,0x0000055e,0x0003003e, + 0x0000059c,0x00000595,0x0003003e,0x0000059d,0x00000597,0x0003003e,0x0000059e,0x00000599, + 0x0003003e,0x0000059f,0x0000059b,0x0004003d,0x00000006,0x000005a1,0x000000e9,0x0003003e, + 0x000005a0,0x000005a1,0x00090039,0x0000009f,0x000005a2,0x000000e6,0x0000059c,0x0000059d, + 0x0000059e,0x0000059f,0x000005a0,0x000200fe,0x000005a2,0x00010038,0x00050036,0x00000002, + 0x000000f3,0x00000000,0x000000ec,0x00030037,0x00000007,0x000000ed,0x00030037,0x00000007, + 0x000000ee,0x00030037,0x000000cc,0x000000ef,0x00030037,0x00000007,0x000000f0,0x00030037, + 0x00000007,0x000000f1,0x00030037,0x00000007,0x000000f2,0x000200f8,0x000000f4,0x0004003b, + 0x00000049,0x000005a5,0x00000007,0x0004003b,0x00000049,0x000005b3,0x00000007,0x0004003b, + 0x000005c0,0x000005c1,0x00000007,0x0004003b,0x000000cc,0x000005c4,0x00000007,0x0004003b, + 0x00000007,0x000005c5,0x00000007,0x0004003b,0x00000049,0x000005c9,0x00000007,0x0004003b, + 0x000000aa,0x000005cb,0x00000007,0x0004003b,0x00000007,0x000005ce,0x00000007,0x0004003b, + 0x00000007,0x000005cf,0x00000007,0x0004003b,0x000000cc,0x000005ec,0x00000007,0x0004003b, + 0x00000007,0x000005ed,0x00000007,0x0004003b,0x00000049,0x000005f1,0x00000007,0x0004003b, + 0x000000aa,0x000005f3,0x00000007,0x0004003b,0x00000007,0x000005f6,0x00000007,0x0004003b, + 0x00000007,0x000005f7,0x00000007,0x0004003b,0x000000cc,0x00000614,0x00000007,0x0004003b, + 0x00000007,0x00000615,0x00000007,0x0004003b,0x00000049,0x00000619,0x00000007,0x0004003b, + 0x000000aa,0x0000061b,0x00000007,0x0004003b,0x00000007,0x0000061e,0x00000007,0x0004003b, + 0x00000007,0x0000061f,0x00000007,0x0004003b,0x000000cc,0x0000063e,0x00000007,0x0004003b, + 0x00000007,0x0000063f,0x00000007,0x0004003b,0x00000049,0x00000643,0x00000007,0x0004003b, + 0x000000aa,0x00000645,0x00000007,0x0004003b,0x00000007,0x00000648,0x00000007,0x0004003b, + 0x00000007,0x00000649,0x00000007,0x0004003b,0x00000007,0x00000651,0x00000007,0x0004003b, + 0x00000007,0x0000065a,0x00000007,0x0004003b,0x00000007,0x0000065c,0x00000007,0x0004003b, + 0x000000aa,0x0000065e,0x00000007,0x0004003b,0x000000cc,0x00000684,0x00000007,0x0004003b, + 0x000000cc,0x00000685,0x00000007,0x0004003b,0x000000cc,0x00000686,0x00000007,0x0004003b, + 0x000000cc,0x00000687,0x00000007,0x0004003b,0x00000049,0x0000069e,0x00000007,0x0004003b, + 0x000000aa,0x0000069f,0x00000007,0x0004003b,0x00000007,0x000006a2,0x00000007,0x0004003b, + 0x00000007,0x000006a3,0x00000007,0x0004003b,0x00000007,0x000006b1,0x00000007,0x0004003b, + 0x00000007,0x000006b2,0x00000007,0x0004003b,0x000000aa,0x000006b3,0x00000007,0x0004003b, + 0x00000007,0x000006bb,0x00000007,0x0004003b,0x00000007,0x000006bc,0x00000007,0x0004003b, + 0x000000aa,0x000006bd,0x00000007,0x0004003b,0x00000007,0x000006c5,0x00000007,0x0004003b, + 0x00000007,0x000006c6,0x00000007,0x0004003b,0x000000aa,0x000006c7,0x00000007,0x0004003b, + 0x00000007,0x000006cf,0x00000007,0x0004003b,0x00000007,0x000006d0,0x00000007,0x0004003b, + 0x000000aa,0x000006d1,0x00000007,0x0004003d,0x0000002d,0x000005a6,0x000000ef,0x00050050, + 0x0000002d,0x000005a8,0x000005a7,0x000005a7,0x00050084,0x0000002d,0x000005a9,0x000005a6, + 0x000005a8,0x0004007c,0x00000032,0x000005aa,0x000005a9,0x0004003d,0x00000006,0x000005ab, + 0x000000ed,0x00050084,0x00000006,0x000005ac,0x000005ab,0x0000016e,0x0004007c,0x0000001a, + 0x000005ad,0x000005ac,0x0004003d,0x00000006,0x000005ae,0x000000ee,0x00050084,0x00000006, + 0x000005af,0x000005ae,0x0000016e,0x0004007c,0x0000001a,0x000005b0,0x000005af,0x00050050, + 0x00000032,0x000005b1,0x000005ad,0x000005b0,0x00050080,0x00000032,0x000005b2,0x000005aa, + 0x000005b1,0x0003003e,0x000005a5,0x000005b2,0x0004003d,0x0000002d,0x000005b4,0x000000ef, + 0x00050050,0x0000002d,0x000005b6,0x000005b5,0x000005b5,0x00050084,0x0000002d,0x000005b7, + 0x000005b4,0x000005b6,0x0004007c,0x00000032,0x000005b8,0x000005b7,0x0004003d,0x00000006, + 0x000005b9,0x000000ed,0x0004007c,0x0000001a,0x000005ba,0x000005b9,0x0004003d,0x00000006, + 0x000005bb,0x000000ee,0x0004007c,0x0000001a,0x000005bc,0x000005bb,0x00050050,0x00000032, + 0x000005bd,0x000005ba,0x000005bc,0x00050080,0x00000032,0x000005be,0x000005b8,0x000005bd, + 0x0003003e,0x000005b3,0x000005be,0x0004003d,0x00000032,0x000005c2,0x000005a5,0x0004007c, + 0x0000002d,0x000005c3,0x000005c2,0x0003003e,0x000005c4,0x000005c3,0x0004003d,0x00000006, + 0x000005c6,0x000000f2,0x0003003e,0x000005c5,0x000005c6,0x00060039,0x0000009f,0x000005c7, + 0x000000ea,0x000005c4,0x000005c5,0x00050041,0x000000aa,0x000005c8,0x000005c1,0x0000014f, + 0x0003003e,0x000005c8,0x000005c7,0x0004003d,0x00000032,0x000005ca,0x000005b3,0x0003003e, + 0x000005c9,0x000005ca,0x00050041,0x000000aa,0x000005cc,0x000005c1,0x0000014f,0x0004003d, + 0x0000009f,0x000005cd,0x000005cc,0x0003003e,0x000005cb,0x000005cd,0x0003003e,0x000005ce, + 0x000001c2,0x0004003d,0x00000006,0x000005d0,0x000000f2,0x0003003e,0x000005cf,0x000005d0, + 0x00080039,0x00000002,0x000005d1,0x000000b7,0x000005c9,0x000005cb,0x000005ce,0x000005cf, + 0x0004003d,0x0000002d,0x000005d2,0x000000ef,0x00050050,0x0000002d,0x000005d3,0x000005a7, + 0x000005a7,0x00050084,0x0000002d,0x000005d4,0x000005d2,0x000005d3,0x0004007c,0x00000032, + 0x000005d5,0x000005d4,0x0004003d,0x00000006,0x000005d6,0x000000ed,0x00050084,0x00000006, + 0x000005d7,0x000005d6,0x0000016e,0x00050080,0x00000006,0x000005d8,0x000005d7,0x000005b5, + 0x0004007c,0x0000001a,0x000005d9,0x000005d8,0x0004003d,0x00000006,0x000005da,0x000000ee, + 0x00050084,0x00000006,0x000005db,0x000005da,0x0000016e,0x0004007c,0x0000001a,0x000005dc, + 0x000005db,0x00050050,0x00000032,0x000005dd,0x000005d9,0x000005dc,0x00050080,0x00000032, + 0x000005de,0x000005d5,0x000005dd,0x0003003e,0x000005a5,0x000005de,0x0004003d,0x0000002d, + 0x000005df,0x000000ef,0x00050050,0x0000002d,0x000005e0,0x000005b5,0x000005b5,0x00050084, + 0x0000002d,0x000005e1,0x000005df,0x000005e0,0x0004007c,0x00000032,0x000005e2,0x000005e1, + 0x0004003d,0x00000006,0x000005e3,0x000000ed,0x00050080,0x00000006,0x000005e4,0x000005e3, + 0x000004c2,0x0004007c,0x0000001a,0x000005e5,0x000005e4,0x0004003d,0x00000006,0x000005e6, + 0x000000ee,0x0004007c,0x0000001a,0x000005e7,0x000005e6,0x00050050,0x00000032,0x000005e8, + 0x000005e5,0x000005e7,0x00050080,0x00000032,0x000005e9,0x000005e2,0x000005e8,0x0003003e, + 0x000005b3,0x000005e9,0x0004003d,0x00000032,0x000005ea,0x000005a5,0x0004007c,0x0000002d, + 0x000005eb,0x000005ea,0x0003003e,0x000005ec,0x000005eb,0x0004003d,0x00000006,0x000005ee, + 0x000000f2,0x0003003e,0x000005ed,0x000005ee,0x00060039,0x0000009f,0x000005ef,0x000000ea, + 0x000005ec,0x000005ed,0x00050041,0x000000aa,0x000005f0,0x000005c1,0x00000194,0x0003003e, + 0x000005f0,0x000005ef,0x0004003d,0x00000032,0x000005f2,0x000005b3,0x0003003e,0x000005f1, + 0x000005f2,0x00050041,0x000000aa,0x000005f4,0x000005c1,0x00000194,0x0004003d,0x0000009f, + 0x000005f5,0x000005f4,0x0003003e,0x000005f3,0x000005f5,0x0003003e,0x000005f6,0x000001c2, + 0x0004003d,0x00000006,0x000005f8,0x000000f2,0x0003003e,0x000005f7,0x000005f8,0x00080039, + 0x00000002,0x000005f9,0x000000b7,0x000005f1,0x000005f3,0x000005f6,0x000005f7,0x0004003d, + 0x0000002d,0x000005fa,0x000000ef,0x00050050,0x0000002d,0x000005fb,0x000005a7,0x000005a7, + 0x00050084,0x0000002d,0x000005fc,0x000005fa,0x000005fb,0x0004007c,0x00000032,0x000005fd, + 0x000005fc,0x0004003d,0x00000006,0x000005fe,0x000000ed,0x00050084,0x00000006,0x000005ff, + 0x000005fe,0x0000016e,0x0004007c,0x0000001a,0x00000600,0x000005ff,0x0004003d,0x00000006, + 0x00000601,0x000000ee,0x00050084,0x00000006,0x00000602,0x00000601,0x0000016e,0x00050080, + 0x00000006,0x00000603,0x00000602,0x000005b5,0x0004007c,0x0000001a,0x00000604,0x00000603, + 0x00050050,0x00000032,0x00000605,0x00000600,0x00000604,0x00050080,0x00000032,0x00000606, + 0x000005fd,0x00000605,0x0003003e,0x000005a5,0x00000606,0x0004003d,0x0000002d,0x00000607, + 0x000000ef,0x00050050,0x0000002d,0x00000608,0x000005b5,0x000005b5,0x00050084,0x0000002d, + 0x00000609,0x00000607,0x00000608,0x0004007c,0x00000032,0x0000060a,0x00000609,0x0004003d, + 0x00000006,0x0000060b,0x000000ed,0x0004007c,0x0000001a,0x0000060c,0x0000060b,0x0004003d, + 0x00000006,0x0000060d,0x000000ee,0x00050080,0x00000006,0x0000060e,0x0000060d,0x000004c2, + 0x0004007c,0x0000001a,0x0000060f,0x0000060e,0x00050050,0x00000032,0x00000610,0x0000060c, + 0x0000060f,0x00050080,0x00000032,0x00000611,0x0000060a,0x00000610,0x0003003e,0x000005b3, + 0x00000611,0x0004003d,0x00000032,0x00000612,0x000005a5,0x0004007c,0x0000002d,0x00000613, + 0x00000612,0x0003003e,0x00000614,0x00000613,0x0004003d,0x00000006,0x00000616,0x000000f2, + 0x0003003e,0x00000615,0x00000616,0x00060039,0x0000009f,0x00000617,0x000000ea,0x00000614, + 0x00000615,0x00050041,0x000000aa,0x00000618,0x000005c1,0x000001b6,0x0003003e,0x00000618, + 0x00000617,0x0004003d,0x00000032,0x0000061a,0x000005b3,0x0003003e,0x00000619,0x0000061a, + 0x00050041,0x000000aa,0x0000061c,0x000005c1,0x000001b6,0x0004003d,0x0000009f,0x0000061d, + 0x0000061c,0x0003003e,0x0000061b,0x0000061d,0x0003003e,0x0000061e,0x000001c2,0x0004003d, + 0x00000006,0x00000620,0x000000f2,0x0003003e,0x0000061f,0x00000620,0x00080039,0x00000002, + 0x00000621,0x000000b7,0x00000619,0x0000061b,0x0000061e,0x0000061f,0x0004003d,0x0000002d, + 0x00000622,0x000000ef,0x00050050,0x0000002d,0x00000623,0x000005a7,0x000005a7,0x00050084, + 0x0000002d,0x00000624,0x00000622,0x00000623,0x0004007c,0x00000032,0x00000625,0x00000624, + 0x0004003d,0x00000006,0x00000626,0x000000ed,0x00050084,0x00000006,0x00000627,0x00000626, + 0x0000016e,0x00050080,0x00000006,0x00000628,0x00000627,0x000005b5,0x0004007c,0x0000001a, + 0x00000629,0x00000628,0x0004003d,0x00000006,0x0000062a,0x000000ee,0x00050084,0x00000006, + 0x0000062b,0x0000062a,0x0000016e,0x00050080,0x00000006,0x0000062c,0x0000062b,0x000005b5, + 0x0004007c,0x0000001a,0x0000062d,0x0000062c,0x00050050,0x00000032,0x0000062e,0x00000629, + 0x0000062d,0x00050080,0x00000032,0x0000062f,0x00000625,0x0000062e,0x0003003e,0x000005a5, + 0x0000062f,0x0004003d,0x0000002d,0x00000630,0x000000ef,0x00050050,0x0000002d,0x00000631, + 0x000005b5,0x000005b5,0x00050084,0x0000002d,0x00000632,0x00000630,0x00000631,0x0004007c, + 0x00000032,0x00000633,0x00000632,0x0004003d,0x00000006,0x00000634,0x000000ed,0x00050080, + 0x00000006,0x00000635,0x00000634,0x000004c2,0x0004007c,0x0000001a,0x00000636,0x00000635, + 0x0004003d,0x00000006,0x00000637,0x000000ee,0x00050080,0x00000006,0x00000638,0x00000637, + 0x000004c2,0x0004007c,0x0000001a,0x00000639,0x00000638,0x00050050,0x00000032,0x0000063a, + 0x00000636,0x00000639,0x00050080,0x00000032,0x0000063b,0x00000633,0x0000063a,0x0003003e, + 0x000005b3,0x0000063b,0x0004003d,0x00000032,0x0000063c,0x000005a5,0x0004007c,0x0000002d, + 0x0000063d,0x0000063c,0x0003003e,0x0000063e,0x0000063d,0x0004003d,0x00000006,0x00000640, + 0x000000f2,0x0003003e,0x0000063f,0x00000640,0x00060039,0x0000009f,0x00000641,0x000000ea, + 0x0000063e,0x0000063f,0x00050041,0x000000aa,0x00000642,0x000005c1,0x000002bd,0x0003003e, + 0x00000642,0x00000641,0x0004003d,0x00000032,0x00000644,0x000005b3,0x0003003e,0x00000643, + 0x00000644,0x00050041,0x000000aa,0x00000646,0x000005c1,0x000002bd,0x0004003d,0x0000009f, + 0x00000647,0x00000646,0x0003003e,0x00000645,0x00000647,0x0003003e,0x00000648,0x000001c2, + 0x0004003d,0x00000006,0x0000064a,0x000000f2,0x0003003e,0x00000649,0x0000064a,0x00080039, + 0x00000002,0x0000064b,0x000000b7,0x00000643,0x00000645,0x00000648,0x00000649,0x0004003d, + 0x00000006,0x0000064c,0x000000f1,0x000500b2,0x0000006e,0x0000064d,0x0000064c,0x00000175, + 0x000300f7,0x0000064f,0x00000000,0x000400fa,0x0000064d,0x0000064e,0x0000064f,0x000200f8, + 0x0000064e,0x000100fd,0x000200f8,0x0000064f,0x0003003e,0x00000651,0x000001c2,0x000200f9, + 0x00000652,0x000200f8,0x00000652,0x000400f6,0x00000654,0x00000655,0x00000000,0x000200f9, + 0x00000656,0x000200f8,0x00000656,0x0004003d,0x00000006,0x00000657,0x00000651,0x000500b0, + 0x0000006e,0x00000658,0x00000657,0x0000020e,0x000400fa,0x00000658,0x00000653,0x00000654, + 0x000200f8,0x00000653,0x0004003d,0x00000006,0x00000659,0x00000651,0x0004003d,0x00000006, + 0x0000065b,0x000000ed,0x0003003e,0x0000065a,0x0000065b,0x0004003d,0x00000006,0x0000065d, + 0x000000ee,0x0003003e,0x0000065c,0x0000065d,0x00050041,0x000000aa,0x0000065f,0x000005c1, + 0x00000659,0x0004003d,0x0000009f,0x00000660,0x0000065f,0x0003003e,0x0000065e,0x00000660, + 0x00070039,0x00000002,0x00000661,0x000000c2,0x0000065a,0x0000065c,0x0000065e,0x00040039, + 0x00000002,0x00000662,0x000000c4,0x0004003d,0x00000006,0x00000663,0x000000f0,0x000500b0, + 0x0000006e,0x00000664,0x00000663,0x000005a7,0x000300f7,0x00000666,0x00000000,0x000400fa, + 0x00000664,0x00000665,0x00000666,0x000200f8,0x00000665,0x0004003d,0x00000006,0x00000667, + 0x00000651,0x0004003d,0x00000006,0x00000668,0x000000ed,0x00050084,0x00000006,0x00000669, + 0x00000668,0x0000016e,0x00050080,0x00000006,0x0000066a,0x00000669,0x000001c2,0x0004003d, + 0x00000006,0x0000066b,0x000000ee,0x00050084,0x00000006,0x0000066c,0x0000066b,0x0000016e, + 0x00050080,0x00000006,0x0000066d,0x0000066c,0x000001c2,0x00050050,0x0000002d,0x0000066e, + 0x0000066a,0x0000066d,0x0004003d,0x00000006,0x0000066f,0x000000ed,0x00050084,0x00000006, + 0x00000670,0x0000066f,0x0000016e,0x00050080,0x00000006,0x00000671,0x00000670,0x00000175, + 0x0004003d,0x00000006,0x00000672,0x000000ee,0x00050084,0x00000006,0x00000673,0x00000672, + 0x0000016e,0x00050080,0x00000006,0x00000674,0x00000673,0x000001c2,0x00050050,0x0000002d, + 0x00000675,0x00000671,0x00000674,0x0004003d,0x00000006,0x00000676,0x000000ed,0x00050084, + 0x00000006,0x00000677,0x00000676,0x0000016e,0x00050080,0x00000006,0x00000678,0x00000677, + 0x000001c2,0x0004003d,0x00000006,0x00000679,0x000000ee,0x00050084,0x00000006,0x0000067a, + 0x00000679,0x0000016e,0x00050080,0x00000006,0x0000067b,0x0000067a,0x00000175,0x00050050, + 0x0000002d,0x0000067c,0x00000678,0x0000067b,0x0004003d,0x00000006,0x0000067d,0x000000ed, + 0x00050084,0x00000006,0x0000067e,0x0000067d,0x0000016e,0x00050080,0x00000006,0x0000067f, + 0x0000067e,0x00000175,0x0004003d,0x00000006,0x00000680,0x000000ee,0x00050084,0x00000006, + 0x00000681,0x00000680,0x0000016e,0x00050080,0x00000006,0x00000682,0x00000681,0x00000175, + 0x00050050,0x0000002d,0x00000683,0x0000067f,0x00000682,0x0003003e,0x00000684,0x0000066e, + 0x0003003e,0x00000685,0x00000675,0x0003003e,0x00000686,0x0000067c,0x0003003e,0x00000687, + 0x00000683,0x00080039,0x0000009f,0x00000688,0x000000d2,0x00000684,0x00000685,0x00000686, + 0x00000687,0x00050041,0x000000aa,0x00000689,0x000005c1,0x00000667,0x0003003e,0x00000689, + 0x00000688,0x0004003d,0x0000002d,0x0000068a,0x000000ef,0x00050050,0x0000002d,0x0000068b, + 0x000004c2,0x000004c2,0x00050084,0x0000002d,0x0000068c,0x0000068a,0x0000068b,0x0004007c, + 0x00000032,0x0000068d,0x0000068c,0x0004003d,0x00000006,0x0000068e,0x000000ed,0x0004003d, + 0x00000006,0x0000068f,0x00000651,0x00050089,0x00000006,0x00000690,0x0000068f,0x0000016e, + 0x00050084,0x00000006,0x00000692,0x00000690,0x00000691,0x00050080,0x00000006,0x00000693, + 0x0000068e,0x00000692,0x0004007c,0x0000001a,0x00000694,0x00000693,0x0004003d,0x00000006, + 0x00000695,0x000000ee,0x0004003d,0x00000006,0x00000696,0x00000651,0x00050086,0x00000006, + 0x00000697,0x00000696,0x0000016e,0x00050084,0x00000006,0x00000698,0x00000697,0x00000691, + 0x00050080,0x00000006,0x00000699,0x00000695,0x00000698,0x0004007c,0x0000001a,0x0000069a, + 0x00000699,0x00050050,0x00000032,0x0000069b,0x00000694,0x0000069a,0x00050080,0x00000032, + 0x0000069c,0x0000068d,0x0000069b,0x0004003d,0x00000006,0x0000069d,0x00000651,0x0003003e, + 0x0000069e,0x0000069c,0x00050041,0x000000aa,0x000006a0,0x000005c1,0x0000069d,0x0004003d, + 0x0000009f,0x000006a1,0x000006a0,0x0003003e,0x0000069f,0x000006a1,0x0003003e,0x000006a2, + 0x00000175,0x0004003d,0x00000006,0x000006a4,0x000000f2,0x0003003e,0x000006a3,0x000006a4, + 0x00080039,0x00000002,0x000006a5,0x000000b7,0x0000069e,0x0000069f,0x000006a2,0x000006a3, + 0x000200f9,0x00000666,0x000200f8,0x00000666,0x00040039,0x00000002,0x000006a6,0x000000c4, + 0x000200f9,0x00000655,0x000200f8,0x00000655,0x0004003d,0x00000006,0x000006a7,0x00000651, + 0x00050080,0x00000006,0x000006a8,0x000006a7,0x00000194,0x0003003e,0x00000651,0x000006a8, + 0x000200f9,0x00000652,0x000200f8,0x00000654,0x0004003d,0x00000006,0x000006a9,0x000000f0, + 0x000500b0,0x0000006e,0x000006aa,0x000006a9,0x000005a7,0x000300f7,0x000006ac,0x00000000, + 0x000400fa,0x000006aa,0x000006ab,0x000006ac,0x000200f8,0x000006ab,0x0004003d,0x00000006, + 0x000006ad,0x000000ed,0x00050080,0x00000006,0x000006ae,0x000006ad,0x000001c2,0x0004003d, + 0x00000006,0x000006af,0x000000ee,0x00050080,0x00000006,0x000006b0,0x000006af,0x000001c2, + 0x0003003e,0x000006b1,0x000006ae,0x0003003e,0x000006b2,0x000006b0,0x00050041,0x000000aa, + 0x000006b4,0x000005c1,0x0000014f,0x0004003d,0x0000009f,0x000006b5,0x000006b4,0x0003003e, + 0x000006b3,0x000006b5,0x00070039,0x00000002,0x000006b6,0x000000c2,0x000006b1,0x000006b2, + 0x000006b3,0x0004003d,0x00000006,0x000006b7,0x000000ed,0x00050080,0x00000006,0x000006b8, + 0x000006b7,0x00000691,0x0004003d,0x00000006,0x000006b9,0x000000ee,0x00050080,0x00000006, + 0x000006ba,0x000006b9,0x000001c2,0x0003003e,0x000006bb,0x000006b8,0x0003003e,0x000006bc, + 0x000006ba,0x00050041,0x000000aa,0x000006be,0x000005c1,0x00000194,0x0004003d,0x0000009f, + 0x000006bf,0x000006be,0x0003003e,0x000006bd,0x000006bf,0x00070039,0x00000002,0x000006c0, + 0x000000c2,0x000006bb,0x000006bc,0x000006bd,0x0004003d,0x00000006,0x000006c1,0x000000ed, + 0x00050080,0x00000006,0x000006c2,0x000006c1,0x000001c2,0x0004003d,0x00000006,0x000006c3, + 0x000000ee,0x00050080,0x00000006,0x000006c4,0x000006c3,0x00000691,0x0003003e,0x000006c5, + 0x000006c2,0x0003003e,0x000006c6,0x000006c4,0x00050041,0x000000aa,0x000006c8,0x000005c1, + 0x000001b6,0x0004003d,0x0000009f,0x000006c9,0x000006c8,0x0003003e,0x000006c7,0x000006c9, + 0x00070039,0x00000002,0x000006ca,0x000000c2,0x000006c5,0x000006c6,0x000006c7,0x0004003d, + 0x00000006,0x000006cb,0x000000ed,0x00050080,0x00000006,0x000006cc,0x000006cb,0x00000691, + 0x0004003d,0x00000006,0x000006cd,0x000000ee,0x00050080,0x00000006,0x000006ce,0x000006cd, + 0x00000691,0x0003003e,0x000006cf,0x000006cc,0x0003003e,0x000006d0,0x000006ce,0x00050041, + 0x000000aa,0x000006d2,0x000005c1,0x000002bd,0x0004003d,0x0000009f,0x000006d3,0x000006d2, + 0x0003003e,0x000006d1,0x000006d3,0x00070039,0x00000002,0x000006d4,0x000000c2,0x000006cf, + 0x000006d0,0x000006d1,0x000200f9,0x000006ac,0x000200f8,0x000006ac,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x000000fb,0x00000000,0x000000ec,0x00030037,0x00000007,0x000000f5, + 0x00030037,0x00000007,0x000000f6,0x00030037,0x000000cc,0x000000f7,0x00030037,0x00000007, + 0x000000f8,0x00030037,0x00000007,0x000000f9,0x00030037,0x00000007,0x000000fa,0x000200f8, + 0x000000fc,0x0004003b,0x00000007,0x000006d5,0x00000007,0x0004003b,0x00000007,0x000006d7, + 0x00000007,0x0004003b,0x000000cc,0x000006d9,0x00000007,0x0004003b,0x00000007,0x000006db, + 0x00000007,0x0004003b,0x00000007,0x000006dd,0x00000007,0x0004003b,0x00000007,0x000006df, + 0x00000007,0x0004003d,0x00000006,0x000006d6,0x000000f5,0x0003003e,0x000006d5,0x000006d6, + 0x0004003d,0x00000006,0x000006d8,0x000000f6,0x0003003e,0x000006d7,0x000006d8,0x0004003d, + 0x0000002d,0x000006da,0x000000f7,0x0003003e,0x000006d9,0x000006da,0x0004003d,0x00000006, + 0x000006dc,0x000000f8,0x0003003e,0x000006db,0x000006dc,0x0004003d,0x00000006,0x000006de, + 0x000000f9,0x0003003e,0x000006dd,0x000006de,0x0004003d,0x00000006,0x000006e0,0x000000fa, + 0x0003003e,0x000006df,0x000006e0,0x000a0039,0x00000002,0x000006e1,0x000000f3,0x000006d5, + 0x000006d7,0x000006d9,0x000006db,0x000006dd,0x000006df,0x000100fd,0x00010038,0x00050036, + 0x00000002,0x00000103,0x00000000,0x000000ec,0x00030037,0x00000007,0x000000fd,0x00030037, + 0x00000007,0x000000fe,0x00030037,0x000000cc,0x000000ff,0x00030037,0x00000007,0x00000100, + 0x00030037,0x00000007,0x00000101,0x00030037,0x00000007,0x00000102,0x000200f8,0x00000104, + 0x0004003b,0x000000aa,0x000006e6,0x00000007,0x0004003b,0x000000cc,0x00000703,0x00000007, + 0x0004003b,0x000000cc,0x00000704,0x00000007,0x0004003b,0x000000cc,0x00000705,0x00000007, + 0x0004003b,0x000000cc,0x00000706,0x00000007,0x0004003b,0x00000049,0x00000712,0x00000007, + 0x0004003b,0x000000aa,0x00000713,0x00000007,0x0004003b,0x00000007,0x00000715,0x00000007, + 0x0004003b,0x00000007,0x00000717,0x00000007,0x0004003b,0x00000007,0x00000721,0x00000007, + 0x0004003b,0x00000007,0x00000722,0x00000007,0x0004003b,0x000000aa,0x00000723,0x00000007, + 0x0004003d,0x00000006,0x000006e2,0x00000100,0x000500b0,0x0000006e,0x000006e3,0x000006e2, + 0x000005a7,0x000300f7,0x000006e5,0x00000000,0x000400fa,0x000006e3,0x000006e4,0x000006e5, + 0x000200f8,0x000006e4,0x0004003d,0x00000006,0x000006e7,0x000000fd,0x00050084,0x00000006, + 0x000006e8,0x000006e7,0x0000016e,0x00050080,0x00000006,0x000006e9,0x000006e8,0x000001c2, + 0x0004003d,0x00000006,0x000006ea,0x000000fe,0x00050084,0x00000006,0x000006eb,0x000006ea, + 0x0000016e,0x00050080,0x00000006,0x000006ec,0x000006eb,0x000001c2,0x00050050,0x0000002d, + 0x000006ed,0x000006e9,0x000006ec,0x0004003d,0x00000006,0x000006ee,0x000000fd,0x00050084, + 0x00000006,0x000006ef,0x000006ee,0x0000016e,0x00050080,0x00000006,0x000006f0,0x000006ef, + 0x00000175,0x0004003d,0x00000006,0x000006f1,0x000000fe,0x00050084,0x00000006,0x000006f2, + 0x000006f1,0x0000016e,0x00050080,0x00000006,0x000006f3,0x000006f2,0x000001c2,0x00050050, + 0x0000002d,0x000006f4,0x000006f0,0x000006f3,0x0004003d,0x00000006,0x000006f5,0x000000fd, + 0x00050084,0x00000006,0x000006f6,0x000006f5,0x0000016e,0x00050080,0x00000006,0x000006f7, + 0x000006f6,0x000001c2,0x0004003d,0x00000006,0x000006f8,0x000000fe,0x00050084,0x00000006, + 0x000006f9,0x000006f8,0x0000016e,0x00050080,0x00000006,0x000006fa,0x000006f9,0x00000175, + 0x00050050,0x0000002d,0x000006fb,0x000006f7,0x000006fa,0x0004003d,0x00000006,0x000006fc, + 0x000000fd,0x00050084,0x00000006,0x000006fd,0x000006fc,0x0000016e,0x00050080,0x00000006, + 0x000006fe,0x000006fd,0x00000175,0x0004003d,0x00000006,0x000006ff,0x000000fe,0x00050084, + 0x00000006,0x00000700,0x000006ff,0x0000016e,0x00050080,0x00000006,0x00000701,0x00000700, + 0x00000175,0x00050050,0x0000002d,0x00000702,0x000006fe,0x00000701,0x0003003e,0x00000703, + 0x000006ed,0x0003003e,0x00000704,0x000006f4,0x0003003e,0x00000705,0x000006fb,0x0003003e, + 0x00000706,0x00000702,0x00080039,0x0000009f,0x00000707,0x000000d2,0x00000703,0x00000704, + 0x00000705,0x00000706,0x0003003e,0x000006e6,0x00000707,0x0004003d,0x0000002d,0x00000708, + 0x000000ff,0x00050050,0x0000002d,0x00000709,0x00000691,0x00000691,0x00050084,0x0000002d, + 0x0000070a,0x00000708,0x00000709,0x0004007c,0x00000032,0x0000070b,0x0000070a,0x0004003d, + 0x00000006,0x0000070c,0x000000fd,0x0004007c,0x0000001a,0x0000070d,0x0000070c,0x0004003d, + 0x00000006,0x0000070e,0x000000fe,0x0004007c,0x0000001a,0x0000070f,0x0000070e,0x00050050, + 0x00000032,0x00000710,0x0000070d,0x0000070f,0x00050080,0x00000032,0x00000711,0x0000070b, + 0x00000710,0x0003003e,0x00000712,0x00000711,0x0004003d,0x0000009f,0x00000714,0x000006e6, + 0x0003003e,0x00000713,0x00000714,0x0004003d,0x00000006,0x00000716,0x00000101,0x0003003e, + 0x00000715,0x00000716,0x0004003d,0x00000006,0x00000718,0x00000102,0x0003003e,0x00000717, + 0x00000718,0x00080039,0x00000002,0x00000719,0x000000b7,0x00000712,0x00000713,0x00000715, + 0x00000717,0x0004003d,0x00000006,0x0000071a,0x000000fd,0x00050084,0x00000006,0x0000071b, + 0x0000071a,0x0000016e,0x0004003d,0x00000006,0x0000071c,0x000000fe,0x00050089,0x00000006, + 0x0000071d,0x0000071c,0x0000016e,0x00050080,0x00000006,0x0000071e,0x0000071b,0x0000071d, + 0x0004003d,0x00000006,0x0000071f,0x000000fe,0x00050084,0x00000006,0x00000720,0x0000071f, + 0x0000016e,0x0003003e,0x00000721,0x0000071e,0x0003003e,0x00000722,0x00000720,0x0004003d, + 0x0000009f,0x00000724,0x000006e6,0x0003003e,0x00000723,0x00000724,0x00070039,0x00000002, + 0x00000725,0x000000c2,0x00000721,0x00000722,0x00000723,0x000200f9,0x000006e5,0x000200f8, + 0x000006e5,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000010b,0x00000000,0x000000ec, + 0x00030037,0x00000007,0x00000105,0x00030037,0x00000007,0x00000106,0x00030037,0x000000cc, + 0x00000107,0x00030037,0x00000007,0x00000108,0x00030037,0x00000007,0x00000109,0x00030037, + 0x00000007,0x0000010a,0x000200f8,0x0000010c,0x0004003b,0x000000aa,0x0000072a,0x00000007, + 0x0004003b,0x000000cc,0x0000074b,0x00000007,0x0004003b,0x000000cc,0x0000074c,0x00000007, + 0x0004003b,0x000000cc,0x0000074d,0x00000007,0x0004003b,0x000000cc,0x0000074e,0x00000007, + 0x0004003b,0x00000049,0x0000075a,0x00000007,0x0004003b,0x000000aa,0x0000075b,0x00000007, + 0x0004003b,0x00000007,0x0000075d,0x00000007,0x0004003b,0x00000007,0x0000075f,0x00000007, + 0x0004003b,0x00000007,0x00000768,0x00000007,0x0004003b,0x00000007,0x00000769,0x00000007, + 0x0004003b,0x000000aa,0x0000076a,0x00000007,0x0004003d,0x00000006,0x00000726,0x00000108, + 0x000500b0,0x0000006e,0x00000727,0x00000726,0x000004c2,0x000300f7,0x00000729,0x00000000, + 0x000400fa,0x00000727,0x00000728,0x00000729,0x000200f8,0x00000728,0x0004003d,0x00000006, + 0x0000072b,0x00000105,0x00050084,0x00000006,0x0000072c,0x0000072b,0x0000020e,0x00050080, + 0x00000006,0x0000072d,0x0000072c,0x000001c2,0x00050080,0x00000006,0x0000072e,0x0000072d, + 0x000001c2,0x0004003d,0x00000006,0x0000072f,0x00000106,0x00050084,0x00000006,0x00000730, + 0x0000072f,0x0000020e,0x00050080,0x00000006,0x00000731,0x00000730,0x000001c2,0x00050050, + 0x0000002d,0x00000732,0x0000072e,0x00000731,0x0004003d,0x00000006,0x00000733,0x00000105, + 0x00050084,0x00000006,0x00000734,0x00000733,0x0000020e,0x00050080,0x00000006,0x00000735, + 0x00000734,0x0000016e,0x00050080,0x00000006,0x00000736,0x00000735,0x000001c2,0x0004003d, + 0x00000006,0x00000737,0x00000106,0x00050084,0x00000006,0x00000738,0x00000737,0x0000020e, + 0x00050080,0x00000006,0x00000739,0x00000738,0x000001c2,0x00050050,0x0000002d,0x0000073a, + 0x00000736,0x00000739,0x0004003d,0x00000006,0x0000073b,0x00000105,0x00050084,0x00000006, + 0x0000073c,0x0000073b,0x0000020e,0x00050080,0x00000006,0x0000073d,0x0000073c,0x000001c2, + 0x00050080,0x00000006,0x0000073e,0x0000073d,0x00000175,0x0004003d,0x00000006,0x0000073f, + 0x00000106,0x00050084,0x00000006,0x00000740,0x0000073f,0x0000020e,0x00050080,0x00000006, + 0x00000741,0x00000740,0x0000016e,0x00050050,0x0000002d,0x00000742,0x0000073e,0x00000741, + 0x0004003d,0x00000006,0x00000743,0x00000105,0x00050084,0x00000006,0x00000744,0x00000743, + 0x0000020e,0x00050080,0x00000006,0x00000745,0x00000744,0x0000016e,0x00050080,0x00000006, + 0x00000746,0x00000745,0x00000175,0x0004003d,0x00000006,0x00000747,0x00000106,0x00050084, + 0x00000006,0x00000748,0x00000747,0x0000020e,0x00050080,0x00000006,0x00000749,0x00000748, + 0x0000016e,0x00050050,0x0000002d,0x0000074a,0x00000746,0x00000749,0x0003003e,0x0000074b, + 0x00000732,0x0003003e,0x0000074c,0x0000073a,0x0003003e,0x0000074d,0x00000742,0x0003003e, + 0x0000074e,0x0000074a,0x00080039,0x0000009f,0x0000074f,0x000000d2,0x0000074b,0x0000074c, + 0x0000074d,0x0000074e,0x0003003e,0x0000072a,0x0000074f,0x0004003d,0x0000002d,0x00000750, + 0x00000107,0x00050050,0x0000002d,0x00000751,0x0000020e,0x0000020e,0x00050084,0x0000002d, + 0x00000752,0x00000750,0x00000751,0x0004007c,0x00000032,0x00000753,0x00000752,0x0004003d, + 0x00000006,0x00000754,0x00000105,0x0004007c,0x0000001a,0x00000755,0x00000754,0x0004003d, + 0x00000006,0x00000756,0x00000106,0x0004007c,0x0000001a,0x00000757,0x00000756,0x00050050, + 0x00000032,0x00000758,0x00000755,0x00000757,0x00050080,0x00000032,0x00000759,0x00000753, + 0x00000758,0x0003003e,0x0000075a,0x00000759,0x0004003d,0x0000009f,0x0000075c,0x0000072a, + 0x0003003e,0x0000075b,0x0000075c,0x0004003d,0x00000006,0x0000075e,0x00000109,0x0003003e, + 0x0000075d,0x0000075e,0x0004003d,0x00000006,0x00000760,0x0000010a,0x0003003e,0x0000075f, + 0x00000760,0x00080039,0x00000002,0x00000761,0x000000b7,0x0000075a,0x0000075b,0x0000075d, + 0x0000075f,0x0004003d,0x00000006,0x00000762,0x00000105,0x00050084,0x00000006,0x00000763, + 0x00000762,0x0000020e,0x0004003d,0x00000006,0x00000764,0x00000106,0x00050080,0x00000006, + 0x00000765,0x00000763,0x00000764,0x0004003d,0x00000006,0x00000766,0x00000106,0x00050084, + 0x00000006,0x00000767,0x00000766,0x0000020e,0x0003003e,0x00000768,0x00000765,0x0003003e, + 0x00000769,0x00000767,0x0004003d,0x0000009f,0x0000076b,0x0000072a,0x0003003e,0x0000076a, + 0x0000076b,0x00070039,0x00000002,0x0000076c,0x000000c2,0x00000768,0x00000769,0x0000076a, + 0x000200f9,0x00000729,0x000200f8,0x00000729,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000113,0x00000000,0x000000ec,0x00030037,0x00000007,0x0000010d,0x00030037,0x00000007, + 0x0000010e,0x00030037,0x000000cc,0x0000010f,0x00030037,0x00000007,0x00000110,0x00030037, + 0x00000007,0x00000111,0x00030037,0x00000007,0x00000112,0x000200f8,0x00000114,0x0004003b, + 0x000000aa,0x00000771,0x00000007,0x0004003b,0x000000cc,0x0000079e,0x00000007,0x0004003b, + 0x000000cc,0x0000079f,0x00000007,0x0004003b,0x000000cc,0x000007a0,0x00000007,0x0004003b, + 0x000000cc,0x000007a1,0x00000007,0x0004003b,0x00000049,0x000007ad,0x00000007,0x0004003b, + 0x000000aa,0x000007ae,0x00000007,0x0004003b,0x00000007,0x000007b0,0x00000007,0x0004003b, + 0x00000007,0x000007b2,0x00000007,0x0004003b,0x00000007,0x000007b9,0x00000007,0x0004003b, + 0x00000007,0x000007ba,0x00000007,0x0004003b,0x000000aa,0x000007bb,0x00000007,0x0004003d, + 0x00000006,0x0000076d,0x00000110,0x000500b0,0x0000006e,0x0000076e,0x0000076d,0x0000020e, + 0x000300f7,0x00000770,0x00000000,0x000400fa,0x0000076e,0x0000076f,0x00000770,0x000200f8, + 0x0000076f,0x0004003d,0x00000006,0x00000772,0x0000010d,0x00050084,0x00000006,0x00000773, + 0x00000772,0x00000691,0x00050080,0x00000006,0x00000774,0x00000773,0x000001c2,0x00050080, + 0x00000006,0x00000775,0x00000774,0x000001c2,0x0004003d,0x00000006,0x00000776,0x0000010e, + 0x00050084,0x00000006,0x00000777,0x00000776,0x0000016e,0x00050080,0x00000006,0x00000778, + 0x00000775,0x00000777,0x0004003d,0x00000006,0x00000779,0x0000010e,0x00050084,0x00000006, + 0x0000077a,0x00000779,0x00000691,0x00050080,0x00000006,0x0000077b,0x0000077a,0x000001c2, + 0x00050050,0x0000002d,0x0000077c,0x00000778,0x0000077b,0x0004003d,0x00000006,0x0000077d, + 0x0000010d,0x00050084,0x00000006,0x0000077e,0x0000077d,0x00000691,0x00050080,0x00000006, + 0x0000077f,0x0000077e,0x0000020e,0x00050080,0x00000006,0x00000780,0x0000077f,0x000001c2, + 0x0004003d,0x00000006,0x00000781,0x0000010e,0x00050084,0x00000006,0x00000782,0x00000781, + 0x0000016e,0x00050080,0x00000006,0x00000783,0x00000780,0x00000782,0x0004003d,0x00000006, + 0x00000784,0x0000010e,0x00050084,0x00000006,0x00000785,0x00000784,0x00000691,0x00050080, + 0x00000006,0x00000786,0x00000785,0x000001c2,0x00050050,0x0000002d,0x00000787,0x00000783, + 0x00000786,0x0004003d,0x00000006,0x00000788,0x0000010d,0x00050084,0x00000006,0x00000789, + 0x00000788,0x00000691,0x00050080,0x00000006,0x0000078a,0x00000789,0x000001c2,0x00050080, + 0x00000006,0x0000078b,0x0000078a,0x00000175,0x0004003d,0x00000006,0x0000078c,0x0000010e, + 0x00050084,0x00000006,0x0000078d,0x0000078c,0x0000016e,0x00050080,0x00000006,0x0000078e, + 0x0000078b,0x0000078d,0x0004003d,0x00000006,0x0000078f,0x0000010e,0x00050084,0x00000006, + 0x00000790,0x0000078f,0x00000691,0x00050080,0x00000006,0x00000791,0x00000790,0x0000020e, + 0x00050050,0x0000002d,0x00000792,0x0000078e,0x00000791,0x0004003d,0x00000006,0x00000793, + 0x0000010d,0x00050084,0x00000006,0x00000794,0x00000793,0x00000691,0x00050080,0x00000006, + 0x00000795,0x00000794,0x0000020e,0x00050080,0x00000006,0x00000796,0x00000795,0x00000175, + 0x0004003d,0x00000006,0x00000797,0x0000010e,0x00050084,0x00000006,0x00000798,0x00000797, + 0x0000016e,0x00050080,0x00000006,0x00000799,0x00000796,0x00000798,0x0004003d,0x00000006, + 0x0000079a,0x0000010e,0x00050084,0x00000006,0x0000079b,0x0000079a,0x00000691,0x00050080, + 0x00000006,0x0000079c,0x0000079b,0x0000020e,0x00050050,0x0000002d,0x0000079d,0x00000799, + 0x0000079c,0x0003003e,0x0000079e,0x0000077c,0x0003003e,0x0000079f,0x00000787,0x0003003e, + 0x000007a0,0x00000792,0x0003003e,0x000007a1,0x0000079d,0x00080039,0x0000009f,0x000007a2, + 0x000000d2,0x0000079e,0x0000079f,0x000007a0,0x000007a1,0x0003003e,0x00000771,0x000007a2, + 0x0004003d,0x0000002d,0x000007a3,0x0000010f,0x00050050,0x0000002d,0x000007a4,0x0000016e, + 0x0000016e,0x00050084,0x0000002d,0x000007a5,0x000007a3,0x000007a4,0x0004007c,0x00000032, + 0x000007a6,0x000007a5,0x0004003d,0x00000006,0x000007a7,0x0000010d,0x0004007c,0x0000001a, + 0x000007a8,0x000007a7,0x0004003d,0x00000006,0x000007a9,0x0000010e,0x0004007c,0x0000001a, + 0x000007aa,0x000007a9,0x00050050,0x00000032,0x000007ab,0x000007a8,0x000007aa,0x00050080, + 0x00000032,0x000007ac,0x000007a6,0x000007ab,0x0003003e,0x000007ad,0x000007ac,0x0004003d, + 0x0000009f,0x000007af,0x00000771,0x0003003e,0x000007ae,0x000007af,0x0004003d,0x00000006, + 0x000007b1,0x00000111,0x0003003e,0x000007b0,0x000007b1,0x0004003d,0x00000006,0x000007b3, + 0x00000112,0x0003003e,0x000007b2,0x000007b3,0x00080039,0x00000002,0x000007b4,0x000000b7, + 0x000007ad,0x000007ae,0x000007b0,0x000007b2,0x0004003d,0x00000006,0x000007b5,0x0000010d, + 0x0004003d,0x00000006,0x000007b6,0x0000010e,0x00050084,0x00000006,0x000007b7,0x000007b6, + 0x0000016e,0x00050080,0x00000006,0x000007b8,0x000007b5,0x000007b7,0x0003003e,0x000007b9, + 0x000007b8,0x0003003e,0x000007ba,0x000001c2,0x0004003d,0x0000009f,0x000007bc,0x00000771, + 0x0003003e,0x000007bb,0x000007bc,0x00070039,0x00000002,0x000007bd,0x000000c2,0x000007b9, + 0x000007ba,0x000007bb,0x000200f9,0x00000770,0x000200f8,0x00000770,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000011a,0x00000000,0x00000115,0x00030037,0x000000cc,0x00000116, + 0x00030037,0x00000007,0x00000117,0x00030037,0x00000007,0x00000118,0x00030037,0x00000007, + 0x00000119,0x000200f8,0x0000011b,0x0004003b,0x000000aa,0x000007c2,0x00000007,0x0004003b, + 0x000000cc,0x000007c5,0x00000007,0x0004003b,0x000000cc,0x000007c6,0x00000007,0x0004003b, + 0x000000cc,0x000007c7,0x00000007,0x0004003b,0x000000cc,0x000007c8,0x00000007,0x0004003b, + 0x00000049,0x000007cc,0x00000007,0x0004003b,0x000000aa,0x000007cd,0x00000007,0x0004003b, + 0x00000007,0x000007cf,0x00000007,0x0004003b,0x00000007,0x000007d1,0x00000007,0x0004003d, + 0x00000006,0x000007be,0x00000117,0x000500b0,0x0000006e,0x000007bf,0x000007be,0x00000175, + 0x000300f7,0x000007c1,0x00000000,0x000400fa,0x000007bf,0x000007c0,0x000007c1,0x000200f8, + 0x000007c0,0x0003003e,0x000007c5,0x00000555,0x0003003e,0x000007c6,0x0000055b,0x0003003e, + 0x000007c7,0x000007c3,0x0003003e,0x000007c8,0x000007c4,0x00080039,0x0000009f,0x000007c9, + 0x000000d2,0x000007c5,0x000007c6,0x000007c7,0x000007c8,0x0003003e,0x000007c2,0x000007c9, + 0x0004003d,0x0000002d,0x000007ca,0x00000116,0x0004007c,0x00000032,0x000007cb,0x000007ca, + 0x0003003e,0x000007cc,0x000007cb,0x0004003d,0x0000009f,0x000007ce,0x000007c2,0x0003003e, + 0x000007cd,0x000007ce,0x0004003d,0x00000006,0x000007d0,0x00000118,0x0003003e,0x000007cf, + 0x000007d0,0x0004003d,0x00000006,0x000007d2,0x00000119,0x0003003e,0x000007d1,0x000007d2, + 0x00080039,0x00000002,0x000007d3,0x000000b7,0x000007cc,0x000007cd,0x000007cf,0x000007d1, + 0x000200f9,0x000007c1,0x000200f8,0x000007c1,0x000100fd,0x00010038,0x00050036,0x00000002, + 0x00000121,0x00000000,0x0000011c,0x00030037,0x00000007,0x0000011d,0x00030037,0x00000007, + 0x0000011e,0x00030037,0x00000007,0x0000011f,0x00030037,0x00000007,0x00000120,0x000200f8, + 0x00000122,0x0004003b,0x00000049,0x000007d4,0x00000007,0x0004003b,0x00000049,0x000007de, + 0x00000007,0x0004003b,0x000000aa,0x000007e8,0x00000007,0x0004003b,0x000000cc,0x000007eb, + 0x00000007,0x0004003b,0x00000007,0x000007ec,0x00000007,0x0004003b,0x00000049,0x000007f0, + 0x00000007,0x0004003b,0x000000aa,0x000007f2,0x00000007,0x0004003b,0x00000007,0x000007f4, + 0x00000007,0x0004003b,0x00000007,0x000007f5,0x00000007,0x0004003b,0x000000aa,0x0000080a, + 0x00000007,0x0004003b,0x000000cc,0x0000080d,0x00000007,0x0004003b,0x00000007,0x0000080e, + 0x00000007,0x0004003b,0x00000049,0x00000811,0x00000007,0x0004003b,0x000000aa,0x00000813, + 0x00000007,0x0004003b,0x00000007,0x00000815,0x00000007,0x0004003b,0x00000007,0x00000816, + 0x00000007,0x0004003b,0x000000aa,0x0000082b,0x00000007,0x0004003b,0x000000cc,0x0000082e, + 0x00000007,0x0004003b,0x00000007,0x0000082f,0x00000007,0x0004003b,0x00000049,0x00000832, + 0x00000007,0x0004003b,0x000000aa,0x00000834,0x00000007,0x0004003b,0x00000007,0x00000836, + 0x00000007,0x0004003b,0x00000007,0x00000837,0x00000007,0x0004003b,0x000000aa,0x0000084c, + 0x00000007,0x0004003b,0x000000cc,0x0000084f,0x00000007,0x0004003b,0x00000007,0x00000850, + 0x00000007,0x0004003b,0x00000049,0x00000853,0x00000007,0x0004003b,0x000000aa,0x00000855, + 0x00000007,0x0004003b,0x00000007,0x00000857,0x00000007,0x0004003b,0x00000007,0x00000858, + 0x00000007,0x0004003b,0x000000aa,0x00000861,0x00000007,0x0004003b,0x000000aa,0x00000862, + 0x00000007,0x0004003b,0x000000aa,0x00000864,0x00000007,0x0004003b,0x000000aa,0x00000866, + 0x00000007,0x0004003b,0x000000aa,0x00000868,0x00000007,0x0004003b,0x00000049,0x00000870, + 0x00000007,0x0004003b,0x000000aa,0x00000871,0x00000007,0x0004003b,0x00000007,0x00000873, + 0x00000007,0x0004003b,0x00000007,0x00000874,0x00000007,0x0004003b,0x00000007,0x00000877, + 0x00000007,0x0004003b,0x00000007,0x00000879,0x00000007,0x0004003b,0x000000aa,0x0000087b, + 0x00000007,0x0004003d,0x00000006,0x000007d5,0x0000011d,0x00050084,0x00000006,0x000007d6, + 0x000007d5,0x0000020e,0x00050080,0x00000006,0x000007d7,0x000007d6,0x000001c2,0x0004007c, + 0x0000001a,0x000007d8,0x000007d7,0x0004003d,0x00000006,0x000007d9,0x0000011e,0x00050084, + 0x00000006,0x000007da,0x000007d9,0x0000020e,0x00050080,0x00000006,0x000007db,0x000007da, + 0x000001c2,0x0004007c,0x0000001a,0x000007dc,0x000007db,0x00050050,0x00000032,0x000007dd, + 0x000007d8,0x000007dc,0x0003003e,0x000007d4,0x000007dd,0x0004003d,0x00000006,0x000007df, + 0x0000011d,0x00050084,0x00000006,0x000007e0,0x000007df,0x0000016e,0x00050080,0x00000006, + 0x000007e1,0x000007e0,0x000001c2,0x0004007c,0x0000001a,0x000007e2,0x000007e1,0x0004003d, + 0x00000006,0x000007e3,0x0000011e,0x00050084,0x00000006,0x000007e4,0x000007e3,0x0000016e, + 0x00050080,0x00000006,0x000007e5,0x000007e4,0x000001c2,0x0004007c,0x0000001a,0x000007e6, + 0x000007e5,0x00050050,0x00000032,0x000007e7,0x000007e2,0x000007e6,0x0003003e,0x000007de, + 0x000007e7,0x0004003d,0x00000032,0x000007e9,0x000007d4,0x0004007c,0x0000002d,0x000007ea, + 0x000007e9,0x0003003e,0x000007eb,0x000007ea,0x0004003d,0x00000006,0x000007ed,0x00000120, + 0x0003003e,0x000007ec,0x000007ed,0x00060039,0x0000009f,0x000007ee,0x000000df,0x000007eb, + 0x000007ec,0x0003003e,0x000007e8,0x000007ee,0x0004003d,0x00000032,0x000007f1,0x000007de, + 0x0003003e,0x000007f0,0x000007f1,0x0004003d,0x0000009f,0x000007f3,0x000007e8,0x0003003e, + 0x000007f2,0x000007f3,0x0003003e,0x000007f4,0x000007ef,0x0004003d,0x00000006,0x000007f6, + 0x00000120,0x0003003e,0x000007f5,0x000007f6,0x00080039,0x00000002,0x000007f7,0x000000b7, + 0x000007f0,0x000007f2,0x000007f4,0x000007f5,0x0004003d,0x00000006,0x000007f8,0x0000011d, + 0x00050084,0x00000006,0x000007f9,0x000007f8,0x0000020e,0x00050080,0x00000006,0x000007fa, + 0x000007f9,0x0000016e,0x0004007c,0x0000001a,0x000007fb,0x000007fa,0x0004003d,0x00000006, + 0x000007fc,0x0000011e,0x00050084,0x00000006,0x000007fd,0x000007fc,0x0000020e,0x00050080, + 0x00000006,0x000007fe,0x000007fd,0x000001c2,0x0004007c,0x0000001a,0x000007ff,0x000007fe, + 0x00050050,0x00000032,0x00000800,0x000007fb,0x000007ff,0x0003003e,0x000007d4,0x00000800, + 0x0004003d,0x00000006,0x00000801,0x0000011d,0x00050084,0x00000006,0x00000802,0x00000801, + 0x0000016e,0x00050080,0x00000006,0x00000803,0x00000802,0x00000175,0x0004007c,0x0000001a, + 0x00000804,0x00000803,0x0004003d,0x00000006,0x00000805,0x0000011e,0x00050084,0x00000006, + 0x00000806,0x00000805,0x0000016e,0x00050080,0x00000006,0x00000807,0x00000806,0x000001c2, + 0x0004007c,0x0000001a,0x00000808,0x00000807,0x00050050,0x00000032,0x00000809,0x00000804, + 0x00000808,0x0003003e,0x000007de,0x00000809,0x0004003d,0x00000032,0x0000080b,0x000007d4, + 0x0004007c,0x0000002d,0x0000080c,0x0000080b,0x0003003e,0x0000080d,0x0000080c,0x0004003d, + 0x00000006,0x0000080f,0x00000120,0x0003003e,0x0000080e,0x0000080f,0x00060039,0x0000009f, + 0x00000810,0x000000df,0x0000080d,0x0000080e,0x0003003e,0x0000080a,0x00000810,0x0004003d, + 0x00000032,0x00000812,0x000007de,0x0003003e,0x00000811,0x00000812,0x0004003d,0x0000009f, + 0x00000814,0x0000080a,0x0003003e,0x00000813,0x00000814,0x0003003e,0x00000815,0x000007ef, + 0x0004003d,0x00000006,0x00000817,0x00000120,0x0003003e,0x00000816,0x00000817,0x00080039, + 0x00000002,0x00000818,0x000000b7,0x00000811,0x00000813,0x00000815,0x00000816,0x0004003d, + 0x00000006,0x00000819,0x0000011d,0x00050084,0x00000006,0x0000081a,0x00000819,0x0000020e, + 0x00050080,0x00000006,0x0000081b,0x0000081a,0x000001c2,0x0004007c,0x0000001a,0x0000081c, + 0x0000081b,0x0004003d,0x00000006,0x0000081d,0x0000011e,0x00050084,0x00000006,0x0000081e, + 0x0000081d,0x0000020e,0x00050080,0x00000006,0x0000081f,0x0000081e,0x0000016e,0x0004007c, + 0x0000001a,0x00000820,0x0000081f,0x00050050,0x00000032,0x00000821,0x0000081c,0x00000820, + 0x0003003e,0x000007d4,0x00000821,0x0004003d,0x00000006,0x00000822,0x0000011d,0x00050084, + 0x00000006,0x00000823,0x00000822,0x0000016e,0x00050080,0x00000006,0x00000824,0x00000823, + 0x000001c2,0x0004007c,0x0000001a,0x00000825,0x00000824,0x0004003d,0x00000006,0x00000826, + 0x0000011e,0x00050084,0x00000006,0x00000827,0x00000826,0x0000016e,0x00050080,0x00000006, + 0x00000828,0x00000827,0x00000175,0x0004007c,0x0000001a,0x00000829,0x00000828,0x00050050, + 0x00000032,0x0000082a,0x00000825,0x00000829,0x0003003e,0x000007de,0x0000082a,0x0004003d, + 0x00000032,0x0000082c,0x000007d4,0x0004007c,0x0000002d,0x0000082d,0x0000082c,0x0003003e, + 0x0000082e,0x0000082d,0x0004003d,0x00000006,0x00000830,0x00000120,0x0003003e,0x0000082f, + 0x00000830,0x00060039,0x0000009f,0x00000831,0x000000df,0x0000082e,0x0000082f,0x0003003e, + 0x0000082b,0x00000831,0x0004003d,0x00000032,0x00000833,0x000007de,0x0003003e,0x00000832, + 0x00000833,0x0004003d,0x0000009f,0x00000835,0x0000082b,0x0003003e,0x00000834,0x00000835, + 0x0003003e,0x00000836,0x000007ef,0x0004003d,0x00000006,0x00000838,0x00000120,0x0003003e, + 0x00000837,0x00000838,0x00080039,0x00000002,0x00000839,0x000000b7,0x00000832,0x00000834, + 0x00000836,0x00000837,0x0004003d,0x00000006,0x0000083a,0x0000011d,0x00050084,0x00000006, + 0x0000083b,0x0000083a,0x0000020e,0x00050080,0x00000006,0x0000083c,0x0000083b,0x0000016e, + 0x0004007c,0x0000001a,0x0000083d,0x0000083c,0x0004003d,0x00000006,0x0000083e,0x0000011e, + 0x00050084,0x00000006,0x0000083f,0x0000083e,0x0000020e,0x00050080,0x00000006,0x00000840, + 0x0000083f,0x0000016e,0x0004007c,0x0000001a,0x00000841,0x00000840,0x00050050,0x00000032, + 0x00000842,0x0000083d,0x00000841,0x0003003e,0x000007d4,0x00000842,0x0004003d,0x00000006, + 0x00000843,0x0000011d,0x00050084,0x00000006,0x00000844,0x00000843,0x0000016e,0x00050080, + 0x00000006,0x00000845,0x00000844,0x00000175,0x0004007c,0x0000001a,0x00000846,0x00000845, + 0x0004003d,0x00000006,0x00000847,0x0000011e,0x00050084,0x00000006,0x00000848,0x00000847, + 0x0000016e,0x00050080,0x00000006,0x00000849,0x00000848,0x00000175,0x0004007c,0x0000001a, + 0x0000084a,0x00000849,0x00050050,0x00000032,0x0000084b,0x00000846,0x0000084a,0x0003003e, + 0x000007de,0x0000084b,0x0004003d,0x00000032,0x0000084d,0x000007d4,0x0004007c,0x0000002d, + 0x0000084e,0x0000084d,0x0003003e,0x0000084f,0x0000084e,0x0004003d,0x00000006,0x00000851, + 0x00000120,0x0003003e,0x00000850,0x00000851,0x00060039,0x0000009f,0x00000852,0x000000df, + 0x0000084f,0x00000850,0x0003003e,0x0000084c,0x00000852,0x0004003d,0x00000032,0x00000854, + 0x000007de,0x0003003e,0x00000853,0x00000854,0x0004003d,0x0000009f,0x00000856,0x0000084c, + 0x0003003e,0x00000855,0x00000856,0x0003003e,0x00000857,0x000007ef,0x0004003d,0x00000006, + 0x00000859,0x00000120,0x0003003e,0x00000858,0x00000859,0x00080039,0x00000002,0x0000085a, + 0x000000b7,0x00000853,0x00000855,0x00000857,0x00000858,0x0004003d,0x00000006,0x0000085b, + 0x0000011f,0x000500b2,0x0000006e,0x0000085d,0x0000085b,0x0000085c,0x000300f7,0x0000085f, + 0x00000000,0x000400fa,0x0000085d,0x0000085e,0x0000085f,0x000200f8,0x0000085e,0x000100fd, + 0x000200f8,0x0000085f,0x0004003d,0x0000009f,0x00000863,0x000007e8,0x0003003e,0x00000862, + 0x00000863,0x0004003d,0x0000009f,0x00000865,0x0000080a,0x0003003e,0x00000864,0x00000865, + 0x0004003d,0x0000009f,0x00000867,0x0000082b,0x0003003e,0x00000866,0x00000867,0x0004003d, + 0x0000009f,0x00000869,0x0000084c,0x0003003e,0x00000868,0x00000869,0x00080039,0x0000009f, + 0x0000086a,0x000000b0,0x00000862,0x00000864,0x00000866,0x00000868,0x0003003e,0x00000861, + 0x0000086a,0x0004003d,0x00000006,0x0000086b,0x0000011d,0x0004007c,0x0000001a,0x0000086c, + 0x0000086b,0x0004003d,0x00000006,0x0000086d,0x0000011e,0x0004007c,0x0000001a,0x0000086e, + 0x0000086d,0x00050050,0x00000032,0x0000086f,0x0000086c,0x0000086e,0x0003003e,0x00000870, + 0x0000086f,0x0004003d,0x0000009f,0x00000872,0x00000861,0x0003003e,0x00000871,0x00000872, + 0x0003003e,0x00000873,0x0000085c,0x0004003d,0x00000006,0x00000875,0x00000120,0x0003003e, + 0x00000874,0x00000875,0x00080039,0x00000002,0x00000876,0x000000b7,0x00000870,0x00000871, + 0x00000873,0x00000874,0x0004003d,0x00000006,0x00000878,0x0000011d,0x0003003e,0x00000877, + 0x00000878,0x0004003d,0x00000006,0x0000087a,0x0000011e,0x0003003e,0x00000879,0x0000087a, + 0x0004003d,0x0000009f,0x0000087c,0x00000861,0x0003003e,0x0000087b,0x0000087c,0x00070039, + 0x00000002,0x0000087d,0x000000c2,0x00000877,0x00000879,0x0000087b,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x0000012b,0x00000000,0x00000123,0x00030037,0x00000007,0x00000124, + 0x00030037,0x00000007,0x00000125,0x00030037,0x000000cc,0x00000126,0x00030037,0x00000007, + 0x00000127,0x00030037,0x00000007,0x00000128,0x00030037,0x00000007,0x00000129,0x00030037, + 0x00000007,0x0000012a,0x000200f8,0x0000012c,0x0004003b,0x00000007,0x00000885,0x00000007, + 0x0004003b,0x00000007,0x00000887,0x00000007,0x0004003b,0x000000cc,0x00000889,0x00000007, + 0x0004003b,0x00000007,0x0000088b,0x00000007,0x0004003b,0x00000007,0x0000088d,0x00000007, + 0x0004003b,0x00000007,0x0000088f,0x00000007,0x0004003b,0x00000007,0x0000089c,0x00000007, + 0x0004003b,0x00000007,0x0000089e,0x00000007,0x0004003b,0x000000cc,0x000008a0,0x00000007, + 0x0004003b,0x00000007,0x000008a2,0x00000007,0x0004003b,0x00000007,0x000008a4,0x00000007, + 0x0004003b,0x00000007,0x000008a5,0x00000007,0x0004003b,0x00000007,0x000008b2,0x00000007, + 0x0004003b,0x00000007,0x000008b4,0x00000007,0x0004003b,0x000000cc,0x000008b6,0x00000007, + 0x0004003b,0x00000007,0x000008b8,0x00000007,0x0004003b,0x00000007,0x000008ba,0x00000007, + 0x0004003b,0x00000007,0x000008bb,0x00000007,0x0004003b,0x000000cc,0x000008c8,0x00000007, + 0x0004003b,0x00000007,0x000008ca,0x00000007,0x0004003b,0x00000007,0x000008cc,0x00000007, + 0x0004003b,0x00000007,0x000008cd,0x00000007,0x0004003d,0x00000006,0x0000087e,0x00000129, + 0x0004003d,0x00000006,0x0000087f,0x00000128,0x000500b2,0x0000006e,0x00000880,0x0000087e, + 0x0000087f,0x000300f7,0x00000882,0x00000000,0x000400fa,0x00000880,0x00000881,0x00000882, + 0x000200f8,0x00000881,0x000100fd,0x000200f8,0x00000882,0x00040039,0x00000002,0x00000884, + 0x000000c4,0x0004003d,0x00000006,0x00000886,0x00000124,0x0003003e,0x00000885,0x00000886, + 0x0004003d,0x00000006,0x00000888,0x00000125,0x0003003e,0x00000887,0x00000888,0x0004003d, + 0x0000002d,0x0000088a,0x00000126,0x0003003e,0x00000889,0x0000088a,0x0004003d,0x00000006, + 0x0000088c,0x00000127,0x0003003e,0x0000088b,0x0000088c,0x0004003d,0x00000006,0x0000088e, + 0x00000128,0x0003003e,0x0000088d,0x0000088e,0x0004003d,0x00000006,0x00000890,0x0000012a, + 0x0003003e,0x0000088f,0x00000890,0x000a0039,0x00000002,0x00000891,0x00000103,0x00000885, + 0x00000887,0x00000889,0x0000088b,0x0000088d,0x0000088f,0x0004003d,0x00000006,0x00000892, + 0x00000129,0x0004003d,0x00000006,0x00000893,0x00000128,0x00050080,0x00000006,0x00000894, + 0x00000893,0x00000175,0x000500b2,0x0000006e,0x00000895,0x00000892,0x00000894,0x000300f7, + 0x00000897,0x00000000,0x000400fa,0x00000895,0x00000896,0x00000897,0x000200f8,0x00000896, + 0x000100fd,0x000200f8,0x00000897,0x00040039,0x00000002,0x00000899,0x000000c4,0x0004003d, + 0x00000006,0x0000089a,0x00000128,0x00050080,0x00000006,0x0000089b,0x0000089a,0x00000175, + 0x0004003d,0x00000006,0x0000089d,0x00000124,0x0003003e,0x0000089c,0x0000089d,0x0004003d, + 0x00000006,0x0000089f,0x00000125,0x0003003e,0x0000089e,0x0000089f,0x0004003d,0x0000002d, + 0x000008a1,0x00000126,0x0003003e,0x000008a0,0x000008a1,0x0004003d,0x00000006,0x000008a3, + 0x00000127,0x0003003e,0x000008a2,0x000008a3,0x0003003e,0x000008a4,0x0000089b,0x0004003d, + 0x00000006,0x000008a6,0x0000012a,0x0003003e,0x000008a5,0x000008a6,0x000a0039,0x00000002, + 0x000008a7,0x0000010b,0x0000089c,0x0000089e,0x000008a0,0x000008a2,0x000008a4,0x000008a5, + 0x0004003d,0x00000006,0x000008a8,0x00000129,0x0004003d,0x00000006,0x000008a9,0x00000128, + 0x00050080,0x00000006,0x000008aa,0x000008a9,0x0000016e,0x000500b2,0x0000006e,0x000008ab, + 0x000008a8,0x000008aa,0x000300f7,0x000008ad,0x00000000,0x000400fa,0x000008ab,0x000008ac, + 0x000008ad,0x000200f8,0x000008ac,0x000100fd,0x000200f8,0x000008ad,0x00040039,0x00000002, + 0x000008af,0x000000c4,0x0004003d,0x00000006,0x000008b0,0x00000128,0x00050080,0x00000006, + 0x000008b1,0x000008b0,0x0000016e,0x0004003d,0x00000006,0x000008b3,0x00000124,0x0003003e, + 0x000008b2,0x000008b3,0x0004003d,0x00000006,0x000008b5,0x00000125,0x0003003e,0x000008b4, + 0x000008b5,0x0004003d,0x0000002d,0x000008b7,0x00000126,0x0003003e,0x000008b6,0x000008b7, + 0x0004003d,0x00000006,0x000008b9,0x00000127,0x0003003e,0x000008b8,0x000008b9,0x0003003e, + 0x000008ba,0x000008b1,0x0004003d,0x00000006,0x000008bc,0x0000012a,0x0003003e,0x000008bb, + 0x000008bc,0x000a0039,0x00000002,0x000008bd,0x00000113,0x000008b2,0x000008b4,0x000008b6, + 0x000008b8,0x000008ba,0x000008bb,0x0004003d,0x00000006,0x000008be,0x00000129,0x0004003d, + 0x00000006,0x000008bf,0x00000128,0x00050080,0x00000006,0x000008c0,0x000008bf,0x0000016f, + 0x000500b2,0x0000006e,0x000008c1,0x000008be,0x000008c0,0x000300f7,0x000008c3,0x00000000, + 0x000400fa,0x000008c1,0x000008c2,0x000008c3,0x000200f8,0x000008c2,0x000100fd,0x000200f8, + 0x000008c3,0x00040039,0x00000002,0x000008c5,0x000000c4,0x0004003d,0x00000006,0x000008c6, + 0x00000128,0x00050080,0x00000006,0x000008c7,0x000008c6,0x0000016f,0x0004003d,0x0000002d, + 0x000008c9,0x00000126,0x0003003e,0x000008c8,0x000008c9,0x0004003d,0x00000006,0x000008cb, + 0x00000127,0x0003003e,0x000008ca,0x000008cb,0x0003003e,0x000008cc,0x000008c7,0x0004003d, + 0x00000006,0x000008ce,0x0000012a,0x0003003e,0x000008cd,0x000008ce,0x00080039,0x00000002, + 0x000008cf,0x0000011a,0x000008c8,0x000008ca,0x000008cc,0x000008cd,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000133,0x00000000,0x0000012d,0x00030037,0x000000cc,0x0000012e, + 0x00030037,0x00000007,0x0000012f,0x00030037,0x00000007,0x00000130,0x00030037,0x00000007, + 0x00000131,0x00030037,0x00000007,0x00000132,0x000200f8,0x00000134,0x0004003b,0x000000cc, + 0x000008d0,0x00000007,0x0004003b,0x00000007,0x000008d3,0x00000007,0x0004003b,0x00000007, + 0x000008d5,0x00000007,0x0004003b,0x00000007,0x000008de,0x00000007,0x0004003b,0x00000007, + 0x000008e5,0x00000007,0x0004003b,0x00000007,0x000008e7,0x00000007,0x0004003b,0x000000cc, + 0x000008e9,0x00000007,0x0004003b,0x00000007,0x000008eb,0x00000007,0x0004003b,0x00000007, + 0x000008ed,0x00000007,0x0004003b,0x00000007,0x000008ef,0x00000007,0x0004003b,0x00000007, + 0x000008f2,0x00000007,0x0004003b,0x00000007,0x000008f4,0x00000007,0x0004003b,0x000000cc, + 0x000008f6,0x00000007,0x0004003b,0x00000007,0x000008f8,0x00000007,0x0004003b,0x00000007, + 0x000008fa,0x00000007,0x0004003b,0x00000007,0x000008fb,0x00000007,0x0004003b,0x00000007, + 0x000008fd,0x00000007,0x0004003b,0x00000007,0x00000905,0x00000007,0x0004003b,0x00000007, + 0x00000907,0x00000007,0x0004003b,0x00000007,0x00000909,0x00000007,0x0004003b,0x00000007, + 0x0000090f,0x00000007,0x0004003b,0x00000007,0x00000912,0x00000007,0x0004003b,0x00000007, + 0x00000914,0x00000007,0x0004003b,0x00000007,0x00000916,0x00000007,0x0004003b,0x00000007, + 0x00000918,0x00000007,0x0004003b,0x00000007,0x0000091b,0x00000007,0x0004003b,0x00000007, + 0x0000091d,0x00000007,0x0004003b,0x000000cc,0x0000091f,0x00000007,0x0004003b,0x00000007, + 0x00000920,0x00000007,0x0004003b,0x00000007,0x00000922,0x00000007,0x0004003b,0x00000007, + 0x00000923,0x00000007,0x0004003b,0x00000007,0x00000925,0x00000007,0x0004003d,0x00000006, + 0x000008d1,0x0000012f,0x00050089,0x00000006,0x000008d2,0x000008d1,0x000005a7,0x0003003e, + 0x000008d3,0x000008d2,0x00050039,0x0000002d,0x000008d4,0x00000030,0x000008d3,0x0003003e, + 0x000008d0,0x000008d4,0x00050041,0x00000007,0x000008d6,0x000008d0,0x000001c2,0x0004003d, + 0x00000006,0x000008d7,0x000008d6,0x0004003d,0x00000006,0x000008d8,0x0000012f,0x000500c2, + 0x00000006,0x000008da,0x000008d8,0x000008d9,0x00050089,0x00000006,0x000008db,0x000008da, + 0x0000016e,0x00050084,0x00000006,0x000008dc,0x00000691,0x000008db,0x00050080,0x00000006, + 0x000008dd,0x000008d7,0x000008dc,0x0003003e,0x000008d5,0x000008dd,0x00050041,0x00000007, + 0x000008df,0x000008d0,0x00000175,0x0004003d,0x00000006,0x000008e0,0x000008df,0x0004003d, + 0x00000006,0x000008e1,0x0000012f,0x000500c2,0x00000006,0x000008e2,0x000008e1,0x00000199, + 0x00050084,0x00000006,0x000008e3,0x00000691,0x000008e2,0x00050080,0x00000006,0x000008e4, + 0x000008e0,0x000008e3,0x0003003e,0x000008de,0x000008e4,0x0004003d,0x00000006,0x000008e6, + 0x000008d5,0x0003003e,0x000008e5,0x000008e6,0x0004003d,0x00000006,0x000008e8,0x000008de, + 0x0003003e,0x000008e7,0x000008e8,0x0004003d,0x0000002d,0x000008ea,0x0000012e,0x0003003e, + 0x000008e9,0x000008ea,0x0004003d,0x00000006,0x000008ec,0x0000012f,0x0003003e,0x000008eb, + 0x000008ec,0x0004003d,0x00000006,0x000008ee,0x00000130,0x0003003e,0x000008ed,0x000008ee, + 0x0004003d,0x00000006,0x000008f0,0x00000132,0x0003003e,0x000008ef,0x000008f0,0x000a0039, + 0x00000002,0x000008f1,0x000000fb,0x000008e5,0x000008e7,0x000008e9,0x000008eb,0x000008ed, + 0x000008ef,0x0004003d,0x00000006,0x000008f3,0x000008d5,0x0003003e,0x000008f2,0x000008f3, + 0x0004003d,0x00000006,0x000008f5,0x000008de,0x0003003e,0x000008f4,0x000008f5,0x0004003d, + 0x0000002d,0x000008f7,0x0000012e,0x0003003e,0x000008f6,0x000008f7,0x0004003d,0x00000006, + 0x000008f9,0x0000012f,0x0003003e,0x000008f8,0x000008f9,0x0003003e,0x000008fa,0x0000016e, + 0x0004003d,0x00000006,0x000008fc,0x00000130,0x0003003e,0x000008fb,0x000008fc,0x0004003d, + 0x00000006,0x000008fe,0x00000132,0x0003003e,0x000008fd,0x000008fe,0x000b0039,0x00000002, + 0x000008ff,0x0000012b,0x000008f2,0x000008f4,0x000008f6,0x000008f8,0x000008fa,0x000008fb, + 0x000008fd,0x0004003d,0x00000006,0x00000900,0x00000130,0x000500b2,0x0000006e,0x00000901, + 0x00000900,0x000007ef,0x000300f7,0x00000903,0x00000000,0x000400fa,0x00000901,0x00000902, + 0x00000903,0x000200f8,0x00000902,0x000100fd,0x000200f8,0x00000903,0x0004003d,0x00000006, + 0x00000906,0x00000131,0x0003003e,0x00000905,0x00000906,0x0004003d,0x00000006,0x00000908, + 0x0000012f,0x0003003e,0x00000907,0x00000908,0x0004003d,0x00000006,0x0000090a,0x00000132, + 0x0003003e,0x00000909,0x0000090a,0x00070039,0x0000006e,0x0000090b,0x000000ca,0x00000905, + 0x00000907,0x00000909,0x000300f7,0x0000090d,0x00000000,0x000400fa,0x0000090b,0x0000090c, + 0x0000090d,0x000200f8,0x0000090c,0x000100fd,0x000200f8,0x0000090d,0x0004003d,0x00000006, + 0x00000910,0x00000132,0x0003003e,0x0000090f,0x00000910,0x00050039,0x00000002,0x00000911, + 0x0000007f,0x0000090f,0x0004003d,0x00000006,0x00000913,0x000008d5,0x0003003e,0x00000912, + 0x00000913,0x0004003d,0x00000006,0x00000915,0x000008de,0x0003003e,0x00000914,0x00000915, + 0x0004003d,0x00000006,0x00000917,0x00000130,0x0003003e,0x00000916,0x00000917,0x0004003d, + 0x00000006,0x00000919,0x00000132,0x0003003e,0x00000918,0x00000919,0x00080039,0x00000002, + 0x0000091a,0x00000121,0x00000912,0x00000914,0x00000916,0x00000918,0x0004003d,0x00000006, + 0x0000091c,0x000008d5,0x0003003e,0x0000091b,0x0000091c,0x0004003d,0x00000006,0x0000091e, + 0x000008de,0x0003003e,0x0000091d,0x0000091e,0x0003003e,0x0000091f,0x00000555,0x0004003d, + 0x00000006,0x00000921,0x0000012f,0x0003003e,0x00000920,0x00000921,0x0003003e,0x00000922, + 0x00000691,0x0004003d,0x00000006,0x00000924,0x00000130,0x0003003e,0x00000923,0x00000924, + 0x0004003d,0x00000006,0x00000926,0x00000132,0x0003003e,0x00000925,0x00000926,0x000b0039, + 0x00000002,0x00000927,0x0000012b,0x0000091b,0x0000091d,0x0000091f,0x00000920,0x00000922, + 0x00000923,0x00000925,0x000100fd,0x00010038,0x00050036,0x00000002,0x0000013c,0x00000000, + 0x00000135,0x00030037,0x000000cc,0x00000136,0x00030037,0x00000007,0x00000137,0x00030037, + 0x00000007,0x00000138,0x00030037,0x00000007,0x00000139,0x00030037,0x00000007,0x0000013a, + 0x00030037,0x000000cc,0x0000013b,0x000200f8,0x0000013d,0x0004003b,0x000000cc,0x0000092b, + 0x00000007,0x0004003b,0x00000007,0x0000092c,0x00000007,0x0004003b,0x00000007,0x0000092e, + 0x00000007,0x0004003b,0x00000007,0x00000930,0x00000007,0x0004003b,0x00000007,0x00000932, + 0x00000007,0x0004003d,0x0000002d,0x00000928,0x00000136,0x0004003d,0x0000002d,0x00000929, + 0x0000013b,0x00050080,0x0000002d,0x0000092a,0x00000928,0x00000929,0x0003003e,0x0000092b, + 0x0000092a,0x0004003d,0x00000006,0x0000092d,0x00000137,0x0003003e,0x0000092c,0x0000092d, + 0x0004003d,0x00000006,0x0000092f,0x00000138,0x0003003e,0x0000092e,0x0000092f,0x0004003d, + 0x00000006,0x00000931,0x00000139,0x0003003e,0x00000930,0x00000931,0x0004003d,0x00000006, + 0x00000933,0x0000013a,0x0003003e,0x00000932,0x00000933,0x00090039,0x00000002,0x00000934, + 0x00000133,0x0000092b,0x0000092c,0x0000092e,0x00000930,0x00000932,0x000100fd,0x00010038, + 0x00050036,0x00000002,0x00000143,0x00000000,0x00000140,0x00030037,0x0000013f,0x00000141, + 0x00030037,0x00000007,0x00000142,0x000200f8,0x00000144,0x0004003b,0x000000cc,0x0000093d, + 0x00000007,0x0004003b,0x00000007,0x0000093e,0x00000007,0x0004003b,0x00000007,0x0000093f, + 0x00000007,0x0004003b,0x00000007,0x00000940,0x00000007,0x0004003b,0x00000007,0x00000941, + 0x00000007,0x0004003b,0x000000cc,0x00000942,0x00000007,0x0004003d,0x0000013e,0x00000935, + 0x00000141,0x0007004f,0x0000002d,0x00000936,0x00000935,0x00000935,0x00000000,0x00000001, + 0x0004003d,0x00000006,0x00000937,0x00000142,0x00040039,0x00000006,0x00000938,0x00000042, + 0x00040039,0x00000006,0x00000939,0x00000044,0x00050041,0x00000007,0x0000093a,0x00000141, + 0x0000016e,0x0004003d,0x00000006,0x0000093b,0x0000093a,0x00040039,0x0000002d,0x0000093c, + 0x00000047,0x0003003e,0x0000093d,0x00000936,0x0003003e,0x0000093e,0x00000937,0x0003003e, + 0x0000093f,0x00000938,0x0003003e,0x00000940,0x00000939,0x0003003e,0x00000941,0x0000093b, + 0x0003003e,0x00000942,0x0000093c,0x000a0039,0x00000002,0x00000943,0x0000013c,0x0000093d, + 0x0000093e,0x0000093f,0x00000940,0x00000941,0x00000942,0x000100fd,0x00010038 +}; diff --git a/gpu/vk/upscaler_rows.h b/gpu/vk/upscaler_rows.h index 225d6c44a..c7220dac0 100644 --- a/gpu/vk/upscaler_rows.h +++ b/gpu/vk/upscaler_rows.h @@ -1,11 +1,20 @@ /* The Insert menu's scaling rows (vk_menu.cpp), as plain functions: what the Render resolution row steps through for each - Upscaler, and the names it shows for DLSS's modes. No Vulkan, no menu: tests/test_upscaler_rows.cpp checks them. */ + Upscaler, and the names it shows for DLSS's (and FSR 3.1's) modes. No Vulkan, no menu: tests/test_upscaler_rows.cpp checks them. */ #pragma once namespace mkwvk::upscaler_rows { -/// The Upscaler row (opts.dlss, RX_VK_DLSS): the game's own network, NVIDIA DLSS, NVIDIA DLAA -enum { GAME = 0, DLSS = 1, DLAA = 2 }; +/// The Upscaler row (opts.dlss, RX_VK_DLSS): the game's own network, NVIDIA DLSS, NVIDIA DLAA, AMD FSR 3.1 (built from AMD's +/// shader sources: gpu/vk/vk_fsr3.cpp). The saved values keep their meaning: FSR 3.1 came after DLAA, so a saved 1 or 2 is +/// still DLSS or DLAA +enum { GAME = 0, DLSS = 1, DLAA = 2, FSR3 = 3, kUpscalers = 4 }; +/// One bit per upscaler that can run here (1 << GAME always): what the row steps through +inline unsigned bit(int upscaler) { return 1u << upscaler; } +/// The DLSS and DLAA bits, for a caller that knows only whether DLSS runs +inline unsigned dlss_bits(bool dlss_ok) { return dlss_ok ? bit(DLSS) | bit(DLAA) : 0u; } +/// FSR 3.1 scales from a smaller 3D at the shares DLSS's modes use: Quality 1.5x (67%), Balanced 1.7x (58%), Performance 2x +/// (50%) and Ultra Performance 3x (33%) per axis, AMD's own ratios too +inline bool scales_by_mode(int upscaler) { return upscaler == DLSS || upscaler == FSR3; } /// opts.resolution: 0 Auto (the game's dynamic resolution), else a share of the output in percent. 1 to 4 are the values from /// before (100, 75, 67, 50: saved options keep their meaning); 5 and 6 came with DLSS's Balanced and Ultra Performance. Each @@ -20,7 +29,7 @@ inline int percent(int v) { return v > 0 && v < kValues ? kPercent[v] : 0; } constexpr int kGameSteps[] = {0, 1, 2, 3, 4}; constexpr int kDlssSteps[] = {0, 3, 5, 4, 6}; inline const int* steps(int upscaler, int& n) { - if (upscaler == DLSS) return n = sizeof kDlssSteps / sizeof kDlssSteps[0], kDlssSteps; + if (scales_by_mode(upscaler)) return n = sizeof kDlssSteps / sizeof kDlssSteps[0], kDlssSteps; return n = sizeof kGameSteps / sizeof kGameSteps[0], kGameSteps; } @@ -66,13 +75,19 @@ inline int snap(int upscaler, int v) { return best; } -/// The Upscaler row's next value from v (dir +1 / -1), wrapping over the choices there are: DLSS and DLAA only when -/// dlss_ok (a build with NVIDIA's SDK, on a GPU DLSS runs on). Without them it stays on the game's own -inline int step_upscaler(int v, int dir, bool dlss_ok) { - if (!dlss_ok) return GAME; - const int n = 3; - return ((v < 0 || v >= n ? GAME : v) + (dir > 0 ? 1 : n - 1)) % n; +/// The Upscaler row's next value from v (dir +1 / -1), wrapping over the choices there are (available: bit() of each that +/// runs here). A value that cannot run here steps as the game's own does +inline int step_upscaler(int v, int dir, unsigned available) { + available |= bit(GAME); + int at = v < 0 || v >= kUpscalers || !(available & bit(v)) ? GAME : v; + for (int i = 0; i < kUpscalers; i++) { + at = (at + (dir > 0 ? 1 : kUpscalers - 1)) % kUpscalers; + if (available & bit(at)) return at; + } + return GAME; } +/// The same, where the choices are DLSS and DLAA only when dlss_ok (a build with NVIDIA's SDK, on a GPU DLSS runs on) +inline int step_upscaler(int v, int dir, bool dlss_ok) { return step_upscaler(v, dir, bit(GAME) | dlss_bits(dlss_ok)); } /// The DLSS model row (opts.dlss_model, saved as dlss_model): which of NVIDIA's networks DLSS and DLAA draw with, by its /// preset (NVSDK_NGX_DLSS_Hint_Render_Preset_*). 0 the transformer, preset K (the default here, the one tested); 1 the second @@ -103,15 +118,19 @@ inline char preset_letter(unsigned preset) { return preset ? (char)('A' + preset /// The Upscaler row is there only in a build with DLSS (built: dlss_built()): elsewhere the game's own is all there is, and /// the Render resolution row is the game's own's inline bool upscaler_shown(bool built) { return built; } +/// ...and in any build where FSR 3.1 runs (fsr: vk_fsr3.cpp answered that it runs on this GPU) +inline bool upscaler_shown(bool built, bool fsr) { return built || fsr; } /// Rows with nothing else to choose here (shown without arrows; Left and Right leave the saved value alone): the Upscaler /// where DLSS cannot run (dlss_ok: dlss_why() == DLSS_OK), the Render resolution with DLAA (the 3D at full size), the DLSS /// model while DLSS and DLAA are not drawing inline bool upscaler_fixed(bool dlss_ok) { return !dlss_ok; } +/// The same, from the mask of what can run: fixed when only the game's own can +inline bool upscaler_fixed(unsigned available) { return (available & ~bit(GAME)) == 0; } inline bool resolution_fixed(int upscaler) { return upscaler == DLAA; } /// The DLSS model row: shown where the Upscaler is (a build with DLSS), with nothing to choose while the game's own upscales inline bool model_shown(bool built) { return built; } /// (env_set: RX_VK_DLSS_PRESET names a preset, which wins over the row for this run) -inline bool model_fixed(int upscaler, bool env_set) { return upscaler == GAME || env_set; } +inline bool model_fixed(int upscaler, bool env_set) { return (upscaler != DLSS && upscaler != DLAA) || env_set; } /// The Window scaling filter does something only when the window's size is not the game's picture's (the Output resolution); /// a size not known yet (0) counts as different inline bool filter_needed(unsigned picture_w, unsigned picture_h, unsigned window_w, unsigned window_h) { diff --git a/gpu/vk/vk_dlss.cpp b/gpu/vk/vk_dlss.cpp index 3f879b394..1f94e332b 100644 --- a/gpu/vk/vk_dlss.cpp +++ b/gpu/vk/vk_dlss.cpp @@ -99,7 +99,10 @@ DlssWhy dlss_why() { int dlss_mode() { if (dlss_why() != DLSS_OK) return 0; static const int env = env_switch("RX_VK_DLSS"); - return std::clamp(env >= 0 ? env : opts.dlss, 0, 2); + // (the Upscaler row has values past DLAA, FSR 3.1's (upscaler_rows.h): those are not DLSS, so the game's own as far as this + // is concerned, never clamped onto DLAA) + const int v = env >= 0 ? env : opts.dlss; + return v == 1 || v == 2 ? v : 0; } bool dlss_wanted() { return dlss_mode() != 0; } bool dlss_full_scale() { return dlss_mode() == 2; } diff --git a/gpu/vk/vk_draw.cpp b/gpu/vk/vk_draw.cpp index 443485b47..3ba38219d 100644 --- a/gpu/vk/vk_draw.cpp +++ b/gpu/vk/vk_draw.cpp @@ -35,6 +35,8 @@ #include "vk_draw.h" #include "dlss_actor.h" #include "vk_dlss.h" +#include "vk_fsr3.h" // (AMD FSR 3.1 in the gameplay upscale's place) +#include "vk_fsr3_inputs.h" #include "vk_dump.h" #include "vk_gprof.h" #include "vk_jobs.h" @@ -5077,9 +5079,12 @@ void draw(VkCommandBuffer cmd, NvnState& s, const DrawArgs& d) { } const Targets at = bare_targets(s, targets(s)); if (!at.width || !at.height) SKIP_HERE(); - // (hookshot) the scene's camera and depth for NVIDIA DLSS (vk_dlss.cpp): the vertex stage's uniform buffer 3 (NVN's binding 0) - if (at.n && at.color[0] && at.depth) + // (hookshot) the scene's camera and depth for NVIDIA DLSS (vk_dlss.cpp) and AMD FSR 3.1 (vk_fsr3_inputs.cpp): the vertex + // stage's uniform buffer 3 (NVN's binding 0) + if (at.n && at.color[0] && at.depth) { dlss_note_scene_draw(at.color[0], at.width, at.height, at.depth, s.ubo[0][0].addr, s.ubo[0][0].size); + fsr3_inputs::note_scene_draw(at.color[0], at.width, at.height, at.depth, s.ubo[0][0].addr, s.ubo[0][0].size); + } uint8_t types[8]; for (int i = 0; i < 8; i++) { const VkFormat f = i < at.n ? at.color_format[i] : VK_FORMAT_UNDEFINED; @@ -6057,6 +6062,28 @@ static bool typed_upscale(VkCommandBuffer cmd, VkImageView input_view, VkImageVi if (temporal) probe_image(cmd, out, level, 0, key, 't'); return true; } +/// (hookshot) AMD FSR 3.1 in place of the gameplay upscale network (vk_fsr3.cpp), and its frame interpolation's inputs from it +/// (vk_fsr3_inputs.cpp): the same dispatches as dlss_stand_in below, found the same way. true: FSR 3.1 wrote the output +bool fsr3_stand_in(VkCommandBuffer cmd, const NvnState& s, const Program& p) { + if (p.stages.empty() || !fsr3_inputs::wanted()) return false; + const Stage& st = p.stages[0]; + if (!gameplay_network(p.key) && !(st.info.uses_cooperative_matrix && st.info.texture_descriptors.size() == 1 && + st.info.image_descriptors.size() == 1)) + return false; + if (st.info.texture_descriptors.empty() || st.info.image_descriptors.empty()) return false; + size_t ntex = 0; // (build_descriptors' image infos: the textures', then the images') + for (const auto& d : st.info.texture_descriptors) ntex += d.count; + if (dw().imgs.size() <= ntex || !dw().imgs[0].imageView || !dw().imgs[ntex].imageView) return false; + Texture* in = nullptr; + const uint32_t in_handle = handle_of(s, st, st.info.texture_descriptors[0], 0); + if (in_handle) texture_view_of(in_handle, VK_IMAGE_VIEW_TYPE_2D, ViewUse::Sample, VK_FORMAT_UNDEFINED, &in); + const auto& od = st.info.image_descriptors[0]; + Texture* out = nullptr; + uint32_t level = 0; + const uint32_t out_handle = handle_of(s, st, od, 0); + if (out_handle) texture_view_of(out_handle, VK_IMAGE_VIEW_TYPE_2D, ViewUse::Storage, image_format(od.format), &out, &level); + return fsr3_upscale(cmd, p.key, gameplay_network(p.key), in, dw().imgs[0].imageView, out, dw().imgs[ntex].imageView, level); +} /// (hookshot) NVIDIA DLSS in place of the gameplay upscale network (vk_dlss.cpp), when it is on and its inputs are as expected: /// the network's input as it samples it, its output's storage view bool dlss_stand_in(VkCommandBuffer cmd, const NvnState& s, const Program& p) { @@ -6721,6 +6748,7 @@ void dispatch(VkCommandBuffer cmd, NvnState& s, uint32_t x, uint32_t y, uint32_t logf("%s", line); } } + if (fsr3_stand_in(cmd, s, p)) return void(st_dispatches++); if (dlss_stand_in(cmd, s, p)) return void(st_dispatches++); if (taau_stand_in(cmd, s, p)) return void(st_dispatches++); if (!p.compute_pipeline) SKIP_HERE(); diff --git a/gpu/vk/vk_framegen.cpp b/gpu/vk/vk_framegen.cpp index 83211f117..dfb90b1aa 100644 --- a/gpu/vk/vk_framegen.cpp +++ b/gpu/vk/vk_framegen.cpp @@ -19,6 +19,8 @@ #include #include "vk_framegen.h" +#include "vk_fsr3_inputs.h" // (AMD FSR 3.1 frame interpolation's depth and motion) +#include "vk_fsr3fi.h" #include "vk_menu.h" #include "vk_texture.h" @@ -485,6 +487,45 @@ VkImage framegen_made_image(uint32_t* w, uint32_t* h) { return fg.recorded->frame[0].image; } +/// (hookshot) The made frame of a 2x set by AMD FSR 3.1's frame interpolation (vk_fsr3fi.h), from this frame's colour and +/// the scene's depth and motion (vk_fsr3_inputs.h): 1 when it made it into set.frame[0], 0 when it did not (no inputs this +/// present, a reset, anything not made), which leaves the set to the interpolation below. sequence: framegen_record's count +/// of its presents (one it did not hand over, a gap among them, makes the next one a reset: vk_fsr3fi.h Inputs::sequence) +int fsr3fi_frame(VkCommandBuffer cmd, OutSet& set, int cur, uint32_t uw, uint32_t uh, uint64_t sequence) { + // (every 600 presents asked: how many FSR made, and how many it left to the interpolation below and why) + static uint64_t asked = 0, made = 0, no_inputs = 0; + if (++asked % 600 == 0) + logf("vk: fsr3fi: %llu of the last 600 made frames by FSR 3.1, %llu without its inputs (the renderer's own made them)", + (unsigned long long)made, (unsigned long long)no_inputs), + made = no_inputs = 0; + fsr3_inputs::Frame f; + if (!fsr3_inputs::take(f)) return no_inputs++, 0; + fsr3fi::Inputs in; + in.color = fg.frames[cur].view; + in.color_image = fg.frames[cur].image; + in.color_format = VK_FORMAT_R8G8B8A8_UNORM; // (ensure_size, for fg.frames) + in.width = uw, in.height = uh; + in.depth = f.depth, in.motion = f.motion; + in.render_width = f.width, in.render_height = f.height; + in.jitter[0] = f.jitter[0], in.jitter[1] = f.jitter[1]; + in.camera = f.camera; + in.frame_time_ms = f.frame_ms; + in.reset = f.reset; + in.sequence = sequence; + if (!fsr3fi::generate(cmd, in) || !fsr3fi::made_image()) return 0; + const VkImageCopy c{{VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, + {uw, uh, 1}}; + vkCmdCopyImage(cmd, fsr3fi::made_image(), VK_IMAGE_LAYOUT_GENERAL, set.frame[0].image, VK_IMAGE_LAYOUT_GENERAL, 1, &c); + made++; + static bool told = false; + if (!told) { + told = true; + logf("vk: fsr3fi: AMD FSR 3.1 makes the frame between each two of the game's (%ux%u, its depth and motion %ux%u)", uw, + uh, f.width, f.height); + } + return 1; +} + bool framegen_record(VkCommandBuffer cmd, VkImageView src, uint32_t sw, uint32_t sh, const int crop[4]) { int x0 = 0, y0 = 0, w = (int)sw, h = (int)sh; if (crop && crop[2] > 0 && crop[3] > 0) x0 = crop[0], y0 = crop[1], w = crop[2], h = crop[3]; @@ -509,6 +550,8 @@ bool framegen_record(VkCommandBuffer cmd, VkImageView src, uint32_t sw, uint32_t } const int cur = fg.cur, prev = cur ^ 1, m = multiplier(); const bool blend = fg.have_prev && !gap; + static uint64_t sequence = 0; + sequence++; const uint32_t uw = (uint32_t)w, uh = (uint32_t)h; const uint32_t qw = (uw + 3) / 4, qh = (uh + 3) / 4, cw = (qw + 3) / 4, ch = (qh + 3) / 4; full_barrier(cmd); @@ -558,7 +601,10 @@ bool framegen_record(VkCommandBuffer cmd, VkImageView src, uint32_t sw, uint32_t fg.recorded_at = now; return true; } - if (blend && m > 1) { + // (hookshot) At 2x, AMD FSR 3.1's frame interpolation where it runs; it makes the midpoint only, so 3x and more (and Auto, + // above) stay with the interpolation below, as does any present it does not take + if (blend && m == 2 && fsr3fi::frames_wanted()) set->made = fsr3fi_frame(cmd, *set, cur, uw, uh, sequence); + if (set->made == 0 && blend && m > 1) { pass(cmd, fg.flow, {{fg.lumas[prev].view, fg.nearest}, {fg.lumas[cur].view, fg.nearest}, {fg.flows[0].view, VK_NULL_HANDLE}}, cw, ch); pass(cmd, fg.median, {{fg.flows[0].view, fg.nearest}, {fg.flows[1].view, VK_NULL_HANDLE}}, cw, ch); diff --git a/gpu/vk/vk_fsr3.cpp b/gpu/vk/vk_fsr3.cpp new file mode 100644 index 000000000..e9a5a0900 --- /dev/null +++ b/gpu/vk/vk_fsr3.cpp @@ -0,0 +1,818 @@ +// (hookshot) AMD FSR 3.1's upscaler as our own dispatches over AMD's vendored passes, and its place in the gameplay upscale's +// dispatch (fsr3_upscale, at the end); see vk_fsr3.h. +// +// The resource table and the per-pass binding lists are the SDK's, not ours: ffx_fsr3upscaler.cpp decides the formats and +// sizes, and each pass file numbers its own bindings (FSR3UPSCALER_BIND_*). Getting one wrong is a validation error at best +// and a wrong picture at worst, so they are written out here in the SDK's order rather than derived. +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "vk_fsr3.h" +#include "vk_fsr3_inputs.h" +#include "vk_draw.h" // (descriptors_disturbed) +#include "vk_gprof.h" // (RX_VK_PASS_TIMING: a span per pass, so the report names them) +#include "vk_menu.h" +#include "vk_texture.h" +#include "upscaler_rows.h" + +#include "shaders/dlss_out_comp_spv.h" // (the network's output from a picture: its encoding squared back, as for DLSS) +#include "shaders/fsr3_accumulate_comp_spv.h" +#include "shaders/fsr3_luma_instability_comp_spv.h" +#include "shaders/fsr3_luma_pyramid_comp_spv.h" +#include "shaders/fsr3_luma_pyramid_nowave_comp_spv.h" +#include "shaders/fsr3_prepare_inputs_comp_spv.h" +#include "shaders/fsr3_prepare_reactivity_comp_spv.h" +#include "shaders/fsr3_shading_change_comp_spv.h" +#include "shaders/fsr3_shading_change_pyramid_comp_spv.h" +#include "shaders/fsr3_shading_change_pyramid_nowave_comp_spv.h" +#include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) + +namespace mkwvk::fsr3 { +namespace { + +/// A descriptor's kind, in the binding order each pass file declares. Every pass also takes the two +/// samplers at bindings 1000 (point clamp) and 1001 (linear clamp). +enum Kind : uint8_t { T, I, U }; // sampled texture, storage image, uniform buffer + +struct PassInfo { + const char* name; + const uint32_t* spv; + size_t spv_bytes; + const Kind* bindings; + size_t binding_count; +}; + +constexpr Kind PREPARE_INPUTS[]{T, T, T, I, I, I, I, I, U}; +constexpr Kind LUMA_PYRAMID[]{T, T, I, I, I, I, I, I, I, I, I, U, U}; +constexpr Kind SHADING_CHANGE_PYRAMID[]{T, T, T, T, I, I, I, I, I, I, I, U, U}; +constexpr Kind SHADING_CHANGE[]{T, I, U}; +constexpr Kind PREPARE_REACTIVITY[]{T, T, T, T, T, T, T, T, T, I, I, I, U}; +constexpr Kind LUMA_INSTABILITY[]{T, T, T, T, T, T, T, I, I, U}; +constexpr Kind ACCUMULATE[]{T, T, T, T, T, T, T, T, T, I, I, I, U}; + +#define PASS(n, spv, b) PassInfo{n, spv, sizeof spv, b, sizeof b / sizeof b[0]} + +/// The passes, in the order PassId numbers them. The two _nowave pyramids are alternatives to the two before them, for +/// devices without the subgroup operations the single-pass downsampler wants. FSR's own sharpening (accumulate_sharpen and +/// RCAS, compiled with the rest) is not used: the renderer's Sharpness row sharpens the finished picture for every upscaler +const PassInfo PASSES[]{ + PASS("prepare_inputs", FSR3_PREPARE_INPUTS_COMP_SPV, PREPARE_INPUTS), + PASS("luma_pyramid", FSR3_LUMA_PYRAMID_COMP_SPV, LUMA_PYRAMID), + PASS("luma_pyramid_nowave", FSR3_LUMA_PYRAMID_NOWAVE_COMP_SPV, LUMA_PYRAMID), + PASS("shading_change_pyramid", FSR3_SHADING_CHANGE_PYRAMID_COMP_SPV, SHADING_CHANGE_PYRAMID), + PASS("shading_change_pyramid_nowave", FSR3_SHADING_CHANGE_PYRAMID_NOWAVE_COMP_SPV, + SHADING_CHANGE_PYRAMID), + PASS("shading_change", FSR3_SHADING_CHANGE_COMP_SPV, SHADING_CHANGE), + PASS("prepare_reactivity", FSR3_PREPARE_REACTIVITY_COMP_SPV, PREPARE_REACTIVITY), + PASS("luma_instability", FSR3_LUMA_INSTABILITY_COMP_SPV, LUMA_INSTABILITY), + PASS("accumulate", FSR3_ACCUMULATE_COMP_SPV, ACCUMULATE), +}; +#undef PASS + +enum PassId : size_t { + P_PREPARE_INPUTS, + P_LUMA_PYRAMID, + P_LUMA_PYRAMID_NOWAVE, + P_SHADING_CHANGE_PYRAMID, + P_SHADING_CHANGE_PYRAMID_NOWAVE, + P_SHADING_CHANGE, + P_PREPARE_REACTIVITY, + P_LUMA_INSTABILITY, + P_ACCUMULATE, + kPassCount +}; +static_assert(sizeof PASSES / sizeof PASSES[0] == kPassCount, "PassId must name every pass"); +constexpr uint32_t kSpdStoredMips = 6; + +struct Pipeline { + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipeline = VK_NULL_HANDLE; +}; + +struct Image { + VkImage image = VK_NULL_HANDLE; + VmaAllocation memory = nullptr; + VkImageView view = VK_NULL_HANDLE; ///< every level + std::vector levels; ///< one per level, for the mipped ones + uint32_t width = 0, height = 0, level_count = 1; + VkFormat format = VK_FORMAT_UNDEFINED; +}; + +/// cbFSR3Upscaler, exactly as ffx_fsr3upscaler.cpp lays it out. The size is asserted because every +/// pass reads it by offset: a field out of place is a wrong picture, not a compile error. +struct Constants { + int32_t render_size[2]; + int32_t previous_render_size[2]; + int32_t upscale_size[2]; + int32_t previous_upscale_size[2]; + int32_t max_render_size[2]; + int32_t max_upscale_size[2]; + float device_to_view_depth[4]; + float jitter[2]; + float previous_jitter[2]; + float motion_vector_scale[2]; + float downscale_factor[2]; + float motion_vector_jitter_cancellation[2]; + float tan_half_fov; + float jitter_phase_count; + float delta_time; + float delta_pre_exposure; + float view_space_to_meters; + float frame_index; + float velocity_factor; + float reactiveness_scale; + float shading_change_scale; + float accumulation_added_per_frame; + float min_disocclusion_accumulation; +}; +static_assert(sizeof(Constants) == 148, "cbFSR3Upscaler must match the SDK's layout"); + +struct SpdConstants { + uint32_t mips; + uint32_t num_work_groups; + uint32_t work_group_offset[2]; + uint32_t render_size[2]; +}; + +/// One descriptor of a dispatch: an image view, or a range of the uniform buffer. +struct Resource { + VkImageView view = VK_NULL_HANDLE; + VkBuffer buffer = VK_NULL_HANDLE; + VkDeviceSize offset = 0; + VkDeviceSize size = 0; +}; + +/// A memory dependency over the whole queue, in the synchronization2 form this renderer loads. +void memory_barrier(VkCommandBuffer cmd, VkPipelineStageFlags2 src_stage, VkAccessFlags2 src, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst) { + VkMemoryBarrier2 b{VK_STRUCTURE_TYPE_MEMORY_BARRIER_2}; + b.srcStageMask = src_stage, b.srcAccessMask = src; + b.dstStageMask = dst_stage, b.dstAccessMask = dst; + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.memoryBarrierCount = 1, di.pMemoryBarriers = &b; + vkCmdPipelineBarrier2(cmd, &di); +} + +constexpr VkImageSubresourceRange ALL_LEVELS{VK_IMAGE_ASPECT_COLOR_BIT, 0, VK_REMAINING_MIP_LEVELS, 0, 1}; + +struct State { + bool tried = false; + bool ok = false; + bool wave = true; ///< the pyramids with subgroup operations (else their _nowave variants) + Pipeline passes[kPassCount]; + VkSampler point = VK_NULL_HANDLE; + VkSampler linear = VK_NULL_HANDLE; + // The SDK's internal images. The pairs ping-pong on frame parity, as its resource tables do. + Image accumulation[2], luma[2], luma_history[2], internal_upscaled[2]; + Image farthest_depth, shading_change, new_locks, spd_mips, farthest_depth_mip1; + Image dilated_motion_vectors, dilated_depth, previous_nearest_depth, dilated_reactive_masks; + Image frame_info, spd_atomic, lanczos_lut, default_reactive, output; + uint32_t render_width = 0, render_height = 0, upscale_width = 0, upscale_height = 0; + // The uniform buffer the constant blocks are written into, one set of slots per frame in flight so a frame being read + // is not overwritten. + VkBuffer uniforms = VK_NULL_HANDLE; + VmaAllocation uniforms_memory = nullptr; + void* uniforms_mapped = nullptr; + VkDeviceSize slot_fsr = 0, slot_spd = 0, frame_stride = 0; + uint32_t uniform_frame = 0; + // History, as fsr3upscalerDispatch carries it. + int32_t previous_render_size[2]{}; + int32_t previous_upscale_size[2]{}; + float previous_jitter[2]{}; + float frame_index = 0.0f; + uint32_t parity = 0; + bool first_evaluation = true; ///< the images are new: their first layout, cleared + bool lut_uploaded = false; + // Images of an earlier size, freed once the frames that may still read them are done (texture_frame_no) + std::vector> dead; +}; + +constexpr uint32_t kUniformFrames = 4; // (more than the swapchain's images in flight) + +State g; + +void destroy_now(Image& t) { + for (VkImageView v : t.levels) vkDestroyImageView(dev.device, v, nullptr); + if (t.view) vkDestroyImageView(dev.device, t.view, nullptr); + if (t.image) mkwvk::destroy_image(t.image, t.memory); + t = Image{}; +} + +/// An image let go: destroyed a few presents on, as work recorded with it may still be in flight +void drop_image(Image& t) { + if (t.image) g.dead.push_back({texture_frame_no(), std::move(t)}); + t = Image{}; +} + +void free_dead() { + const uint64_t now = texture_frame_no(); + for (size_t i = 0; i < g.dead.size();) { + if (now - g.dead[i].first > 4) { + destroy_now(g.dead[i].second); + g.dead[i] = std::move(g.dead.back()); + g.dead.pop_back(); + } else { + i++; + } + } +} + +/// One of the SDK's internal images: storage and sampled, GENERAL throughout, with a view per level when it has more than +/// one (the pyramids bind their levels separately). +bool make_image(Image& t, VkFormat format, uint32_t width, uint32_t height, uint32_t levels = 1) { + drop_image(t); + t.format = format, t.width = std::max(1u, width), t.height = std::max(1u, height); + t.level_count = std::max(1u, levels); + VkImageCreateInfo ci{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + ci.imageType = VK_IMAGE_TYPE_2D; + ci.format = format; + ci.extent = {t.width, t.height, 1}; + ci.mipLevels = t.level_count; + ci.arrayLayers = 1; + ci.samples = VK_SAMPLE_COUNT_1_BIT; + ci.tiling = VK_IMAGE_TILING_OPTIMAL; + ci.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; + ci.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + if (!create_image(ci, t.image, t.memory, false)) { + logf("vk: fsr3: a %ux%u image (format %d) was not made", t.width, t.height, (int)format); + t.image = VK_NULL_HANDLE; + return false; + } + VkImageViewCreateInfo vi{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vi.image = t.image; + vi.viewType = VK_IMAGE_VIEW_TYPE_2D; + vi.format = format; + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, t.level_count, 0, 1}; + if (vkCreateImageView(dev.device, &vi, nullptr, &t.view) != VK_SUCCESS) return t.view = VK_NULL_HANDLE, false; + if (t.level_count > 1) { + for (uint32_t level = 0; level < t.level_count; level++) { + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, level, 1, 0, 1}; + VkImageView v = VK_NULL_HANDLE; + if (vkCreateImageView(dev.device, &vi, nullptr, &v) != VK_SUCCESS) return false; + t.levels.push_back(v); + } + } + return true; +} + +bool make_pipeline(Pipeline& p, const PassInfo& info) { + std::vector bindings; + bindings.reserve(info.binding_count + 2); + for (size_t i = 0; i < info.binding_count; i++) { + const VkDescriptorType type = info.bindings[i] == T ? VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE + : info.bindings[i] == I ? VK_DESCRIPTOR_TYPE_STORAGE_IMAGE + : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + bindings.push_back({(uint32_t)i, type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + } + // (the two samplers every pass declares, at the bindings the SDK's GLSL fixes them to) + bindings.push_back({1000, VK_DESCRIPTOR_TYPE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + bindings.push_back({1001, VK_DESCRIPTOR_TYPE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = (uint32_t)bindings.size(); + li.pBindings = bindings.data(); + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &p.set) != VK_SUCCESS) return false; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &p.set; + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &p.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = info.spv_bytes; + mi.pCode = info.spv; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, VK_SHADER_STAGE_COMPUTE_BIT, m, "main", + nullptr}; + ci.layout = p.layout; + const VkResult made = vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &p.pipeline); + vkDestroyShaderModule(dev.device, m, nullptr); + if (made != VK_SUCCESS) { + logf("vk: fsr3: the %s pass pipeline was not made (%d)", info.name, (int)made); + p.pipeline = VK_NULL_HANDLE; + return false; + } + return true; +} + +bool make_samplers() { + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + si.minLod = 0.0f, si.maxLod = VK_LOD_CLAMP_NONE; + si.magFilter = si.minFilter = VK_FILTER_NEAREST; + si.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; + if (vkCreateSampler(dev.device, &si, nullptr, &g.point) != VK_SUCCESS) return false; + si.magFilter = si.minFilter = VK_FILTER_LINEAR; + si.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + return vkCreateSampler(dev.device, &si, nullptr, &g.linear) == VK_SUCCESS; +} + +/// Every storage format the internal images need. A device missing one cannot run the passes, and finding that out here is +/// better than a failed image allocation in the middle of a frame. +bool formats_supported() { + static const VkFormat needed[]{ + VK_FORMAT_R8_UNORM, VK_FORMAT_R16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R16G16B16A16_SFLOAT, + VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32_UINT, VK_FORMAT_R32G32B32A32_SFLOAT, + VK_FORMAT_R16_SNORM, + }; + for (VkFormat f : needed) { + VkFormatProperties props{}; + vkGetPhysicalDeviceFormatProperties(dev.physical, f, &props); + if (!(props.optimalTilingFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) || + !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { + logf("vk: fsr3: not on this GPU: format %d cannot be a storage and sampled image here", (int)f); + return false; + } + } + return true; +} + +/// The uniform buffer the two constant blocks (and the Lanczos table, once) are written into: host visible and mapped, with +/// a set of slots per frame in flight so writing one frame cannot disturb a frame still being read. +bool make_uniforms() { + const VkDeviceSize align = std::max(dev.props.limits.minUniformBufferOffsetAlignment, 16); + const auto round_up = [align](VkDeviceSize n) { return (n + align - 1) / align * align; }; + g.slot_fsr = round_up(sizeof(Constants)); + g.slot_spd = round_up(sizeof(SpdConstants)); + g.frame_stride = g.slot_fsr + g.slot_spd + round_up(128 * sizeof(int16_t)); + return create_buffer(g.frame_stride * kUniformFrames, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT, + true, g.uniforms, g.uniforms_memory, &g.uniforms_mapped); +} + +/// Records one pass: its descriptors pushed in the order the pass file numbers them, then the two samplers it declares at +/// 1000 and 1001, then the dispatch, and a barrier after it (every pass reads what the one before it wrote). +void record_pass(VkCommandBuffer cmd, size_t pass, const Resource* res, size_t count, uint32_t groups_x, uint32_t groups_y) { + const PassInfo& info = PASSES[pass]; + const Pipeline& p = g.passes[pass]; + std::vector images(count); + std::vector buffers(count); + std::vector writes; + writes.reserve(count + 2); + for (size_t i = 0; i < count; i++) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = (uint32_t)i; + w.descriptorCount = 1; + if (info.bindings[i] == U) { + buffers[i] = {res[i].buffer, res[i].offset, res[i].size}; + w.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + w.pBufferInfo = &buffers[i]; + } else { + images[i] = {VK_NULL_HANDLE, res[i].view, VK_IMAGE_LAYOUT_GENERAL}; + w.descriptorType = info.bindings[i] == T ? VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + w.pImageInfo = &images[i]; + } + writes.push_back(w); + } + const VkDescriptorImageInfo point{g.point, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_UNDEFINED}; + const VkDescriptorImageInfo linear{g.linear, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_UNDEFINED}; + for (const auto& [binding, info_ptr] : {std::pair{1000, &point}, + std::pair{1001, &linear}}) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = binding; + w.descriptorCount = 1; + w.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER; + w.pImageInfo = info_ptr; + writes.push_back(w); + } + const bool timed = gprof_begin(cmd); // (RX_VK_PASS_TIMING=1: GPU ms by pass name) + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.pipeline); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.layout, 0, (uint32_t)writes.size(), writes.data()); + vkCmdDispatch(cmd, std::max(1u, groups_x), std::max(1u, groups_y), 1); + if (timed) gprof_end(cmd, std::string("fsr3 ") + info.name); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); +} + +std::vector all_images() { + std::vector all{&g.farthest_depth, &g.shading_change, &g.new_locks, &g.spd_mips, &g.farthest_depth_mip1, + &g.dilated_motion_vectors, &g.dilated_depth, &g.previous_nearest_depth, + &g.dilated_reactive_masks, &g.frame_info, &g.spd_atomic, &g.lanczos_lut, &g.default_reactive, + &g.output}; + for (size_t i = 0; i < 2; i++) { + all.push_back(&g.accumulation[i]); + all.push_back(&g.luma[i]); + all.push_back(&g.luma_history[i]); + all.push_back(&g.internal_upscaled[i]); + } + return all; +} + +/// The pipelines and the internal images for an evaluation at these sizes, made again when the sizes change +bool prepare(uint32_t render_width, uint32_t render_height, uint32_t upscale_width, uint32_t upscale_height) { + if (!supported()) return false; + if (!g.tried) { + g.tried = true; + g.ok = make_samplers() && make_uniforms(); + for (size_t i = 0; i < kPassCount && g.ok; i++) { + const bool needed = g.wave ? (i != P_LUMA_PYRAMID_NOWAVE && i != P_SHADING_CHANGE_PYRAMID_NOWAVE) + : (i != P_LUMA_PYRAMID && i != P_SHADING_CHANGE_PYRAMID); + if (needed) g.ok = make_pipeline(g.passes[i], PASSES[i]); + } + if (g.ok) logf("vk: fsr3: its passes are ready (%s subgroup operations)", g.wave ? "with" : "without"); + } + if (!g.ok) return false; + if (g.output.image && g.render_width == render_width && g.render_height == render_height && + g.upscale_width == upscale_width && g.upscale_height == upscale_height) + return true; + + const uint32_t rw = std::max(1u, render_width), rh = std::max(1u, render_height); + const uint32_t uw = std::max(1u, upscale_width), uh = std::max(1u, upscale_height); + bool made = true; + for (size_t i = 0; i < 2 && made; i++) { + made = made && make_image(g.accumulation[i], VK_FORMAT_R8_UNORM, rw, rh); + made = made && make_image(g.luma[i], VK_FORMAT_R16_SFLOAT, rw, rh); + // (the pass files declare the luma history as rgba8; the SDK allocates RGBA16F, which a storage format qualifier + // does not match, so this allocates what the shaders store) + made = made && make_image(g.luma_history[i], VK_FORMAT_R8G8B8A8_UNORM, rw, rh); + made = made && make_image(g.internal_upscaled[i], VK_FORMAT_R16G16B16A16_SFLOAT, uw, uh); + } + const uint32_t half_w = std::max(1u, rw / 2), half_h = std::max(1u, rh / 2); + const uint32_t spd_levels = (uint32_t)std::floor(std::log2((float)std::max(half_w, half_h))) + 1; + made = made && make_image(g.farthest_depth, VK_FORMAT_R16_SFLOAT, rw, rh); + made = made && make_image(g.shading_change, VK_FORMAT_R8_UNORM, half_w, half_h); + made = made && make_image(g.new_locks, VK_FORMAT_R8_UNORM, uw, uh); + made = made && make_image(g.spd_mips, VK_FORMAT_R16G16_SFLOAT, half_w, half_h, std::max(spd_levels, kSpdStoredMips)); + made = made && make_image(g.farthest_depth_mip1, VK_FORMAT_R16_SFLOAT, half_w, half_h); + made = made && make_image(g.dilated_motion_vectors, VK_FORMAT_R16G16_SFLOAT, rw, rh); + made = made && make_image(g.dilated_depth, VK_FORMAT_R32_SFLOAT, rw, rh); + made = made && make_image(g.previous_nearest_depth, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.dilated_reactive_masks, VK_FORMAT_R8G8B8A8_UNORM, rw, rh); + made = made && make_image(g.frame_info, VK_FORMAT_R32G32B32A32_SFLOAT, 1, 1); + made = made && make_image(g.spd_atomic, VK_FORMAT_R32_UINT, 1, 1); + made = made && make_image(g.lanczos_lut, VK_FORMAT_R16_SNORM, 128, 1); + made = made && make_image(g.default_reactive, VK_FORMAT_R8_UNORM, 1, 1); + made = made && make_image(g.output, VK_FORMAT_R16G16B16A16_SFLOAT, uw, uh); + g.first_evaluation = true; // (new images: their first layout and cleared, the history from nothing) + g.lut_uploaded = false; + g.parity = 0; + if (!made) { + for (Image* t : all_images()) drop_image(*t); + g.render_width = g.render_height = g.upscale_width = g.upscale_height = 0; + return false; + } + g.render_width = rw, g.render_height = rh, g.upscale_width = uw, g.upscale_height = uh; + logf("vk: fsr3: %ux%u -> %ux%u", rw, rh, uw, uh); + return true; +} + +} // namespace + +bool supported() { + if (!dev.device) return false; // (asked before the device is made, by the menu: not an answer to keep) + static const bool answer = [] { + // (the widest pass pushes thirteen descriptors and the two samplers) + if (!dev.push_descriptor || !vkCmdPushDescriptorSetKHR || dev.max_push_descriptors < 15) { + logf("vk: fsr3: not on this GPU: no push descriptors, or fewer than 15 (%u)", dev.max_push_descriptors); + return false; + } + if (!dev.features.shaderStorageImageExtendedFormats || !dev.features.shaderStorageImageWriteWithoutFormat) { + logf("vk: fsr3: not on this GPU: no extended storage image formats, or no storage writes without a format"); + return false; + } + if (!formats_supported()) return false; + VkPhysicalDeviceSubgroupProperties sg{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES}; + VkPhysicalDeviceProperties2 p2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}; + p2.pNext = &sg; + vkGetPhysicalDeviceProperties2(dev.physical, &p2); + const VkSubgroupFeatureFlags want = VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_QUAD_BIT; + g.wave = (sg.supportedOperations & want) == want && (sg.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT); + logf("vk: fsr3: AMD FSR 3.1 can run on this GPU"); + return true; + }(); + return answer; +} + +bool upscale(VkCommandBuffer cmd, const Inputs& in) { + free_dead(); + if (!in.color || !in.depth || !in.motion) return false; + if (!prepare(in.render_width, in.render_height, in.upscale_width, in.upscale_height)) return false; + + const bool first = g.first_evaluation; + const bool reset = in.reset || first; + g.first_evaluation = false; + const int32_t rw = (int32_t)g.render_width, rh = (int32_t)g.render_height; + const int32_t uw = (int32_t)g.upscale_width, uh = (int32_t)g.upscale_height; + + Constants k{}; + k.render_size[0] = rw, k.render_size[1] = rh; + k.upscale_size[0] = uw, k.upscale_size[1] = uh; + k.max_render_size[0] = rw, k.max_render_size[1] = rh; + k.max_upscale_size[0] = uw, k.max_upscale_size[1] = uh; + for (int i = 0; i < 2; i++) { + k.previous_render_size[i] = first ? k.render_size[i] : g.previous_render_size[i]; + k.previous_upscale_size[i] = first ? k.upscale_size[i] : g.previous_upscale_size[i]; + k.jitter[i] = in.jitter[i]; + k.previous_jitter[i] = first ? in.jitter[i] : g.previous_jitter[i]; + } + memcpy(k.device_to_view_depth, in.camera.device_to_view_depth, sizeof k.device_to_view_depth); + k.tan_half_fov = in.camera.tan_half_fov_x; // (not read by the 3.1.4 upscaler's passes; set as the SDK sets it) + k.motion_vector_scale[0] = in.motion_scale[0] / (float)std::max(1, rw); + k.motion_vector_scale[1] = in.motion_scale[1] / (float)std::max(1, rh); + k.downscale_factor[0] = (float)rw / (float)std::max(1, uw); + k.downscale_factor[1] = (float)rh / (float)std::max(1, uh); + k.jitter_phase_count = (float)std::max(1u, in.jitter_phases); + k.delta_time = std::clamp(in.frame_time_ms / 1000.0f, 0.0f, 1.0f); + k.delta_pre_exposure = 1.0f; + k.view_space_to_meters = 1.0f; + g.frame_index = reset ? 0.0f : g.frame_index + 1.0f; + k.frame_index = g.frame_index; + k.velocity_factor = 1.0f; // (the SDK's FFX_FSR3UPSCALER_CONFIGURE_UPSCALE_KEY_* defaults) + k.reactiveness_scale = 1.0f; + k.shading_change_scale = 1.0f; + k.accumulation_added_per_frame = 1.0f / 3.0f; + k.min_disocclusion_accumulation = -1.0f / 3.0f; + for (int i = 0; i < 2; i++) { + g.previous_render_size[i] = k.render_size[i]; + g.previous_upscale_size[i] = k.upscale_size[i]; + g.previous_jitter[i] = in.jitter[i]; + } + + const uint32_t spd_x = (g.render_width - 1) / 64 + 1; + const uint32_t spd_y = (g.render_height - 1) / 64 + 1; + SpdConstants spd{}; + spd.mips = (uint32_t)std::min(std::floor(std::log2((float)std::max(g.render_width, g.render_height))), 12.0f); + spd.num_work_groups = spd_x * spd_y; + spd.render_size[0] = g.render_width, spd.render_size[1] = g.render_height; + + // This frame's slots, written through the mapped buffer. + const VkDeviceSize base = (VkDeviceSize)(g.uniform_frame % kUniformFrames) * g.frame_stride; + g.uniform_frame++; + uint8_t* const mapped = (uint8_t*)g.uniforms_mapped + base; + memcpy(mapped, &k, sizeof k); + memcpy(mapped + g.slot_fsr, &spd, sizeof spd); + const VkDeviceSize lut_at = g.slot_fsr + g.slot_spd; + if (!g.lut_uploaded) { // (the accumulate pass's Lanczos weights, 128 taps as the SDK builds them) + int16_t weights[128]; + for (size_t i = 0; i < 128; i++) { + const float x = 2.0f * (float)i / 127.0f; + const float pi_x = 3.14159265358979f * x; + const float y = std::abs(x) < FLT_EPSILON ? 1.0f : (std::sin(pi_x) / pi_x) * (std::sin(0.5f * pi_x) / (0.5f * pi_x)); + weights[i] = (int16_t)std::lround(y * 32767.0f); + } + memcpy(mapped + lut_at, weights, sizeof weights); + } + flush_mapped(g.uniforms_memory, g.frame_stride * kUniformFrames); + + const uint32_t p = g.parity, q = p ^ 1u; + + // What was written before (the inputs: vk_fsr3_inputs.cpp) has to be visible, and new images need their first layout. + memory_barrier(cmd, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | + VK_ACCESS_2_SHADER_WRITE_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_TRANSFER_BIT | VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT); + const std::vector all = all_images(); + if (first) { + std::vector to_general; + to_general.reserve(all.size()); + for (const Image* t : all) { + VkImageMemoryBarrier2 b{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}; + b.srcStageMask = VK_PIPELINE_STAGE_2_NONE; + b.dstStageMask = VK_PIPELINE_STAGE_2_TRANSFER_BIT; + b.dstAccessMask = VK_ACCESS_2_TRANSFER_WRITE_BIT; + b.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; + b.newLayout = VK_IMAGE_LAYOUT_GENERAL; + b.srcQueueFamilyIndex = b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.image = t->image; + b.subresourceRange = ALL_LEVELS; + to_general.push_back(b); + } + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.imageMemoryBarrierCount = (uint32_t)to_general.size(); + di.pImageMemoryBarriers = to_general.data(); + vkCmdPipelineBarrier2(cmd, &di); + const VkClearColorValue zero{}; + for (const Image* t : all) vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + } + if (!g.lut_uploaded) { + g.lut_uploaded = true; + VkBufferImageCopy copy{}; + copy.bufferOffset = base + lut_at; + copy.imageSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}; + copy.imageExtent = {128, 1, 1}; + vkCmdCopyBufferToImage(cmd, g.uniforms, g.lanczos_lut.image, VK_IMAGE_LAYOUT_GENERAL, 1, ©); + } + // Per frame: the nearest-depth scratch, the SPD counter and its mips; the history on a reset. + const VkClearColorValue zero{}; + for (const Image* t : {&g.previous_nearest_depth, &g.spd_atomic, &g.spd_mips}) + vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + if (reset) { + vkCmdClearColorImage(cmd, g.accumulation[p].image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + VkClearColorValue info{}; + info.float32[0] = -1.0f, info.float32[1] = 1.0f; + vkCmdClearColorImage(cmd, g.frame_info.image, VK_IMAGE_LAYOUT_GENERAL, &info, 1, &ALL_LEVELS); + } + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + + const auto tex = [](const Image& t) { return Resource{t.view}; }; + const auto mip = [](uint32_t level) { + const size_t n = g.spd_mips.levels.size(); + return Resource{g.spd_mips.levels[std::min(level, n ? n - 1 : 0)]}; + }; + const Resource color{in.color}, depth{in.depth}, motion{in.motion}; + const Resource exposure = tex(g.frame_info); // (FSR computes its own exposure) + const Resource current_luma = tex(g.luma[p]); + const Resource cb_fsr{VK_NULL_HANDLE, g.uniforms, base, g.slot_fsr}; + const Resource cb_spd{VK_NULL_HANDLE, g.uniforms, base + g.slot_fsr, g.slot_spd}; + const auto groups = [](int32_t size, uint32_t tile) { return ((uint32_t)std::max(1, size) + tile - 1) / tile; }; + const auto run = [&](size_t pass, std::initializer_list res, uint32_t gx, uint32_t gy) { + record_pass(cmd, pass, res.begin(), res.size(), gx, gy); + }; + + run(P_PREPARE_INPUTS, {motion, depth, color, tex(g.dilated_motion_vectors), tex(g.dilated_depth), + tex(g.previous_nearest_depth), tex(g.farthest_depth), current_luma, cb_fsr}, + groups(rw, 8), groups(rh, 8)); + run(g.wave ? P_LUMA_PYRAMID : P_LUMA_PYRAMID_NOWAVE, + {current_luma, tex(g.farthest_depth), tex(g.spd_atomic), tex(g.frame_info), mip(0), mip(1), mip(2), mip(3), mip(4), + mip(5), tex(g.farthest_depth_mip1), cb_fsr, cb_spd}, + spd_x, spd_y); + // The two pyramid passes share one atomic counter, and the single-pass downsampler uses it to elect the workgroup that + // finishes the chain: it counts up to num_work_groups and the last one through does the tail. Cleared only once a frame, + // the second pass would start at the total, elect no workgroup, and the ones waiting on the tail would spin + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, VK_PIPELINE_STAGE_2_TRANSFER_BIT, + VK_ACCESS_2_TRANSFER_WRITE_BIT); + vkCmdClearColorImage(cmd, g.spd_atomic.image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + run(g.wave ? P_SHADING_CHANGE_PYRAMID : P_SHADING_CHANGE_PYRAMID_NOWAVE, + {current_luma, tex(g.luma[q]), tex(g.dilated_motion_vectors), exposure, tex(g.spd_atomic), mip(0), mip(1), mip(2), + mip(3), mip(4), mip(5), cb_fsr, cb_spd}, + spd_x, spd_y); + run(P_SHADING_CHANGE, {tex(g.spd_mips), tex(g.shading_change), cb_fsr}, groups(rw / 2, 8), groups(rh / 2, 8)); + run(P_PREPARE_REACTIVITY, + {tex(g.previous_nearest_depth), tex(g.dilated_motion_vectors), tex(g.dilated_depth), tex(g.default_reactive), + tex(g.default_reactive), tex(g.accumulation[p]), tex(g.shading_change), current_luma, exposure, + tex(g.dilated_reactive_masks), tex(g.new_locks), tex(g.accumulation[q]), cb_fsr}, + groups(rw, 8), groups(rh, 8)); + run(P_LUMA_INSTABILITY, + {exposure, tex(g.dilated_reactive_masks), tex(g.dilated_motion_vectors), tex(g.frame_info), tex(g.luma_history[p]), + tex(g.farthest_depth_mip1), current_luma, tex(g.luma_history[q]), tex(g.farthest_depth), cb_fsr}, + groups(rw, 8), groups(rh, 8)); + run(P_ACCUMULATE, + {exposure, tex(g.dilated_reactive_masks), tex(g.dilated_motion_vectors), tex(g.internal_upscaled[p]), + tex(g.lanczos_lut), tex(g.farthest_depth_mip1), current_luma, tex(g.farthest_depth), color, + tex(g.internal_upscaled[q]), tex(g.output), tex(g.new_locks), cb_fsr}, + groups(uw, 8), groups(uh, 8)); + g.parity = q; + return true; +} + +VkImage output_image() { return g.output.image; } +VkImageView output_view() { return g.output.view; } + +} // namespace mkwvk::fsr3 + +namespace mkwvk { + +namespace { + +int env_switch(const char* name) { // (-1: unset) + const char* e = getenv(name); + return e && *e ? atoi(e) : -1; +} + +/// The network's output from FSR's picture: dlss_out.comp, the same pass DLSS's picture goes through (the colour FSR was +/// given is the network's perceptual encoding, which this squares back to linear colour, as the network's own output does) +struct Out { + std::mutex mu; + bool tried = false; + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipe = VK_NULL_HANDLE; + VkSampler point = VK_NULL_HANDLE; + const char* reason = nullptr; + int reason_repeats = 0; + bool told_first = false; + uint64_t drawn = 0; +}; +Out& out_state() { + static Out o; + return o; +} + +bool make_out_pipeline() { + Out& o = out_state(); + if (o.pipe) return true; + if (o.tried) return false; + o.tried = true; + const VkDescriptorSetLayoutBinding b[2] = { + {0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}, + {1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}}; + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = 2, li.pBindings = b; + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &o.set) != VK_SUCCESS) return false; + const VkPushConstantRange pr{VK_SHADER_STAGE_COMPUTE_BIT, 0, 8}; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &o.set, pi.pushConstantRangeCount = 1, pi.pPushConstantRanges = ≺ + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &o.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = sizeof DLSS_OUT_COMP_SPV, mi.pCode = DLSS_OUT_COMP_SPV; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, VK_SHADER_STAGE_COMPUTE_BIT, m, "main", + nullptr}; + ci.layout = o.layout; + const VkResult r = vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &o.pipe); + vkDestroyShaderModule(dev.device, m, nullptr); + if (r != VK_SUCCESS) return o.pipe = VK_NULL_HANDLE, false; + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.magFilter = si.minFilter = VK_FILTER_NEAREST; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + if (vkCreateSampler(dev.device, &si, nullptr, &o.point) != VK_SUCCESS) { + vkDestroyPipeline(dev.device, o.pipe, nullptr); + return o.pipe = VK_NULL_HANDLE, false; + } + return true; +} + +bool fail(const char* why) { // (the network runs: why, when it changes and every 600th time) + Out& o = out_state(); + if (why != o.reason || ++o.reason_repeats % 600 == 0) logf("vk: fsr3: the game's upscale runs (%s)", why); + if (why != o.reason) o.reason = why, o.reason_repeats = 0; + return false; +} + +} // namespace + +bool fsr3_wanted() { + static const int env = env_switch("RX_VK_FSR"); + if (env == 0) return false; + // (the Upscaler row's FSR 3.1, upscaler_rows.h, read each time: the row changes it while the game runs) + return (env > 0 || opts.dlss == upscaler_rows::FSR3) && fsr3::supported(); +} + +bool fsr3_upscale(VkCommandBuffer cmd, uint64_t key, bool known, Texture* in, VkImageView in_view, Texture* out, + VkImageView out_view, uint32_t out_level) { + const bool upscaling = fsr3_wanted(); + if (!upscaling && !fsr3_inputs::wanted()) return false; + if (!in || !in_view || !out || !out_view) return false; + // (another network of the upscale's shape, as dlss_upscale takes them: only the scene into the picture. The gameplay + // networks sample the scene's B10G11R11 colour and write the B10G11R11 picture) + if (!known && (in->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || out->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || + (out->width >> out_level) <= in->width || !fsr3_inputs::is_scene(in))) + return false; + fsr3_inputs::Frame f; + if (!fsr3_inputs::prepare(cmd, in, in_view, f)) return upscaling ? fail("its inputs could not be made") : false; + if (!upscaling) return false; // (frame interpolation's inputs alone: the network or DLSS upscales) + Out& o = out_state(); + std::lock_guard lk(o.mu); + const uint32_t ow = std::max(1u, out->width >> out_level), oh = std::max(1u, out->height >> out_level); + if (out->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || ow < f.width || oh < f.height) return fail("unexpected output"); + if (!make_out_pipeline()) return fail("its output pass was not made"); + struct Disturbed { // (from here commands are recorded: the program's descriptor pushes are pushed again after) + ~Disturbed() { descriptors_disturbed(); } + } disturbed; + fsr3::Inputs ai; + ai.color = f.color, ai.depth = f.depth, ai.motion = f.motion; + ai.render_width = f.width, ai.render_height = f.height; + ai.upscale_width = ow, ai.upscale_height = oh; + ai.jitter[0] = f.jitter[0], ai.jitter[1] = f.jitter[1]; + ai.jitter_phases = fsr3_inputs::jitter_size(2) ? fsr3_inputs::jitter_size(2) : 8; + ai.camera = f.camera; + ai.frame_time_ms = f.frame_ms; + ai.reset = f.reset; + if (!fsr3::upscale(cmd, ai)) return fail("its passes could not be recorded"); + { + const int32_t pc[2] = {(int32_t)ow, (int32_t)oh}; + const VkDescriptorImageInfo info[2] = {{o.point, fsr3::output_view(), VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, out_view, VK_IMAGE_LAYOUT_GENERAL}}; + VkWriteDescriptorSet w[2]{{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}, {VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}}; + w[0].dstBinding = 0, w[0].descriptorCount = 1, w[0].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + w[0].pImageInfo = &info[0]; + w[1].dstBinding = 1, w[1].descriptorCount = 1, w[1].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + w[1].pImageInfo = &info[1]; + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, o.pipe); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, o.layout, 0, 2, w); + vkCmdPushConstants(cmd, o.layout, VK_SHADER_STAGE_COMPUTE_BIT, 0, sizeof pc, pc); + vkCmdDispatch(cmd, (ow + 7) / 8, (oh + 7) / 8, 1); + } + full_barrier(cmd); + fsr3_inputs::upscaled(f.width, f.height, ow, oh); + // (every 600 frames: that it still draws, and the jitter it was given, which says the host's jitter is on) + if (++o.drawn % 600 == 0) + logf("vk: fsr3: %llu frames drawn, %ux%u -> %ux%u, this one's jitter %+.3f %+.3f px of %u phases", (unsigned long long)o.drawn, + f.width, f.height, ow, oh, f.jitter[0], f.jitter[1], ai.jitter_phases); + if (o.reason) logf("vk: fsr3: FSR 3.1 draws the upscale again (frame %llu)", (unsigned long long)f.frame); + o.reason = nullptr; + if (!o.told_first) { + o.told_first = true; + logf("vk: fsr3 %ux%u -> %ux%u with assembled depth and camera motion (network %016llx; jitter %+.3f %+.3f px, " + "%u phases)", + f.width, f.height, ow, oh, (unsigned long long)key, f.jitter[0], f.jitter[1], ai.jitter_phases); + } + return true; +} + +} // namespace mkwvk diff --git a/gpu/vk/vk_fsr3.h b/gpu/vk/vk_fsr3.h new file mode 100644 index 000000000..881f737b3 --- /dev/null +++ b/gpu/vk/vk_fsr3.h @@ -0,0 +1,69 @@ +// (hookshot) AMD FidelityFX Super Resolution 3.1 (the FSR 3.1.4 upscaler of FidelityFX SDK v1.1.4) in place of OoT's +// gameplay upscale network, the same place NVIDIA DLSS takes (vk_dlss.h). Built from AMD's open shader sources +// (third_party/fidelityfx-sdk, compiled into gpu/vk/shaders by scripts/fsr3_shaders.py): every pass is a dispatch of ours, +// and nothing of AMD's is linked or loaded at run time, so it is in every build and runs on any GPU with what supported() +// asks for. +// +// The passes (namespace fsr3) take colour, depth and motion at the render size and write the picture at the output size. +// Those inputs are made in vk_fsr3_inputs.cpp; fsr3_upscale below is the dispatch's side: the network's input in, FSR's +// picture squared back into the network's output, as vk_dlss.cpp's dlss_out.comp does for DLSS. +// +// RX_VK_FSR=0: never (the row stays), =1: FSR 3.1 over the Insert menu's Upscaler row. +#pragma once + +#include + +#include "fsr3_math.h" +#include "vk_internal.h" + +namespace mkwvk { + +struct Texture; + +namespace fsr3 { + +/// One evaluation's inputs, in the SDK's meanings: the colour at the render size, the depth reversed, the motion toward the +/// frame before in render pixels without the jitter, and the jitter in render pixels (input texel k is sampled at +/// k + 0.5 - jitter) +struct Inputs { + VkImageView color = VK_NULL_HANDLE; + VkImageView depth = VK_NULL_HANDLE; + VkImageView motion = VK_NULL_HANDLE; + uint32_t render_width = 0, render_height = 0; + uint32_t upscale_width = 0, upscale_height = 0; + float jitter[2]{}; + uint32_t jitter_phases = 8; ///< the length of the jitter's sequence (dlss_jitter_phases: the host's own) + /// Turns a motion vector into render pixels (1 for vectors already in them) + float motion_scale[2]{1.0f, 1.0f}; + fsr3_math::Camera camera; ///< device_to_view_depth (fsr3_math.h) + float frame_time_ms = 16.667f; + bool reset = false; +}; + +/// Whether this device can run the passes: push descriptors enough for the widest pass, storage images in every format the +/// SDK's internal images use, the extended storage formats and storage writes without a format (the accumulate and RCAS +/// passes' output). Without subgroup quad operations in compute the two pyramids run as their wave-less variants. Asked +/// once; the reason it cannot is logged once +[[nodiscard]] bool supported(); + +/// Records one evaluation into output_image(), making the pipelines and the internal images at these sizes first (again +/// when they change). False when something could not be made or the inputs are not usable +[[nodiscard]] bool upscale(VkCommandBuffer cmd, const Inputs& in); + +/// The image an evaluation resolves into: RGBA16F at the upscale size, or null before the first +[[nodiscard]] VkImage output_image(); +[[nodiscard]] VkImageView output_view(); + +} // namespace fsr3 + +/// FSR 3.1 upscales: the Insert menu's Upscaler row says FSR 3.1 (upscaler_rows.h FSR3) or RX_VK_FSR=1, and it runs here +bool fsr3_wanted(); + +/// A gameplay upscale's dispatch, as vk_dlss.h's dlss_upscale takes it (vk_draw.cpp's fsr3_stand_in finds them the same +/// way). With FSR 3.1's frame interpolation on, the dispatch's input and this frame's camera become its inputs here +/// (vk_fsr3_inputs.h) whichever upscaler runs. true: FSR 3.1 wrote the output (the dispatch is left out); false: the network +/// (or DLSS) runs, the reason logged when it changes +bool fsr3_upscale(VkCommandBuffer cmd, uint64_t key, bool known, Texture* in, VkImageView in_view, Texture* out, + VkImageView out_view, uint32_t out_level); + +} // namespace mkwvk diff --git a/gpu/vk/vk_fsr3_inputs.cpp b/gpu/vk/vk_fsr3_inputs.cpp new file mode 100644 index 000000000..ea78f9c88 --- /dev/null +++ b/gpu/vk/vk_fsr3_inputs.cpp @@ -0,0 +1,367 @@ +// (hookshot) AMD FSR 3.1's inputs: the scene's camera and depth, made into colour, depth and motion at the render size by +// one pass (shaders/fsr3_prep.comp); see vk_fsr3_inputs.h for what comes from #841 and what does not yet. +// +// The camera is taken exactly as vk_dlss.cpp's dlss_note_scene_draw takes it, from the draws into the scene's colour target: +// their vertex stage's uniform buffer 3 holds the target's size at 0x120, this frame's view-projection at 0x30 (row major, +// clip = M * position) and the projection at 0x70, its w row (0, 0, -1, 0) at 0xa0. The jitter the host put on the +// projection (nx2/oot_jitter.py: P[0][2] and P[1][2]) is read back from it, given to FSR in render pixels and taken off the +// motion, with dlss_math.h's functions: the same jitter, read the same way, as DLSS's. +#include "vk_fsr3_inputs.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dlss_math.h" +#include "vk_draw.h" // (descriptors_disturbed) +#include "vk_fsr3.h" +#include "vk_fsr3fi.h" +#include "vk_texture.h" + +#include "shaders/fsr3_prep_comp_spv.h" +#include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) + +namespace mkwvk::fsr3_inputs { +namespace { + +int env_switch(const char* name) { // (-1: unset) + const char* e = getenv(name); + return e && *e ? atoi(e) : -1; +} + +struct Image { + VkImage image = VK_NULL_HANDLE; + VmaAllocation memory = nullptr; + VkImageView view = VK_NULL_HANDLE; + VkFormat format = VK_FORMAT_UNDEFINED; + uint32_t width = 0, height = 0; +}; + +struct Camera { + float current[16]{}; // (its view-projection, jittered) + float projection[16]{}; // (its projection, jittered: the near plane and the field of view come from it) + float jitter[2]{}; // (the projection's offset of the picture's centre, in clip space: nx2/oot_jitter.py) + uint32_t width = 0, height = 0; + Texture* depth = nullptr; + uint64_t depth_gen = 0; // (texture_destroy_generation when taken: a depth texture destroyed since is not used) + uint64_t frame = 0; // (texture_frame_no when taken) + bool valid = false; +}; + +struct State { + std::mutex mu; + Camera cam; // (this frame's, since the last prepare) + Image color, depth, motion; + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipe = VK_NULL_HANDLE; + VkSampler point = VK_NULL_HANDLE; + bool tried = false; + std::unordered_map depth_views; + uint64_t depth_views_gen = 0; + float last_vp[16]{}; // (the frame before's view-projection, and its jitter) + float last_jitter[2]{}; + uint64_t last_frame = 0; // (the frame prepare last ran, 0: none) + std::chrono::steady_clock::time_point last_time{}; + Frame frame; // (the last one prepared: take()) + bool have_frame = false; + std::atomic upscaled_frame{0}; // (the frame FSR's upscaler last drew: jitter_size, on the game's thread) + std::atomic jitter_w{0}, jitter_h{0}, jitter_phases{8}; + struct Dead { uint64_t frame; std::function free; }; + std::vector dead; // (what work in flight may still use: freed a few frames on) + const char* reason = nullptr; + int reason_repeats = 0; + bool told = false; +}; +State& st() { + static State s; + return s; +} + +bool fail(const char* why) { // (why, when it changes and every 600th time) + State& s = st(); + if (why != s.reason || ++s.reason_repeats % 600 == 0) logf("vk: fsr3 inputs: not made this frame (%s)", why); + if (why != s.reason) s.reason = why, s.reason_repeats = 0; + return false; +} + +void later(std::function f) { st().dead.push_back({texture_frame_no(), std::move(f)}); } +void free_dead() { + State& s = st(); + const uint64_t now = texture_frame_no(); + for (size_t i = 0; i < s.dead.size();) { + if (now - s.dead[i].frame > 4) { + s.dead[i].free(); + s.dead[i] = std::move(s.dead.back()); + s.dead.pop_back(); + } else { + i++; + } + } +} + +bool make_image(VkCommandBuffer cmd, Image& im, VkFormat format, uint32_t w, uint32_t h) { + if (im.image && im.format == format && im.width == w && im.height == h) return true; + if (im.image) { + const Image old = im; + later([old] { + vkDestroyImageView(dev.device, old.view, nullptr); + destroy_image(old.image, old.memory); + }); + im = {}; + } + VkImageCreateInfo ic{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + ic.imageType = VK_IMAGE_TYPE_2D, ic.format = format, ic.extent = {w, h, 1}, ic.mipLevels = 1, ic.arrayLayers = 1; + ic.samples = VK_SAMPLE_COUNT_1_BIT, ic.tiling = VK_IMAGE_TILING_OPTIMAL; + ic.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + if (!create_image(ic, im.image, im.memory)) return im = {}, false; + VkImageViewCreateInfo vc{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vc.image = im.image, vc.viewType = VK_IMAGE_VIEW_TYPE_2D, vc.format = format; + vc.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}; + if (vkCreateImageView(dev.device, &vc, nullptr, &im.view) != VK_SUCCESS) { + destroy_image(im.image, im.memory); + return im = {}, false; + } + im.format = format, im.width = w, im.height = h; + VkImageMemoryBarrier2 b{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}; // (UNDEFINED -> GENERAL, once) + b.srcStageMask = VK_PIPELINE_STAGE_2_NONE, b.dstStageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT; + b.dstAccessMask = VK_ACCESS_2_MEMORY_READ_BIT | VK_ACCESS_2_MEMORY_WRITE_BIT; + b.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED, b.newLayout = VK_IMAGE_LAYOUT_GENERAL; + b.srcQueueFamilyIndex = b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.image = im.image, b.subresourceRange = vc.subresourceRange; + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.imageMemoryBarrierCount = 1, di.pImageMemoryBarriers = &b; + vkCmdPipelineBarrier2(cmd, &di); + return true; +} + +/// fsr3_prep.comp's pipeline, once: two sampled inputs, three storage outputs, dlss_prep.comp's push constants +bool make_pipeline() { + State& s = st(); + if (s.pipe) return true; + if (s.tried || !dev.push_descriptor || !vkCmdPushDescriptorSetKHR) return false; + s.tried = true; + VkDescriptorSetLayoutBinding b[5]{}; + for (uint32_t i = 0; i < 5; i++) + b[i] = {i, i < 2 ? VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, + VK_SHADER_STAGE_COMPUTE_BIT, nullptr}; + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = 5, li.pBindings = b; + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &s.set) != VK_SUCCESS) return false; + const VkPushConstantRange pr{VK_SHADER_STAGE_COMPUTE_BIT, 0, 84}; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &s.set, pi.pushConstantRangeCount = 1, pi.pPushConstantRanges = ≺ + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &s.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = sizeof FSR3_PREP_COMP_SPV, mi.pCode = FSR3_PREP_COMP_SPV; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, VK_SHADER_STAGE_COMPUTE_BIT, m, "main", + nullptr}; + ci.layout = s.layout; + const VkResult r = vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &s.pipe); + vkDestroyShaderModule(dev.device, m, nullptr); + if (r != VK_SUCCESS) { + logf("vk: fsr3 inputs: their pipeline was not made (%d)", (int)r); + return s.pipe = VK_NULL_HANDLE, false; + } + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.magFilter = si.minFilter = VK_FILTER_NEAREST; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + if (vkCreateSampler(dev.device, &si, nullptr, &s.point) != VK_SUCCESS) { + vkDestroyPipeline(dev.device, s.pipe, nullptr); + return s.pipe = VK_NULL_HANDLE, false; + } + return true; +} + +/// A view of a depth texture's depth alone, for sampling (made once per image: vk_dlss.cpp's depth_view) +VkImageView depth_view(Texture* t) { + State& s = st(); + const uint64_t gen = texture_destroy_generation(); + if (gen != s.depth_views_gen) { // (a texture was destroyed: its image's view may be stale) + auto old = std::move(s.depth_views); + s.depth_views.clear(); + later([old] { + for (const auto& [image, view] : old) vkDestroyImageView(dev.device, view, nullptr); + }); + s.depth_views_gen = gen; + } + if (auto it = s.depth_views.find(t->image); it != s.depth_views.end()) return it->second; + VkImageViewCreateInfo vc{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vc.image = t->image, vc.viewType = VK_IMAGE_VIEW_TYPE_2D, vc.format = t->format; + vc.subresourceRange = {VK_IMAGE_ASPECT_DEPTH_BIT, 0, 1, 0, 1}; + VkImageView v = VK_NULL_HANDLE; + if (vkCreateImageView(dev.device, &vc, nullptr, &v) != VK_SUCCESS) v = VK_NULL_HANDLE; + s.depth_views[t->image] = v; + return v; +} + +} // namespace + +bool wanted() { return fsr3_wanted() || fsr3fi::frames_wanted() != 0; } + +void note_scene_draw(const Texture* color0, uint32_t width, uint32_t height, Texture* depth, uint64_t camera, + uint64_t camera_size) { + if (!color0 || !depth || !camera || camera_size < 0x230 || width < 640 || height < 360) return; + if (color0->format != VK_FORMAT_B10G11R11_UFLOAT_PACK32 || !wanted()) return; + State& s = st(); + std::lock_guard lk(s.mu); + const uint64_t now = texture_frame_no(); + if (s.cam.valid && s.cam.frame == now && (uint64_t)width * height <= (uint64_t)s.cam.width * s.cam.height) + return; // (the largest one of the frame wins) + float c[0x230 / 4]; + if (!memory_read_as_submitted(camera, c, sizeof c)) return; + // (the target's size at 0x120; the projection at 0x70, its w row (0, 0, -1, 0) at 0xa0) + if (c[0x120 / 4] != (float)width || c[0x124 / 4] != (float)height || c[0xa0 / 4] != 0.0f || c[0xa4 / 4] != 0.0f || + c[0xa8 / 4] != -1.0f || c[0xac / 4] != 0.0f) + return; + Camera& k = s.cam; + std::memcpy(k.current, c + 0x30 / 4, sizeof k.current); + std::memcpy(k.projection, c + 0x70 / 4, sizeof k.projection); + // (the offset sead's projection gave the frustum, in its third column: 2 * offset, which moves the picture by -that) + k.jitter[0] = -c[0x78 / 4], k.jitter[1] = -c[0x88 / 4]; + k.width = width, k.height = height, k.depth = depth, k.depth_gen = texture_destroy_generation(), k.frame = now; + k.valid = true; +} + +bool is_scene(const Texture* in) { + State& s = st(); + std::lock_guard lk(s.mu); + return in && s.cam.valid && texture_frame_no() - s.cam.frame <= 1 && in->width == s.cam.width && + in->height == s.cam.height; +} + +bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out) { + State& s = st(); + std::lock_guard lk(s.mu); + free_dead(); + const Camera cam = s.cam; + s.cam.valid = false; // (each frame's own camera) + if (!in || !in_view) return fail("no input view"); + const uint64_t now = texture_frame_no(); + if (!cam.valid || now - cam.frame > 1) return fail("no scene camera this frame"); + if (cam.depth_gen != texture_destroy_generation()) return fail("the scene depth may be gone"); + const uint32_t rw = in->width, rh = in->height; + if (rw != cam.width || rh != cam.height) return fail("the input is not the scene's size"); + if (cam.depth->width != rw || cam.depth->height != rh || !(cam.depth->usage & VK_IMAGE_USAGE_SAMPLED_BIT) || + cam.depth->samples != VK_SAMPLE_COUNT_1_BIT || !(cam.depth->aspect & VK_IMAGE_ASPECT_DEPTH_BIT)) + return fail("unexpected scene depth"); + // (the projection without this frame's jitter: the field of view and the depth range do not move with it) + float projection[16]; + std::memcpy(projection, cam.projection, sizeof projection); + dlss_math::unjitter(projection, cam.jitter); + fsr3_math::Camera camera; + if (!fsr3_math::camera_from_projection(projection, camera)) return fail("the scene's projection is not one FSR takes"); + if (!make_pipeline()) return fail("its pipeline was not made"); + const VkImageView dview = depth_view(cam.depth); + if (!dview) return fail("no view of the scene depth"); + struct Disturbed { // (from here commands are recorded: the program's descriptor pushes are pushed again after) + ~Disturbed() { descriptors_disturbed(); } + } disturbed; + if (!make_image(cmd, s.color, VK_FORMAT_R16G16B16A16_SFLOAT, rw, rh) || !make_image(cmd, s.depth, VK_FORMAT_R32_SFLOAT, rw, rh) || + !make_image(cmd, s.motion, VK_FORMAT_R16G16_SFLOAT, rw, rh)) + return fail("its images were not made"); + + const bool reset = !s.last_frame || now - s.last_frame > 2 || s.frame.width != rw || s.frame.height != rh; + struct { + float reproject[16]; + float jitter[2]; + int32_t size[2]; + int32_t flags; + } pc{}; + static_assert(sizeof pc == 84, "fsr3_prep.comp's push constants"); + // (the motion without the jitter: from this frame's jittered clip space to the frame before's without its jitter. A jitter + // moves clip x by jitter * w: taken off the previous matrix's first two rows) + float previous[16]; + std::memcpy(previous, s.last_vp, sizeof previous); + dlss_math::unjitter(previous, s.last_jitter); + const bool motion = !reset && dlss_math::reprojection(cam.current, previous, pc.reproject); + pc.jitter[0] = cam.jitter[0], pc.jitter[1] = cam.jitter[1]; + pc.size[0] = (int32_t)rw, pc.size[1] = (int32_t)rh; + pc.flags = (motion ? 1 : 0) | (camera.flip_depth ? 2 : 0); + + full_barrier(cmd); // (the scene's colour and depth, written before) + { + const VkDescriptorImageInfo info[5] = {{s.point, in_view, VK_IMAGE_LAYOUT_GENERAL}, + {s.point, dview, VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, s.color.view, VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, s.depth.view, VK_IMAGE_LAYOUT_GENERAL}, + {VK_NULL_HANDLE, s.motion.view, VK_IMAGE_LAYOUT_GENERAL}}; + VkWriteDescriptorSet w[5]{}; + for (uint32_t i = 0; i < 5; i++) { + w[i] = {VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w[i].dstBinding = i, w[i].descriptorCount = 1, w[i].pImageInfo = &info[i]; + w[i].descriptorType = i < 2 ? VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + } + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, s.pipe); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, s.layout, 0, 5, w); + vkCmdPushConstants(cmd, s.layout, VK_SHADER_STAGE_COMPUTE_BIT, 0, sizeof pc, &pc); + vkCmdDispatch(cmd, (rw + 7) / 8, (rh + 7) / 8, 1); + } + full_barrier(cmd); + + const auto t = std::chrono::steady_clock::now(); + Frame f; + f.color = s.color.view, f.depth = s.depth.view, f.motion = s.motion.view; + f.width = rw, f.height = rh; + dlss_math::jitter_to_pixels(cam.jitter, rw, rh, f.jitter); // (in render pixels, x right and y down: FSR's, as DLSS's) + f.camera = camera; + f.reset = reset; + f.frame_ms = s.last_time.time_since_epoch().count() && !reset + ? (float)std::min(250.0, std::chrono::duration(t - s.last_time).count()) + : 16.667f; + f.frame = now; + s.frame = f, s.have_frame = true; + s.last_time = t; + s.last_frame = now; + std::memcpy(s.last_vp, cam.current, sizeof s.last_vp); + s.last_jitter[0] = cam.jitter[0], s.last_jitter[1] = cam.jitter[1]; + if (s.reason) logf("vk: fsr3 inputs: made again (frame %llu)", (unsigned long long)now); + s.reason = nullptr; + if (!s.told) { + s.told = true; + // (what the projection says, once: the planes and the field of view FSR's depth factors are made of) + logf("vk: fsr3 inputs: %ux%u, from the scene's projection: near %.4f far %.6g fov %.2f deg, depth %s (p22 %.6g p23 " + "%.6g); camera motion from the depth, jitter %+.3f %+.3f px", + rw, rh, camera.near_plane, camera.far_plane, camera.fov_y * 57.2957795, camera.flip_depth ? "0 at the near plane: " + "reversed for FSR" : "reversed already", projection[10], projection[11], f.jitter[0], f.jitter[1]); + } + out = f; + return true; +} + +bool take(Frame& out) { + State& s = st(); + std::lock_guard lk(s.mu); + const bool have = s.have_frame && texture_frame_no() - s.frame.frame <= 1; + s.have_frame = false; + if (have) out = s.frame; + return have; +} + +void upscaled(uint32_t rw, uint32_t rh, uint32_t dw, uint32_t dh) { + State& s = st(); + s.jitter_w = rw, s.jitter_h = rh, s.jitter_phases = (uint32_t)dlss_jitter_phases(rw, rh, dw, dh); + s.upscaled_frame = texture_frame_no(); +} + +uint32_t jitter_size(int axis) { + // (RX_VK_FSR_JITTER=0: none. 0 too once FSR has not drawn for a while: the camera as the game has it) + static const bool off = env_switch("RX_VK_FSR_JITTER") == 0; + State& s = st(); + const uint64_t last = s.upscaled_frame.load(std::memory_order_relaxed); + if (off || !last || texture_frame_no() - last > 30 || !fsr3_wanted()) return 0; + if (axis == 2) return s.jitter_phases.load(std::memory_order_relaxed); + return axis ? s.jitter_h.load(std::memory_order_relaxed) : s.jitter_w.load(std::memory_order_relaxed); +} + +} // namespace mkwvk::fsr3_inputs diff --git a/gpu/vk/vk_fsr3_inputs.h b/gpu/vk/vk_fsr3_inputs.h new file mode 100644 index 000000000..5da2828cd --- /dev/null +++ b/gpu/vk/vk_fsr3_inputs.h @@ -0,0 +1,71 @@ +// (hookshot) AMD FSR 3.1's inputs (vk_fsr3_inputs.cpp): everything FSR 3.1's upscaler (vk_fsr3.h) and its frame +// interpolation (vk_fsr3fi.h) are given besides the picture, in one place, so they can move onto the renderer's shared +// temporal inputs (#1008) by changing this file alone. +// +// What comes from #841 (NVIDIA DLSS's own inputs) and what does not yet: +// - the camera jitter: #841's, the one jitter in the game (nx2/oot_jitter.py, host/rx_backend.c hos_dlss_jitter_clip), +// switched on for FSR by jitter_size() as vk_dlss.cpp's dlss_jitter_size switches it on for DLSS, and read back here from +// the camera's uniform buffer as vk_dlss.cpp reads it; +// - the camera: the same uniform buffer and the same checks as vk_dlss.cpp's dlss_note_scene_draw; the near plane and the +// field of view are read from its projection (fsr3_math.h), so nothing in the game is hooked for them; +// - the motion: the camera's, from the scene depth with dlss_prep.comp's math (shaders/fsr3_prep.comp). #841's actor motion +// (the skinned draws drawn again with last frame's bones) lives inside vk_dlss.cpp behind HOOKSHOT_NGX, so a build without +// NVIDIA's SDK has none of it; FSR gets it when #1008 moves that out from behind the gate. +#pragma once + +#include + +#include "fsr3_math.h" +#include "vk_internal.h" + +namespace mkwvk { + +struct Texture; + +namespace fsr3_inputs { + +/// A frame's inputs, at the render size, in images of this file's own (written by prepare) +struct Frame { + VkImageView color = VK_NULL_HANDLE; ///< RGBA16F: the network's input as it samples it, 0..1 + VkImageView depth = VK_NULL_HANDLE; ///< R32F, reversed (fsr3_math.h Camera::flip_depth) + VkImageView motion = VK_NULL_HANDLE; ///< RG16F, render pixels toward the frame before, x right and y down, no jitter + uint32_t width = 0, height = 0; + float jitter[2]{}; ///< this frame's, in render pixels as FSR takes it (x right, y down) + fsr3_math::Camera camera; + bool reset = false; ///< no history: the first frame, a new size, or a gap of more than two frames + float frame_ms = 16.667f; ///< since the frame before's + uint64_t frame = 0; ///< texture_frame_no() when prepared +}; + +/// FSR 3.1 is asked for at all: its upscaler (the Upscaler row) or its frame interpolation (the Frame generation row). The +/// scene's camera is kept only then +bool wanted(); + +/// A draw into a scene-sized target with the vertex stage's uniform buffer 3 at `camera`: what vk_dlss.cpp's +/// dlss_note_scene_draw is given, read the same way (the largest such target of the frame is the scene) +void note_scene_draw(const Texture* color0, uint32_t width, uint32_t height, Texture* depth, uint64_t camera, + uint64_t camera_size); + +/// The texture is this frame's scene colour (the size of the scene's camera this frame): for a network of the gameplay +/// upscale's shape that is not one of the known ones, as vk_dlss.cpp's dlss_upscale tells them apart +bool is_scene(const Texture* in); + +/// At the gameplay upscale's dispatch: its input as the network samples it (in, in_view), this frame's camera and depth into +/// FSR's inputs (shaders/fsr3_prep.comp). False when they cannot be made (no camera this frame, another size, ...): the +/// reason is logged when it changes +bool prepare(VkCommandBuffer cmd, Texture* in, VkImageView in_view, Frame& out); + +/// The frame prepare made last, for frame interpolation at the present, once: false when none was made since the last take +/// (or it is older than the frame before), so a present never interpolates with another frame's depth and motion +bool take(Frame& out); + +/// FSR 3.1's upscaler drew this frame, rw x rh into dw x dh: the host's jitter follows FSR (jitter_size) +void upscaled(uint32_t rw, uint32_t rh, uint32_t dw, uint32_t dh); + +/// The scene's width (axis 0) or height (1) for the host's camera jitter while FSR 3.1's upscaler draws, 0 otherwise or +/// with RX_VK_FSR_JITTER=0; axis 2: the jitter sequence's length (dlss_jitter_phases). vk_replay.cpp's rx_option gives +/// the host this or vk_dlss.cpp's dlss_jitter_size, whichever upscaler draws +uint32_t jitter_size(int axis); + +} // namespace fsr3_inputs +} // namespace mkwvk diff --git a/gpu/vk/vk_fsr3fi.cpp b/gpu/vk/vk_fsr3fi.cpp new file mode 100644 index 000000000..f8069fd0b --- /dev/null +++ b/gpu/vk/vk_fsr3fi.cpp @@ -0,0 +1,1169 @@ +// (hookshot) FSR 3 frame interpolation's pipelines, internal images and dispatches; see vk_fsr3fi.h +// for what it is for and where it slots in. +// +// The resource table, the per-pass binding lists, the pass order and the dispatch sizes are AMD's, +// not ours: ffx_opticalflow.cpp and ffx_frameinterpolation.cpp decide them, and each pass's GLSL +// numbers its own bindings (the FFX_OPTICALFLOW_BIND_* / FFX_FRAMEINTERPOLATION_BIND_* lines at the +// top of each file in third_party/fidelityfx-sdk/shaders). They are written out here in the SDK's +// order rather than derived, because getting one wrong is a validation error at best and a wrong +// picture at worst. vk_fsr3.cpp does the same for the upscaler and this file follows its shape. +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "vk_fsr3fi.h" +#include "vk_menu.h" // (the Frame generation row) +#include "vk_gprof.h" // (RX_VK_PASS_TIMING: a span per pass, so the report names them) +#include "vk_texture.h" + +#include "shaders/fsr3_fi_disocclusion_mask_comp_spv.h" +#include "shaders/fsr3_fi_game_motion_vector_field_comp_spv.h" +#include "shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h" +#include "shaders/fsr3_fi_inpainting_comp_spv.h" +#include "shaders/fsr3_fi_inpainting_pyramid_comp_spv.h" +#include "shaders/fsr3_fi_interpolate_comp_spv.h" +#include "shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h" +#include "shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h" +#include "shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h" +#include "shaders/fsr3_fi_setup_comp_spv.h" +#include "shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h" +#include "shaders/fsr3_of_compute_scd_divergence_comp_spv.h" +#include "shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h" +#include "shaders/fsr3_of_generate_scd_histogram_comp_spv.h" +#include "shaders/fsr3_of_luminance_pyramid_comp_spv.h" +#include "shaders/fsr3_of_prepare_luma_comp_spv.h" +#include "shaders/fsr3_of_scale_optical_flow_v5_comp_spv.h" +#include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) + +namespace mkwvk::fsr3fi { +namespace { + +// ---- the passes and what each one binds ---- + +/// A descriptor's kind. The optical-flow passes declare no sampler at all (every load there is a +/// texelFetch, under GL_EXT_samplerless_texture_functions); the interpolation passes declare one, a +/// linear clamp sampler at binding 1000, which is why the sampler is per-pass below and not the +/// fixed pair of samplers vk_fsr3.cpp pushes for every upscaler pass. +enum Kind : uint8_t { T, I, U, B }; // sampled texture, storage image, uniform buffer, storage buffer + +/// One descriptor, at the binding number its pass's GLSL fixes it to. The numbers are not an index +/// into this list: three of the seventeen passes leave gaps where the SDK's HLSL root signature +/// needed a slot the GLSL does not declare. +struct Bind { + uint16_t binding; + Kind kind; +}; + +struct PassInfo { + const char* name; + const uint32_t* spv; + size_t spv_bytes; + const Bind* binds; + size_t bind_count; + bool sampler; ///< declares the linear clamp sampler at binding 1000 +}; + +// Optical flow. Seven passes, no samplers. +constexpr Bind OF_PREPARE_LUMA[]{{0, T}, {1, I}, {2, U}}; +constexpr Bind OF_LUMINANCE_PYRAMID[]{{0, I}, {1, I}, {2, I}, {3, I}, {4, I}, + {5, I}, {6, I}, {7, U}, {8, U}}; +constexpr Bind OF_SCD_HISTOGRAM[]{{0, T}, {1, I}, {2, U}}; +constexpr Bind OF_SCD_DIVERGENCE[]{{0, I}, {1, I}, {2, I}, {3, I}, {4, U}}; +constexpr Bind OF_SEARCH[]{{0, T}, {1, T}, {2, I}, {3, I}, {4, U}}; +constexpr Bind OF_FILTER[]{{0, T}, {1, I}, {2, U}}; +constexpr Bind OF_SCALE[]{{0, T}, {1, T}, {2, T}, {3, I}, {4, I}, {5, U}}; + +// Frame interpolation. Ten passes, each with the linear clamp sampler. +constexpr Bind FI_RECONSTRUCT_AND_DILATE[]{{0, T}, {1, T}, {2, I}, {3, I}, {4, I}, {5, U}}; +constexpr Bind FI_SETUP[]{{0, T}, {1, I}, {2, I}, {3, I}, {4, I}, {5, I}, {6, B}, {7, U}}; +constexpr Bind FI_RECONSTRUCT_PREVIOUS_DEPTH[]{{0, T}, {1, T}, {2, T}, {3, T}, {4, I}, {5, U}}; +constexpr Bind FI_GAME_MOTION_VECTOR_FIELD[]{{0, T}, {1, T}, {2, T}, {3, T}, + {4, T}, {5, I}, {6, I}, {7, U}}; +/// The game vector field's inpainting pyramid: two textures, the counter buffer, thirteen mip +/// levels, then both constant blocks. The pyramid is a single-pass downsampler, which is why it +/// wants every level bound at once and why it reads back level 5 through the same storage images. +constexpr Bind FI_GAME_VECTOR_FIELD_PYRAMID[]{ + {0, T}, {1, T}, {2, B}, {3, I}, {4, I}, {5, I}, + {6, I}, {7, I}, {8, I}, {9, I}, {10, I}, {11, I}, + {12, I}, {13, I}, {14, I}, {15, I}, {16, U}, {17, U}}; +/// Binding 5 is not declared by this pass: the SDK's HLSL has an optical-flow debug view there and +/// the GLSL leaves the slot out, so the list jumps from 4 to 6. +constexpr Bind FI_OPTICAL_FLOW_VECTOR_FIELD[]{{0, T}, {1, T}, {2, T}, {3, T}, + {4, T}, {6, I}, {7, I}, {8, U}}; +constexpr Bind FI_DISOCCLUSION_MASK[]{{0, T}, {1, T}, {2, T}, {3, T}, {4, T}, + {5, T}, {6, T}, {7, I}, {8, U}}; +constexpr Bind FI_INTERPOLATE[]{{0, T}, {1, T}, {2, T}, {3, T}, {4, T}, {5, T}, + {6, T}, {7, T}, {8, B}, {9, I}, {10, U}}; +constexpr Bind FI_INPAINTING_PYRAMID[]{{0, T}, {1, B}, {2, I}, {3, I}, {4, I}, {5, I}, + {6, I}, {7, I}, {8, I}, {9, I}, {10, I}, {11, I}, + {12, I}, {13, I}, {14, I}, {15, U}, {16, U}}; +/// Bindings 4 to 6 are the HUD-less and UI inputs this game does not have, which the GLSL does not +/// declare, so the output jumps to 7. +constexpr Bind FI_INPAINTING[]{{0, T}, {1, T}, {2, T}, {3, T}, {7, I}, {8, U}}; + +#define PASS(n, spv, b, s) PassInfo{n, spv, sizeof spv, b, sizeof b / sizeof b[0], s} + +/// The passes, in the order PassId numbers them. +const PassInfo PASSES[]{ + PASS("of prepare_luma", FSR3_OF_PREPARE_LUMA_COMP_SPV, OF_PREPARE_LUMA, false), + PASS("of luminance_pyramid", FSR3_OF_LUMINANCE_PYRAMID_COMP_SPV, OF_LUMINANCE_PYRAMID, false), + PASS("of scd_histogram", FSR3_OF_GENERATE_SCD_HISTOGRAM_COMP_SPV, OF_SCD_HISTOGRAM, false), + PASS("of scd_divergence", FSR3_OF_COMPUTE_SCD_DIVERGENCE_COMP_SPV, OF_SCD_DIVERGENCE, false), + PASS("of search", FSR3_OF_COMPUTE_OPTICAL_FLOW_V5_COMP_SPV, OF_SEARCH, false), + PASS("of filter", FSR3_OF_FILTER_OPTICAL_FLOW_V5_COMP_SPV, OF_FILTER, false), + PASS("of scale", FSR3_OF_SCALE_OPTICAL_FLOW_V5_COMP_SPV, OF_SCALE, false), + PASS("fi reconstruct_and_dilate", FSR3_FI_RECONSTRUCT_AND_DILATE_COMP_SPV, + FI_RECONSTRUCT_AND_DILATE, true), + PASS("fi setup", FSR3_FI_SETUP_COMP_SPV, FI_SETUP, true), + PASS("fi reconstruct_previous_depth", FSR3_FI_RECONSTRUCT_PREVIOUS_DEPTH_COMP_SPV, + FI_RECONSTRUCT_PREVIOUS_DEPTH, true), + PASS("fi game_motion_vector_field", FSR3_FI_GAME_MOTION_VECTOR_FIELD_COMP_SPV, + FI_GAME_MOTION_VECTOR_FIELD, true), + PASS("fi game_vector_field_pyramid", FSR3_FI_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_COMP_SPV, + FI_GAME_VECTOR_FIELD_PYRAMID, true), + PASS("fi optical_flow_vector_field", FSR3_FI_OPTICAL_FLOW_VECTOR_FIELD_COMP_SPV, + FI_OPTICAL_FLOW_VECTOR_FIELD, true), + PASS("fi disocclusion_mask", FSR3_FI_DISOCCLUSION_MASK_COMP_SPV, FI_DISOCCLUSION_MASK, true), + PASS("fi interpolate", FSR3_FI_INTERPOLATE_COMP_SPV, FI_INTERPOLATE, true), + PASS("fi inpainting_pyramid", FSR3_FI_INPAINTING_PYRAMID_COMP_SPV, FI_INPAINTING_PYRAMID, true), + PASS("fi inpainting", FSR3_FI_INPAINTING_COMP_SPV, FI_INPAINTING, true), +}; +#undef PASS + +enum PassId : size_t { + P_OF_PREPARE_LUMA, + P_OF_LUMINANCE_PYRAMID, + P_OF_SCD_HISTOGRAM, + P_OF_SCD_DIVERGENCE, + P_OF_SEARCH, + P_OF_FILTER, + P_OF_SCALE, + P_FI_RECONSTRUCT_AND_DILATE, + P_FI_SETUP, + P_FI_RECONSTRUCT_PREVIOUS_DEPTH, + P_FI_GAME_MOTION_VECTOR_FIELD, + P_FI_GAME_VECTOR_FIELD_PYRAMID, + P_FI_OPTICAL_FLOW_VECTOR_FIELD, + P_FI_DISOCCLUSION_MASK, + P_FI_INTERPOLATE, + P_FI_INPAINTING_PYRAMID, + P_FI_INPAINTING, + P_COUNT, +}; +static_assert(sizeof PASSES / sizeof PASSES[0] == P_COUNT, "PassId must name every pass"); + +// ---- the constant blocks ---- + +/// cbFI, exactly as ffx_frameinterpolation_private.h lays out FrameInterpolationConstants and as the +/// std140 block in ffx_frameinterpolation_callbacks_glsl.h reads it. Every pass reads it by offset, +/// so a field out of place is a wrong picture and not a compile error; the size is asserted because +/// that is the one part of the layout a compiler can check for us. +struct Constants { + int32_t render_size[2]; + int32_t display_size[2]; + float display_size_rcp[2]; + float camera_near; + float camera_far; + int32_t upscaler_target_size[2]; + int32_t mode; + int32_t reset; + float device_to_view_depth[4]; + float delta_time; + int32_t hudless_attached_factor; + int32_t distortion_field_size[2]; + float optical_flow_scale[2]; + int32_t optical_flow_block_size; + uint32_t dispatch_flags; + int32_t max_render_size[2]; + int32_t optical_flow_half_res_mode; + int32_t num_instances; + int32_t interpolation_rect_base[2]; + int32_t interpolation_rect_size[2]; + float debug_bar_color[3]; + uint32_t back_buffer_transfer_function; + float min_max_luminance[2]; + float tan_half_fov; + int32_t pad1; + float jitter[2]; + float motion_vector_scale[2]; +}; +static_assert(sizeof(Constants) == 176, "cbFI must match the SDK's layout"); + +/// cbInpaintingPyramid: the single-pass downsampler's setup, staged twice a frame because the two +/// pyramid passes downsample rectangles of different sizes. +struct PyramidConstants { + uint32_t mips; + uint32_t num_work_groups; + uint32_t work_group_offset[2]; +}; +static_assert(sizeof(PyramidConstants) == 16, "cbInpaintingPyramid must match the SDK's layout"); + +/// cbOF, as ffx_opticalflow_private.h lays out OpticalflowConstants. The pyramid level in it changes +/// between dispatches, which is why there is a slot per level below rather than one block a frame. +struct OfConstants { + int32_t input_luma_resolution[2]; + uint32_t pyramid_level; + uint32_t pyramid_level_count; + int32_t frame_index; + uint32_t back_buffer_transfer_function; + float min_max_luminance[2]; +}; +static_assert(sizeof(OfConstants) == 32, "cbOF must match the SDK's layout"); + +/// cbOF_SPD. Only numWorkGroupOpticalFlowInputPyramid is read by the luma pyramid (its mip count is +/// fixed at six in the shader itself), but the whole block is written because the GLSL declares it. +struct OfSpdConstants { + uint32_t mips; + uint32_t num_work_groups; + uint32_t work_group_offset[2]; + uint32_t num_work_groups_pyramid; + uint32_t pad0, pad1, pad2; +}; +static_assert(sizeof(OfSpdConstants) == 32, "cbOF_SPD must match the SDK's layout"); + +// ---- state ---- + +constexpr uint32_t kMaxMade = 1; ///< one midpoint frame between two of the game's (vk_fsr3fi.h) +constexpr uint32_t kOfLevels = 7; ///< advancedAlgorithmIterations in ffx_opticalflow.cpp +constexpr uint32_t kOfBlockSize = 8; ///< opticalFlowBlockSize, likewise +constexpr uint32_t kPyramidMips = 13; ///< the mip UAVs the two inpainting pyramid passes declare +constexpr uint32_t kScdHistogramWidth = 256 * (3 * 3); ///< HistogramBins * HistogramsPerDim^2 +constexpr uint32_t kCountersBytes = 16; ///< two uints, rounded up: COUNTER_SPD and the reset index +constexpr uint32_t kUniformFrames = 4; ///< (more than the swapchain's images in flight) + +struct Pipeline { + VkDescriptorSetLayout set = VK_NULL_HANDLE; + VkPipelineLayout layout = VK_NULL_HANDLE; + VkPipeline pipeline = VK_NULL_HANDLE; +}; + +struct Image { + VkImage image = VK_NULL_HANDLE; + VmaAllocation memory = nullptr; + VkImageView view = VK_NULL_HANDLE; ///< every level + std::vector levels; ///< one per level, for the mipped ones + uint32_t width = 0, height = 0, level_count = 1; + VkFormat format = VK_FORMAT_UNDEFINED; +}; + +/// One descriptor of a dispatch: an image view, or a range of a buffer. +struct Resource { + VkImageView view = VK_NULL_HANDLE; + VkBuffer buffer = VK_NULL_HANDLE; + VkDeviceSize offset = 0; + VkDeviceSize size = 0; +}; + +struct State { + bool tried = false; + bool ok = false; + /// An allocation failed once: the images are not re-made every frame afterwards, because a + /// device that could not find the memory for them this frame will not find it in sixteen + /// milliseconds and the retry would be a stall a frame for the rest of the run. + bool failed = false; + Pipeline passes[P_COUNT]; + VkSampler linear = VK_NULL_HANDLE; + + // Optical flow's internal images. The luma pyramids ping-pong on frame parity: one holds this + // frame's luma and the other the frame before it, which is the pair the search works on. + Image of_luma[2]; ///< R8_UINT at display size, seven levels + Image of_flow[2][kOfLevels]; ///< R16G16_SINT, one image a level (see make_sizes) + Image of_vector; ///< the flow the interpolation reads, at level 0's size + Image of_confidence; ///< zero: this flow produces none, and the SDK binds none + Image of_scd_histogram, of_scd_previous_histogram, of_scd_temp, of_scd_output; + + // Frame interpolation's internal images. The first three are the SDK's "shared" resources, which + // its own FSR3 pairing fills from the upscaler; here the reconstruct-and-dilate pass fills them. + Image fi_dilated_depth, fi_dilated_motion_vectors, fi_reconstructed_depth_previous; + Image fi_reconstructed_depth_interpolated; + Image fi_game_mv_x, fi_game_mv_y, fi_of_mv_x, fi_of_mv_y; + Image fi_disocclusion_mask, fi_inpainting_pyramid; + Image fi_previous_source; ///< the frame before this one, at display size + Image fi_distortion_field; ///< 1x1 and zero: this game has no lens distortion + Image made[kMaxMade]; + + // The counters the two pyramid passes and the setup pass share: a storage buffer, not an image, + // because that is what the GLSL declares (FrameInterpolationRWCounters_t). + VkBuffer counters = VK_NULL_HANDLE; + VmaAllocation counters_memory = nullptr; + + uint32_t width = 0, height = 0, render_width = 0, render_height = 0; + VkFormat present_format = VK_FORMAT_UNDEFINED; + uint32_t ready = 0; ///< how many of `made` exist + uint32_t flow_width[kOfLevels]{}, flow_height[kOfLevels]{}; + + // The uniform buffer the four constant blocks are written into, with a set of slots per frame in + // flight so writing one frame cannot disturb a frame still being read. + VkBuffer uniforms = VK_NULL_HANDLE; + VmaAllocation uniforms_memory = nullptr; + void* uniforms_mapped = nullptr; + VkDeviceSize slot_fi = 0, slot_pyramid = 0, slot_of = 0, slot_of_spd = 0, frame_stride = 0; + uint32_t uniform_frame = 0; + + uint32_t parity = 0; + int32_t of_frame_index = 0; + bool first_frame = true; + uint64_t sequence = 0; ///< Inputs::sequence of the frame kept as the previous source + bool in_general = false; ///< the UNDEFINED -> GENERAL barriers have been recorded +}; + +State g; + +constexpr VkImageSubresourceRange ALL_LEVELS{VK_IMAGE_ASPECT_COLOR_BIT, 0, VK_REMAINING_MIP_LEVELS, + 0, 1}; + +/// The Frame generation row at 2x asks for this backend's one made frame; RX_VK_FSR_FG=0 never, =1 over the row. The row +/// is read every time: a player turning frame generation on mid-game gets it on the next frame, not the next launch. +uint32_t asked() { + static const int env = []() { + const char* e = getenv("RX_VK_FSR_FG"); + return e && *e ? std::max(0, atoi(e)) : -1; + }(); + if (env >= 0) return env ? 1u : 0u; + return opts.framegen == 2 ? 1u : 0u; +} + +/// A memory dependency over the whole queue, in the synchronization2 form this renderer loads. +void memory_barrier(VkCommandBuffer cmd, VkPipelineStageFlags2 src_stage, VkAccessFlags2 src, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst) { + VkMemoryBarrier2 b{VK_STRUCTURE_TYPE_MEMORY_BARRIER_2}; + b.srcStageMask = src_stage, b.srcAccessMask = src; + b.dstStageMask = dst_stage, b.dstAccessMask = dst; + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.memoryBarrierCount = 1, di.pMemoryBarriers = &b; + vkCmdPipelineBarrier2(cmd, &di); +} + +// (images of an earlier size, freed once the presents that may still read them are done: texture_frame_no) +std::vector> dead; + +void destroy_now(Image& t) { + for (VkImageView v : t.levels) vkDestroyImageView(dev.device, v, nullptr); + if (t.view) vkDestroyImageView(dev.device, t.view, nullptr); + if (t.image) mkwvk::destroy_image(t.image, t.memory); + t = Image{}; +} + +/// An image let go: destroyed a few presents on, as work recorded with it may still be in flight +void drop_image(Image& t) { + if (t.image) dead.push_back({texture_frame_no(), std::move(t)}); + t = Image{}; +} + +void free_dead() { + const uint64_t now = texture_frame_no(); + for (size_t i = 0; i < dead.size();) { + if (now - dead[i].first > 4) { + destroy_now(dead[i].second); + dead[i] = std::move(dead.back()); + dead.pop_back(); + } else { + i++; + } + } +} + +/// One of the SDK's internal images: storage and sampled, GENERAL throughout, with a view per level +/// when it has more than one (both pyramids bind their levels separately while the passes that read +/// a pyramid read it as one mipped texture). +bool make_image(Image& t, VkFormat format, uint32_t width, uint32_t height, uint32_t levels = 1) { + drop_image(t); + t.format = format, t.width = std::max(1u, width), t.height = std::max(1u, height); + t.level_count = std::max(1u, levels); + VkImageCreateInfo ci{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + ci.imageType = VK_IMAGE_TYPE_2D; + ci.format = format; + ci.extent = {t.width, t.height, 1}; + ci.mipLevels = t.level_count; + ci.arrayLayers = 1; + ci.samples = VK_SAMPLE_COUNT_1_BIT; + ci.tiling = VK_IMAGE_TILING_OPTIMAL; + // (TRANSFER_SRC as well as DST: the made frames are blitted out of by the present path, and a + // made frame of a repeated set is copied from the first one, so both directions are asked for + // everywhere rather than tracked per image) + ci.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + ci.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + if (!create_image(ci, t.image, t.memory, false)) { + logf("vk: fsr3fi: a %ux%u image (format %d) was not made", t.width, t.height, (int)format); + return false; + } + VkImageViewCreateInfo vi{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + vi.image = t.image; + vi.viewType = VK_IMAGE_VIEW_TYPE_2D; + vi.format = format; + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, t.level_count, 0, 1}; + if (vkCreateImageView(dev.device, &vi, nullptr, &t.view) != VK_SUCCESS) return false; + if (t.level_count > 1) { + for (uint32_t level = 0; level < t.level_count; level++) { + vi.subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, level, 1, 0, 1}; + VkImageView v = VK_NULL_HANDLE; + if (vkCreateImageView(dev.device, &vi, nullptr, &v) != VK_SUCCESS) return false; + t.levels.push_back(v); + } + } + return true; +} + +bool make_pipeline(Pipeline& p, const PassInfo& info) { + std::vector bindings; + bindings.reserve(info.bind_count + 1); + for (size_t i = 0; i < info.bind_count; i++) { + VkDescriptorType type = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE; + switch (info.binds[i].kind) { + case T: type = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE; break; + case I: type = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; break; + case U: type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; break; + case B: type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; break; + } + bindings.push_back({info.binds[i].binding, type, 1, VK_SHADER_STAGE_COMPUTE_BIT, nullptr}); + } + if (info.sampler) + bindings.push_back({1000, VK_DESCRIPTOR_TYPE_SAMPLER, 1, VK_SHADER_STAGE_COMPUTE_BIT, + nullptr}); + VkDescriptorSetLayoutCreateInfo li{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + li.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + li.bindingCount = (uint32_t)bindings.size(); + li.pBindings = bindings.data(); + if (vkCreateDescriptorSetLayout(dev.device, &li, nullptr, &p.set) != VK_SUCCESS) return false; + VkPipelineLayoutCreateInfo pi{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + pi.setLayoutCount = 1, pi.pSetLayouts = &p.set; + if (vkCreatePipelineLayout(dev.device, &pi, nullptr, &p.layout) != VK_SUCCESS) return false; + VkShaderModuleCreateInfo mi{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; + mi.codeSize = info.spv_bytes; + mi.pCode = info.spv; + VkShaderModule m = VK_NULL_HANDLE; + if (vkCreateShaderModule(dev.device, &mi, nullptr, &m) != VK_SUCCESS) return false; + VkComputePipelineCreateInfo ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + ci.stage = {VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, nullptr, 0, + VK_SHADER_STAGE_COMPUTE_BIT, m, "main", nullptr}; + ci.layout = p.layout; + const VkResult made = + vkCreateComputePipelines(dev.device, VK_NULL_HANDLE, 1, &ci, nullptr, &p.pipeline); + vkDestroyShaderModule(dev.device, m, nullptr); + if (made != VK_SUCCESS) { + logf("vk: fsr3fi: the %s pass pipeline was not made (%d)", info.name, (int)made); + p.pipeline = VK_NULL_HANDLE; + return false; + } + return true; +} + +/// The one sampler the interpolation passes declare: linear, clamped to the edge. It is the only +/// filtered read in the whole chain (the colour sources and the disocclusion mask are sampled in UV +/// space); every other load is a texelFetch and needs no sampler at all. +bool make_sampler() { + VkSamplerCreateInfo si{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + si.addressModeU = si.addressModeV = si.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + si.minLod = 0.0f, si.maxLod = VK_LOD_CLAMP_NONE; + si.magFilter = si.minFilter = VK_FILTER_LINEAR; + si.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + return vkCreateSampler(dev.device, &si, nullptr, &g.linear) == VK_SUCCESS; +} + +/// Every storage format the internal images need. A device missing one cannot run the passes, and +/// finding that out here is better than a failed image allocation in the middle of a frame. +bool formats_supported() { + static const VkFormat needed[]{ + VK_FORMAT_R8_UINT, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R16G16_SINT, + VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R32_UINT, VK_FORMAT_R32_SFLOAT, + VK_FORMAT_R16G16B16A16_SFLOAT, + }; + for (VkFormat f : needed) { + VkFormatProperties props{}; + vkGetPhysicalDeviceFormatProperties(dev.physical, f, &props); + if (!(props.optimalTilingFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) || + !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { + logf("vk: fsr3fi: format %d cannot be a storage and sampled image here", (int)f); + return false; + } + } + return true; +} + +/// The device features the compiled passes ask for by capability, which is why they are checked here +/// rather than assumed. The interpolation and inpainting passes write (and the inpainting pass also +/// reads) the output image through an image declared with no format qualifier, because the SDK lets +/// the application choose the backbuffer's format; that compiles to StorageImageRead/ +/// WriteWithoutFormat. Most of the internal images are in formats outside Vulkan's mandatory storage +/// set, which is StorageImageExtendedFormats. And both single-pass downsamplers and the flow search +/// use subgroup arithmetic and quad operations. +bool features_supported() { + if (!dev.features.shaderStorageImageWriteWithoutFormat || + !dev.features.shaderStorageImageReadWithoutFormat) { + logf("vk: fsr3fi: this GPU cannot read or write a storage image without a format, which the " + "interpolation and inpainting passes need for the frame they write"); + return false; + } + if (!dev.features.shaderStorageImageExtendedFormats) { + logf("vk: fsr3fi: this GPU has no extended storage image formats"); + return false; + } + VkPhysicalDeviceSubgroupProperties sg{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES}; + VkPhysicalDeviceProperties2 p2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}; + p2.pNext = &sg; + vkGetPhysicalDeviceProperties2(dev.physical, &p2); + const VkSubgroupFeatureFlags want = VK_SUBGROUP_FEATURE_BASIC_BIT | + VK_SUBGROUP_FEATURE_ARITHMETIC_BIT | + VK_SUBGROUP_FEATURE_QUAD_BIT; + if ((sg.supportedOperations & want) != want || + !(sg.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT)) { + logf("vk: fsr3fi: this GPU's compute stage lacks the subgroup arithmetic or quad operations " + "the pyramid and flow search passes were compiled with (%#x)", + (unsigned)sg.supportedOperations); + return false; + } + // The widest pass pushes eighteen descriptors and the sampler; a device that cannot take them + // in one push would need a descriptor pool, which is a different backend from this one. + uint32_t widest = 0; + for (const PassInfo& p : PASSES) + widest = std::max(widest, (uint32_t)p.bind_count + (p.sampler ? 1u : 0u)); + if (dev.max_push_descriptors < widest) { + logf("vk: fsr3fi: this GPU takes %u push descriptors and a pass needs %u", + dev.max_push_descriptors, widest); + return false; + } + return true; +} + +/// The uniform buffer the four constant blocks are written into: host visible and mapped, with a set +/// of slots per frame in flight. cbOF gets one slot per pyramid level plus one for the passes before +/// the pyramid, because the flow walks its levels from the top down and each level's dispatches read +/// a block that names the level they are on. +bool make_uniforms() { + const VkDeviceSize align = + std::max(dev.props.limits.minUniformBufferOffsetAlignment, 16); + const auto round_up = [align](VkDeviceSize n) { return (n + align - 1) / align * align; }; + g.slot_fi = round_up(sizeof(Constants)); + g.slot_pyramid = round_up(sizeof(PyramidConstants)); + g.slot_of = round_up(sizeof(OfConstants)); + g.slot_of_spd = round_up(sizeof(OfSpdConstants)); + g.frame_stride = g.slot_fi + 2 * g.slot_pyramid + (kOfLevels + 1) * g.slot_of + g.slot_of_spd; + return create_buffer(g.frame_stride * kUniformFrames, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, true, + g.uniforms, g.uniforms_memory, &g.uniforms_mapped); +} + +/// Records one pass: its descriptors pushed at the binding numbers its GLSL fixes them to, then the +/// sampler it declares (when it declares one), then the dispatch. +void record_pass(VkCommandBuffer cmd, size_t pass, const Resource* res, size_t count, uint32_t gx, + uint32_t gy, uint32_t gz = 1) { + const PassInfo& info = PASSES[pass]; + const Pipeline& p = g.passes[pass]; + std::vector images(count); + std::vector buffers(count); + std::vector writes; + writes.reserve(count + 1); + for (size_t i = 0; i < count; i++) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = info.binds[i].binding; + w.descriptorCount = 1; + if (info.binds[i].kind == U || info.binds[i].kind == B) { + buffers[i] = {res[i].buffer, res[i].offset, res[i].size}; + w.descriptorType = info.binds[i].kind == U ? VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER + : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + w.pBufferInfo = &buffers[i]; + } else { + images[i] = {VK_NULL_HANDLE, res[i].view, VK_IMAGE_LAYOUT_GENERAL}; + w.descriptorType = info.binds[i].kind == T ? VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE + : VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + w.pImageInfo = &images[i]; + } + writes.push_back(w); + } + const VkDescriptorImageInfo linear{g.linear, VK_NULL_HANDLE, VK_IMAGE_LAYOUT_UNDEFINED}; + if (info.sampler) { + VkWriteDescriptorSet w{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + w.dstBinding = 1000; + w.descriptorCount = 1; + w.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER; + w.pImageInfo = &linear; + writes.push_back(w); + } + // (one timed span per pass with RX_VK_PASS_TIMING=1: seventeen dispatches a frame needs a number + // per pass name, not another hypothesis about which of them costs) + const bool timed = gprof_begin(cmd); + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.pipeline); + vkCmdPushDescriptorSetKHR(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, p.layout, 0, + (uint32_t)writes.size(), writes.data()); + vkCmdDispatch(cmd, std::max(1u, gx), std::max(1u, gy), std::max(1u, gz)); + if (timed) gprof_end(cmd, std::string("fsr3fi ") + info.name); + // (every pass reads what the one before it wrote, and the two pyramids read back their own + // levels across workgroups) + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); +} + +/// ffxSpdSetup from ffx_spd.h: the thread group count over a rectangle in 64x64 tiles, the offset of +/// the first tile, and how many mips the downsampler is to write. `mips` below zero asks for the +/// count the rectangle's size implies, which is what both inpainting pyramids pass. +void spd_setup(uint32_t width, uint32_t height, uint32_t* groups, uint32_t* offset, uint32_t* mips, + int fixed_mips = -1) { + offset[0] = offset[1] = 0; + groups[0] = (std::max(1u, width) - 1) / 64 + 1; + groups[1] = (std::max(1u, height) - 1) / 64 + 1; + if (fixed_mips >= 0) { + *mips = (uint32_t)fixed_mips; + return; + } + const float resolution = (float)std::max(std::max(1u, width), std::max(1u, height)); + *mips = (uint32_t)std::min(std::floor(std::log2(resolution)), 12.0f); +} + +/// Every image this backend owns, in one list, so the one-time layout transition, the reset clears +/// and a failed make all walk the same set and none of them can forget one. +std::vector all_images() { + std::vector all{&g.of_luma[0], + &g.of_luma[1], + &g.of_vector, + &g.of_confidence, + &g.of_scd_histogram, + &g.of_scd_previous_histogram, + &g.of_scd_temp, + &g.of_scd_output, + &g.fi_dilated_depth, + &g.fi_dilated_motion_vectors, + &g.fi_reconstructed_depth_previous, + &g.fi_reconstructed_depth_interpolated, + &g.fi_game_mv_x, + &g.fi_game_mv_y, + &g.fi_of_mv_x, + &g.fi_of_mv_y, + &g.fi_disocclusion_mask, + &g.fi_inpainting_pyramid, + &g.fi_previous_source, + &g.fi_distortion_field}; + for (uint32_t i = 0; i < 2; i++) + for (uint32_t l = 0; l < kOfLevels; l++) all.push_back(&g.of_flow[i][l]); + for (uint32_t i = 0; i < kMaxMade; i++) + if (g.made[i].image) all.push_back(&g.made[i]); + return all; +} + +void clear_images(VkCommandBuffer cmd, std::initializer_list images) { + const VkClearColorValue zero{}; + for (const Image* t : images) + if (t->image) + vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); +} + +} // namespace + +/// What this device can do, which cannot change while it runs: asked once and kept. +bool capable() { + if (!dev.device) return false; // (asked before the device is made, by the menu: not an answer to keep) + static const bool yes = []() { + if (!dev.push_descriptor || !vkCmdPushDescriptorSetKHR) { + logf("vk: fsr3fi: no push descriptors"); + return false; + } + if (!formats_supported() || !features_supported()) return false; + logf("vk: fsr3fi: AMD FSR 3.1 frame interpolation can run on this GPU"); + return true; + }(); + return yes; +} + +uint32_t frames_wanted() { + // (the row first: a device is not asked anything, and nothing is logged, while frame generation is not at 2x) + return asked() && capable() ? 1u : 0u; +} + +bool prepare(uint32_t width, uint32_t height, uint32_t render_width, uint32_t render_height, + VkFormat present_format) { + if (!capable() || g.failed) return false; + if (!width || !height || !render_width || !render_height) return false; + if (present_format == VK_FORMAT_UNDEFINED) return false; + // The frame this backend writes is in the format it is presented in, because it is shown as a + // frame and not read back into the game's target, and the interpolation and inpainting passes + // write it through a storage image. A presented format that cannot be one is the end of it. + { + VkFormatProperties props{}; + vkGetPhysicalDeviceFormatProperties(dev.physical, present_format, &props); + if (!(props.optimalTilingFeatures & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT) || + !(props.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { + logf("vk: fsr3fi: the presented format %d cannot be a storage and sampled image here", + (int)present_format); + g.failed = true; + return false; + } + } + if (!g.tried) { + g.tried = true; + // (TRANSFER_DST: the counters are zeroed with vkCmdFillBuffer before the first frame) + g.ok = make_sampler() && make_uniforms() && + create_buffer(kCountersBytes, + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, + false, g.counters, g.counters_memory, nullptr); + for (size_t i = 0; i < P_COUNT && g.ok; i++) g.ok = make_pipeline(g.passes[i], PASSES[i]); + if (g.ok) logf("vk: fsr3fi: %d pass pipelines ready", (int)P_COUNT); + } + if (!g.ok) return false; + const uint32_t n = kMaxMade; + if (g.ready == n && g.width == width && g.height == height && + g.render_width == render_width && g.render_height == render_height && + g.present_format == present_format) + return true; + + const uint32_t rw = render_width, rh = render_height, uw = width, uh = height; + // The flow pyramid's levels are halved rounding up, which is not what a mip chain does: the SDK + // allocates a texture a level for exactly this reason, and so does this. The luma pyramid's + // levels are halved rounding down, which is a mip chain, so that one is a single mipped image. + g.flow_width[0] = (uw + kOfBlockSize - 1) / kOfBlockSize; + g.flow_height[0] = (uh + kOfBlockSize - 1) / kOfBlockSize; + for (uint32_t l = 1; l < kOfLevels; l++) { + g.flow_width[l] = (g.flow_width[l - 1] + 1) / 2; + g.flow_height[l] = (g.flow_height[l - 1] + 1) / 2; + } + const uint32_t pyramid_w = std::max(1u, uw / 2), pyramid_h = std::max(1u, uh / 2); + const uint32_t pyramid_levels = std::min( + kPyramidMips, + (uint32_t)std::floor(std::log2((float)std::max(pyramid_w, pyramid_h))) + 1u); + + // Seven luma levels is what the flow asks for, but a window smaller than 64 pixels has fewer + // mips than that; `level()` clamps the index, so a short chain costs accuracy at the coarsest + // levels rather than an invalid image. + const uint32_t luma_levels = std::min( + kOfLevels, (uint32_t)std::floor(std::log2((float)std::max(uw, uh))) + 1u); + + bool made = true; + for (uint32_t i = 0; i < 2 && made; i++) { + made = made && make_image(g.of_luma[i], VK_FORMAT_R8_UINT, uw, uh, luma_levels); + for (uint32_t l = 0; l < kOfLevels && made; l++) + made = made && make_image(g.of_flow[i][l], VK_FORMAT_R16G16_SINT, g.flow_width[l], + g.flow_height[l]); + } + made = made && make_image(g.of_vector, VK_FORMAT_R16G16_SINT, g.flow_width[0], g.flow_height[0]); + // The flow this backend records carries no per-block confidence, and neither does the SDK's: its + // own dispatch leaves the binding null and the pass reads zero through it. A cleared image of the + // flow's own size is the same answer with every fetch in bounds. + made = made && make_image(g.of_confidence, VK_FORMAT_R32_UINT, g.flow_width[0], g.flow_height[0]); + made = made && make_image(g.of_scd_histogram, VK_FORMAT_R32_UINT, kScdHistogramWidth, 1); + made = made && make_image(g.of_scd_previous_histogram, VK_FORMAT_R32_SFLOAT, kScdHistogramWidth, 1); + made = made && make_image(g.of_scd_temp, VK_FORMAT_R32_UINT, 3, 1); + made = made && make_image(g.of_scd_output, VK_FORMAT_R32_UINT, 3, 1); + + made = made && make_image(g.fi_dilated_depth, VK_FORMAT_R32_SFLOAT, rw, rh); + made = made && make_image(g.fi_dilated_motion_vectors, VK_FORMAT_R16G16_SFLOAT, rw, rh); + made = made && make_image(g.fi_reconstructed_depth_previous, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_reconstructed_depth_interpolated, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_game_mv_x, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_game_mv_y, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_of_mv_x, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_of_mv_y, VK_FORMAT_R32_UINT, rw, rh); + made = made && make_image(g.fi_disocclusion_mask, VK_FORMAT_R8G8_UNORM, rw, rh); + made = made && make_image(g.fi_inpainting_pyramid, VK_FORMAT_R16G16B16A16_SFLOAT, pyramid_w, + pyramid_h, pyramid_levels); + made = made && make_image(g.fi_previous_source, present_format, uw, uh); + made = made && make_image(g.fi_distortion_field, VK_FORMAT_R8G8_UNORM, 1, 1); + for (uint32_t i = 0; i < n && made; i++) + made = made && make_image(g.made[i], present_format, uw, uh); + for (uint32_t i = n; i < kMaxMade; i++) drop_image(g.made[i]); + if (!made) { + g.failed = true; + for (Image* t : all_images()) drop_image(*t); + for (Image& t : g.made) drop_image(t); + g.ready = 0; + g.width = g.height = g.render_width = g.render_height = 0; + return false; + } + g.width = uw, g.height = uh, g.render_width = rw, g.render_height = rh; + g.present_format = present_format; + g.ready = n; + g.in_general = false; + g.first_frame = true; + g.parity = 0; + g.of_frame_index = 0; + logf("vk: fsr3fi: %ux%u from %ux%u inputs, flow %ux%u, pyramid %ux%u with %u levels, %u made " + "frame(s) (format %d)", + uw, uh, rw, rh, g.flow_width[0], g.flow_height[0], pyramid_w, pyramid_h, pyramid_levels, n, + (int)present_format); + return true; +} + +bool generate(VkCommandBuffer cmd, const Inputs& in) { + free_dead(); + if (!frames_wanted()) return false; + if (!in.color || !in.color_image || !in.depth || !in.motion) return false; + if (in.color_format == VK_FORMAT_UNDEFINED) return false; + if (!in.width || !in.height || !in.render_width || !in.render_height) return false; + if (!(in.camera.device_to_view_depth[1] > 0.0f)) return false; // (no camera: vk_fsr3_inputs.cpp) + if (!prepare(in.width, in.height, in.render_width, in.render_height, in.color_format)) + return false; + + Image& out = g.made[0]; + if (!out.image) return false; + + // Everything this backend owns starts UNDEFINED and lives in GENERAL from here on, as the rest + // of this renderer's compute resources do. + if (!g.in_general) { + g.in_general = true; + std::vector to_general; + const std::vector all = all_images(); + to_general.reserve(all.size()); + for (const Image* t : all) { + if (!t->image) continue; + VkImageMemoryBarrier2 b{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}; + b.srcStageMask = VK_PIPELINE_STAGE_2_NONE; + b.dstStageMask = VK_PIPELINE_STAGE_2_TRANSFER_BIT; + b.dstAccessMask = VK_ACCESS_2_TRANSFER_WRITE_BIT; + b.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; + b.newLayout = VK_IMAGE_LAYOUT_GENERAL; + b.srcQueueFamilyIndex = b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.image = t->image; + b.subresourceRange = ALL_LEVELS; + to_general.push_back(b); + } + VkDependencyInfo di{VK_STRUCTURE_TYPE_DEPENDENCY_INFO}; + di.imageMemoryBarrierCount = (uint32_t)to_general.size(); + di.pImageMemoryBarriers = to_general.data(); + vkCmdPipelineBarrier2(cmd, &di); + const VkClearColorValue zero{}; + for (const Image* t : all) + if (t->image) + vkCmdClearColorImage(cmd, t->image, VK_IMAGE_LAYOUT_GENERAL, &zero, 1, &ALL_LEVELS); + vkCmdFillBuffer(cmd, g.counters, 0, kCountersBytes, 0); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + } + + const bool reset = in.reset || g.first_frame || in.sequence != g.sequence + 1; + g.first_frame = false; + g.sequence = in.sequence; // (this frame becomes the next one's previous source below, whatever else happens) + const int32_t rw = (int32_t)g.render_width, rh = (int32_t)g.render_height; + const int32_t uw = (int32_t)g.width, uh = (int32_t)g.height; + + // ---- the constant blocks ---- + + Constants k{}; + k.render_size[0] = rw, k.render_size[1] = rh; + k.display_size[0] = uw, k.display_size[1] = uh; + k.display_size_rcp[0] = 1.0f / (float)uw, k.display_size_rcp[1] = 1.0f / (float)uh; + k.camera_near = in.camera.near_plane; // (not read by the passes: set as the SDK sets them) + k.camera_far = in.camera.far_plane; + k.upscaler_target_size[0] = uw, k.upscaler_target_size[1] = uh; + k.mode = 0; + k.reset = reset ? 1 : 0; + memcpy(k.device_to_view_depth, in.camera.device_to_view_depth, sizeof k.device_to_view_depth); + k.delta_time = in.frame_time_ms; + k.hudless_attached_factor = 0; // (one colour, with whatever the game drew on it) + k.distortion_field_size[0] = 1, k.distortion_field_size[1] = 1; + // GetOpticalFlowSize() in the GLSL reads this back as (1 / scale) / block size, so the scale is + // the reciprocal of the display size and nothing else; it is also what turns a flow vector in + // luma pixels into the UV motion the vector field packs. + k.optical_flow_scale[0] = 1.0f / (float)uw, k.optical_flow_scale[1] = 1.0f / (float)uh; + k.optical_flow_block_size = (int32_t)kOfBlockSize; + k.dispatch_flags = 0; // (no debug view, no debug bar) + k.max_render_size[0] = rw, k.max_render_size[1] = rh; + k.optical_flow_half_res_mode = 0; + k.num_instances = 1; + k.interpolation_rect_base[0] = 0, k.interpolation_rect_base[1] = 0; + k.interpolation_rect_size[0] = uw, k.interpolation_rect_size[1] = uh; + // The colour this backend is handed is the window's, which this renderer presents as UNORM with + // the game's own encoding on it, so the SDK's sRGB transfer function is the right one and the + // luminance pair the other two functions would need is left at the SDR range. + k.back_buffer_transfer_function = 0; + k.min_max_luminance[0] = 0.0f, k.min_max_luminance[1] = 1.0f; + // fTanHalfFOV is the *horizontal* half angle's tangent, as ffxFrameInterpolationDispatch builds it from the vertical + // field of view and the render aspect: 1 / p[0][0] of the scene's projection (fsr3_math.h) + k.tan_half_fov = in.camera.tan_half_fov_x; + k.jitter[0] = in.jitter[0], k.jitter[1] = in.jitter[1]; + k.motion_vector_scale[0] = in.motion_scale[0] / (float)rw; + k.motion_vector_scale[1] = in.motion_scale[1] / (float)rh; + + // The two inpainting pyramids downsample different rectangles -- the game vector field's is at + // the render size and the frame's is at the display size -- so each gets its own block. + uint32_t game_groups[2], game_offset[2], game_mips = 0; + spd_setup((uint32_t)rw, (uint32_t)rh, game_groups, game_offset, &game_mips); + PyramidConstants game_pyramid{}; + game_pyramid.mips = game_mips; + game_pyramid.num_work_groups = game_groups[0] * game_groups[1]; + game_pyramid.work_group_offset[0] = game_offset[0]; + game_pyramid.work_group_offset[1] = game_offset[1]; + + uint32_t frame_groups[2], frame_offset[2], frame_mips = 0; + spd_setup((uint32_t)uw, (uint32_t)uh, frame_groups, frame_offset, &frame_mips); + PyramidConstants frame_pyramid{}; + frame_pyramid.mips = frame_mips; + frame_pyramid.num_work_groups = frame_groups[0] * frame_groups[1]; + frame_pyramid.work_group_offset[0] = frame_offset[0]; + frame_pyramid.work_group_offset[1] = frame_offset[1]; + + g.of_frame_index = reset ? 0 : g.of_frame_index + 1; + OfConstants of{}; + of.input_luma_resolution[0] = uw, of.input_luma_resolution[1] = uh; + of.pyramid_level = 0; + of.pyramid_level_count = kOfLevels; + of.frame_index = g.of_frame_index; + of.back_buffer_transfer_function = 0; + of.min_max_luminance[0] = 0.0f, of.min_max_luminance[1] = 1.0f; + + uint32_t luma_groups[2], luma_offset[2], luma_mips = 0; + // The luma pyramid's own shader hard-codes six mips, so the four the SDK asks ffxSpdSetup for + // here are never read; the work group count is, and this is where it comes from. + spd_setup((uint32_t)uw, (uint32_t)uh, luma_groups, luma_offset, &luma_mips, 4); + OfSpdConstants of_spd{}; + of_spd.mips = luma_mips; + of_spd.num_work_groups = luma_groups[0] * luma_groups[1]; + of_spd.work_group_offset[0] = luma_offset[0]; + of_spd.work_group_offset[1] = luma_offset[1]; + of_spd.num_work_groups_pyramid = of_spd.num_work_groups; + + // This frame's slots, written through the mapped buffer. + const VkDeviceSize base = (VkDeviceSize)(g.uniform_frame % kUniformFrames) * g.frame_stride; + g.uniform_frame++; + uint8_t* const mapped = (uint8_t*)g.uniforms_mapped + base; + const VkDeviceSize at_fi = 0; + const VkDeviceSize at_game_pyramid = at_fi + g.slot_fi; + const VkDeviceSize at_frame_pyramid = at_game_pyramid + g.slot_pyramid; + const VkDeviceSize at_of = at_frame_pyramid + g.slot_pyramid; + const VkDeviceSize at_of_spd = at_of + (kOfLevels + 1) * g.slot_of; + memcpy(mapped + at_fi, &k, sizeof k); + memcpy(mapped + at_game_pyramid, &game_pyramid, sizeof game_pyramid); + memcpy(mapped + at_frame_pyramid, &frame_pyramid, sizeof frame_pyramid); + memcpy(mapped + at_of, &of, sizeof of); // (slot 0: the passes before the flow's own pyramid) + for (uint32_t l = 0; l < kOfLevels; l++) { + OfConstants level = of; + level.pyramid_level = l; + memcpy(mapped + at_of + (VkDeviceSize)(l + 1) * g.slot_of, &level, sizeof level); + } + memcpy(mapped + at_of_spd, &of_spd, sizeof of_spd); + flush_mapped(g.uniforms_memory, g.frame_stride * kUniformFrames); + + const Resource cb_fi{VK_NULL_HANDLE, g.uniforms, base + at_fi, g.slot_fi}; + const Resource cb_game_pyramid{VK_NULL_HANDLE, g.uniforms, base + at_game_pyramid, + g.slot_pyramid}; + const Resource cb_frame_pyramid{VK_NULL_HANDLE, g.uniforms, base + at_frame_pyramid, + g.slot_pyramid}; + const Resource cb_of_spd{VK_NULL_HANDLE, g.uniforms, base + at_of_spd, g.slot_of_spd}; + const auto cb_of = [&](uint32_t slot) { + return Resource{VK_NULL_HANDLE, g.uniforms, base + at_of + (VkDeviceSize)slot * g.slot_of, + g.slot_of}; + }; + const Resource counters{VK_NULL_HANDLE, g.counters, 0, kCountersBytes}; + + // ---- the clears the SDK's dispatch records ---- + + { // (what the game's draws and the present path wrote has to be visible to the first pass) + memory_barrier(cmd, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT | + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | + VK_ACCESS_2_SHADER_WRITE_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_TRANSFER_BIT | VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT | + VK_ACCESS_2_TRANSFER_WRITE_BIT); + } + // The nearest-depth scratch is cleared every frame, to zero because the depth is reversed and + // the SDK clears it to the far value, which under a reversed depth is zero. + clear_images(cmd, {&g.fi_reconstructed_depth_previous}); + if (!reset) clear_images(cmd, {&g.fi_reconstructed_depth_interpolated}); + if (reset) { + // A cut, a load or a resize: every history the flow and the scene-change detector carry + // belongs to a scene that is gone, and the SDK clears exactly this set. + clear_images(cmd, {&g.of_scd_temp, &g.of_scd_output, &g.of_scd_histogram, + &g.of_scd_previous_histogram, &g.of_luma[0], &g.of_luma[1]}); + } + { + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_SHADER_WRITE_BIT); + } + + // ---- the optical flow, over this frame's luma and the frame before it ---- + + const auto tex = [](const Image& t) { return Resource{t.view}; }; + const auto level = [](const Image& t, uint32_t l) { + const size_t n = t.levels.size(); + return Resource{n ? t.levels[std::min(l, n - 1)] : t.view}; + }; + const auto groups = [](uint32_t size, uint32_t tile) { return (std::max(1u, size) + tile - 1) / tile; }; + const uint32_t p = g.parity, q = p ^ 1u; + const Resource color{in.color}; + + { // Two pixels across and two down a thread, which is where the double rounding comes from. + const Resource res[]{color, level(g.of_luma[p], 0), cb_of(0)}; + record_pass(cmd, P_OF_PREPARE_LUMA, res, 3, groups(groups((uint32_t)uw, 2), 16), + groups(groups((uint32_t)uh, 2), 16)); + } + { + const Resource res[]{level(g.of_luma[p], 0), level(g.of_luma[p], 1), + level(g.of_luma[p], 2), level(g.of_luma[p], 3), + level(g.of_luma[p], 4), level(g.of_luma[p], 5), + level(g.of_luma[p], 6), cb_of(0), cb_of_spd}; + record_pass(cmd, P_OF_LUMINANCE_PYRAMID, res, 9, luma_groups[0], luma_groups[1]); + } + { // Scene change detection: a 3x3 grid of strata, each with its own 256-bin histogram, then + // one dispatch that compares this frame's histograms with the last frame's. + const uint32_t strata_width = (uint32_t)uw / 4 / 3; + const Resource res[]{tex(g.of_luma[p]), tex(g.of_scd_histogram), cb_of(0)}; + record_pass(cmd, P_OF_SCD_HISTOGRAM, res, 3, groups(strata_width, 32), 16, 3 * 3); + } + { + const Resource res[]{tex(g.of_scd_histogram), tex(g.of_scd_previous_histogram), + tex(g.of_scd_temp), tex(g.of_scd_output), cb_of(0)}; + record_pass(cmd, P_OF_SCD_DIVERGENCE, res, 5, 3 * 3, 3); + } + // The search walks the pyramid from the coarsest level down, and the two flow images swap roles + // at every level as well as at every frame: the search writes A, the filter reads A and writes B, + // and the scale reads B and seeds the next level down. The index arithmetic is the SDK's + // (isOddFrame != isOddLevel), written as one exclusive or. + for (int32_t l = (int32_t)kOfLevels - 1; l >= 0; l--) { + const uint32_t a = ((p ^ (uint32_t)l) & 1u), b = a ^ 1u; + const uint32_t luma_w = std::max(1u, (uint32_t)uw >> l), luma_h = std::max(1u, (uint32_t)uh >> l); + { + const Resource res[]{level(g.of_luma[p], (uint32_t)l), level(g.of_luma[q], (uint32_t)l), + tex(g.of_flow[a][l]), tex(g.of_scd_output), + cb_of((uint32_t)l + 1)}; + // 64 threads a group, each covering four luma pixels across and sixteen rows down. + record_pass(cmd, P_OF_SEARCH, res, 5, (groups(luma_w, 4) * 16 + 63) / 64, + groups(luma_h, 16)); + } + { + // At the bottom the filter writes the flow the interpolation reads, which is the one + // resource the two halves of this backend share. + const Resource out_flow = l == 0 ? tex(g.of_vector) : tex(g.of_flow[b][l]); + const Resource res[]{tex(g.of_flow[a][l]), out_flow, cb_of((uint32_t)l + 1)}; + record_pass(cmd, P_OF_FILTER, res, 3, groups(g.flow_width[l], 16), + groups(g.flow_height[l], 4)); + } + if (l > 0) { + const Resource res[]{level(g.of_luma[p], (uint32_t)l), level(g.of_luma[q], (uint32_t)l), + tex(g.of_flow[b][l]), tex(g.of_flow[b][l - 1]), + tex(g.of_scd_output), cb_of((uint32_t)l + 1)}; + record_pass(cmd, P_OF_SCALE, res, 6, groups(g.flow_width[l - 1], 4), + groups(g.flow_height[l - 1], 4)); + } + } + + // ---- frame interpolation ---- + + const uint32_t render_x = groups((uint32_t)rw, 8), render_y = groups((uint32_t)rh, 8); + const uint32_t display_x = groups((uint32_t)uw, 8), display_y = groups((uint32_t)uh, 8); + // The flow's own grid, eight blocks a group. The SDK divides the display size by the block size + // in floating point and truncates, which loses the last partial block when the display size is + // not a multiple of eight; this rounds that block up instead, so the vector field is written + // over the whole flow image. + const uint32_t flow_x = groups(g.flow_width[0], 8), flow_y = groups(g.flow_height[0], 8); + const auto pyramid = [](uint32_t l) { + const size_t n = g.fi_inpainting_pyramid.levels.size(); + return Resource{n ? g.fi_inpainting_pyramid.levels[std::min(l, n - 1)] + : g.fi_inpainting_pyramid.view}; + }; + + { // The SDK records this one from its own prepare entry point, alongside the upscaler; here + // there is no upscaler to ride along with, so it opens the interpolation instead. It is what + // fills the three resources the SDK calls shared. + const Resource res[]{Resource{in.motion}, Resource{in.depth}, + tex(g.fi_reconstructed_depth_previous), + tex(g.fi_dilated_motion_vectors), tex(g.fi_dilated_depth), cb_fi}; + record_pass(cmd, P_FI_RECONSTRUCT_AND_DILATE, res, 6, render_x, render_y); + } + { // Zeroes both vector fields and the disocclusion mask, and moves the frame counter the + // interpolation reads along -- which is why it runs even on a reset. + const Resource res[]{tex(g.of_scd_output), tex(g.fi_game_mv_x), tex(g.fi_game_mv_y), + tex(g.fi_of_mv_x), tex(g.fi_of_mv_y), tex(g.fi_disocclusion_mask), + counters, cb_fi}; + record_pass(cmd, P_FI_SETUP, res, 8, render_x, render_y); + } + if (!reset) { + { + const Resource res[]{tex(g.fi_dilated_motion_vectors), tex(g.fi_dilated_depth), color, + tex(g.fi_distortion_field), + tex(g.fi_reconstructed_depth_interpolated), cb_fi}; + record_pass(cmd, P_FI_RECONSTRUCT_PREVIOUS_DEPTH, res, 6, render_x, render_y); + } + { + const Resource res[]{tex(g.fi_dilated_motion_vectors), tex(g.fi_dilated_depth), + tex(g.fi_previous_source), color, + tex(g.fi_distortion_field), tex(g.fi_game_mv_x), + tex(g.fi_game_mv_y), cb_fi}; + record_pass(cmd, P_FI_GAME_MOTION_VECTOR_FIELD, res, 8, render_x, render_y); + } + { + const Resource res[]{tex(g.fi_game_mv_x), tex(g.fi_game_mv_y), counters, + pyramid(0), pyramid(1), pyramid(2), pyramid(3), pyramid(4), + pyramid(5), pyramid(6), pyramid(7), pyramid(8), pyramid(9), + pyramid(10), pyramid(11), pyramid(12), cb_fi, cb_game_pyramid}; + record_pass(cmd, P_FI_GAME_VECTOR_FIELD_PYRAMID, res, 18, game_groups[0], + game_groups[1]); + } + { + const Resource res[]{tex(g.of_vector), tex(g.of_confidence), + tex(g.fi_dilated_depth), tex(g.fi_previous_source), + color, tex(g.fi_of_mv_x), + tex(g.fi_of_mv_y), cb_fi}; + record_pass(cmd, P_FI_OPTICAL_FLOW_VECTOR_FIELD, res, 8, flow_x, flow_y); + } + { + const Resource res[]{tex(g.fi_game_mv_x), + tex(g.fi_game_mv_y), + tex(g.fi_reconstructed_depth_previous), + tex(g.fi_dilated_depth), + tex(g.fi_reconstructed_depth_interpolated), + tex(g.fi_inpainting_pyramid), + tex(g.fi_distortion_field), + tex(g.fi_disocclusion_mask), + cb_fi}; + record_pass(cmd, P_FI_DISOCCLUSION_MASK, res, 9, render_x, render_y); + } + } + { // The frame itself. Where it could not decide a colour it leaves the alpha low, and the two + // passes after it fill those pixels in from the pyramid they build over this very output. + const Resource res[]{tex(g.fi_game_mv_x), tex(g.fi_game_mv_y), + tex(g.fi_of_mv_x), tex(g.fi_of_mv_y), + tex(g.fi_previous_source), color, + tex(g.fi_disocclusion_mask), tex(g.fi_inpainting_pyramid), + counters, tex(out), + cb_fi}; + record_pass(cmd, P_FI_INTERPOLATE, res, 11, display_x, display_y); + } + { + const Resource res[]{tex(out), counters, + pyramid(0), pyramid(1), pyramid(2), pyramid(3), pyramid(4), + pyramid(5), pyramid(6), pyramid(7), pyramid(8), pyramid(9), + pyramid(10), pyramid(11), pyramid(12), cb_fi, cb_frame_pyramid}; + record_pass(cmd, P_FI_INPAINTING_PYRAMID, res, 17, frame_groups[0], frame_groups[1]); + } + { // The present backbuffer and the interpolation source are the same image here: this game has + // no separate HUD-less colour, so there is nothing to take the HUD from. + const Resource res[]{tex(g.of_scd_output), tex(g.fi_inpainting_pyramid), color, color, + tex(out), cb_fi}; + record_pass(cmd, P_FI_INPAINTING, res, 6, display_x, display_y); + } + + // This frame becomes the next one's "previous", and the luma pyramids swap, so the next flow + // search has the pair it needs. Both happen once a present, not once a made frame. + { + memory_barrier(cmd, VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_TRANSFER_BIT, + VK_ACCESS_2_TRANSFER_READ_BIT | VK_ACCESS_2_TRANSFER_WRITE_BIT); + const VkImageCopy copy{{VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, + {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, {0, 0, 0}, + {g.width, g.height, 1}}; + vkCmdCopyImage(cmd, in.color_image, VK_IMAGE_LAYOUT_GENERAL, g.fi_previous_source.image, + VK_IMAGE_LAYOUT_GENERAL, 1, ©); + memory_barrier(cmd, VK_PIPELINE_STAGE_2_TRANSFER_BIT, VK_ACCESS_2_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, + VK_ACCESS_2_SHADER_READ_BIT | VK_ACCESS_2_TRANSFER_READ_BIT); + } + g.parity = q; + // A reset frame has no history to interpolate from: the preparation passes were skipped, so what + // the interpolation wrote is the current frame over a previous frame that is not there yet. + // Everything above still ran, which is what gives the next frame its luma pair and its previous + // source; this one is refused, and the caller's own colour interpolation takes it. + return !reset; +} + +VkImage made_image() { return g.ready ? g.made[0].image : VK_NULL_HANDLE; } + +void reset() { g.first_frame = true; } + +} // namespace mkwvk::fsr3fi diff --git a/gpu/vk/vk_fsr3fi.h b/gpu/vk/vk_fsr3fi.h new file mode 100644 index 000000000..cbc8c74c7 --- /dev/null +++ b/gpu/vk/vk_fsr3fi.h @@ -0,0 +1,82 @@ +// (hookshot) AMD FSR 3.1 frame interpolation, and the optical flow it runs on, recorded as our own Vulkan compute passes: +// the made frame between two of the game's when the Frame generation row is 2x. +// +// The renderer already makes frames: vk_framegen.cpp interpolates between the last two presented frames from colour alone. +// This answers the same question with AMD's passes, which use the scene's depth and motion as well (vk_fsr3_inputs.h): +// seventeen compute passes -- seven of optical flow over two frames' luma, ten of interpolation over the game's motion and +// depth -- all of them our own dispatches over AMD's vendored GLSL, with no FidelityFX host library linked and nothing of +// AMD's loaded at run time. +// +// Where it cannot run -- not asked for, a device without the storage formats, image features or subgroup operations the +// passes need, a frame without its inputs, a reset -- the renderer's own interpolation runs exactly as before. Nothing here +// changes what the game submits. +// +// FSR 3.1's interpolation has no phase input (ffx_frameinterpolation.h fixes t at 0.5): it makes the midpoint and only the +// midpoint, so it is used for one made frame a frame (2x). At 3x and above the renderer's own makes the frames, as more +// copies of one midpoint would show the same picture twice and judder. +#pragma once + +#include + +#include "fsr3_math.h" +#include "vk_internal.h" + +namespace mkwvk::fsr3fi { + +/// One made frame's inputs. +/// +/// The colour is the frame the game has just finished, at the size it is presented, and it is the only colour this backend +/// is given: the frame before it is kept here, because the interpolation needs both ends of the interval and the present +/// path only ever hands over the newest one. The depth (reversed) and the motion are the scene's at the render size +/// (vk_fsr3_inputs.h), with `motion_scale` taking a vector to render pixels, as the SDK's +/// FFX_FRAMEINTERPOLATION_OPTION_LOW_RESOLUTION_MOTION_VECTORS permutation the vendored GLSL was compiled under expects. +struct Inputs { + VkImageView color = VK_NULL_HANDLE; + VkImage color_image = VK_NULL_HANDLE; + VkFormat color_format = VK_FORMAT_UNDEFINED; + uint32_t width = 0, height = 0; + + VkImageView depth = VK_NULL_HANDLE; + VkImageView motion = VK_NULL_HANDLE; + uint32_t render_width = 0, render_height = 0; + + /// Turns a motion vector into render pixels (1 for vectors already in them). + float motion_scale[2]{1.0f, 1.0f}; + float jitter[2]{}; + + /// The scene's camera: the device-to-view-depth factors the disocclusion passes compare depths with, and the tangent + /// of half the field of view (fsr3_math.h, from the scene's projection). + fsr3_math::Camera camera; + float frame_time_ms = 16.667f; + + /// A cut, a load or a resize: the preparation passes are skipped for this frame, as the SDK's own dispatch skips them, + /// because every history they read belongs to a scene that is gone. + bool reset = false; + + /// The caller's count of its frames (vk_framegen.cpp: one a present). The frame before this one is kept here as the + /// interval's start; when the last frame given was not the one before this (a present this backend did not see), that + /// start is not this frame's predecessor and the call is a reset. + uint64_t sequence = 0; +}; + +/// Whether this device can run the passes: push descriptors, every storage format the SDK's internal images need, and the +/// image features and subgroup operations the vendored passes compiled down to. Asked once; the one line saying why it +/// cannot is logged once. +[[nodiscard]] bool capable(); + +/// Whether a made frame is asked for: the Frame generation row at 2x (RX_VK_FSR_FG=0 never, =1 over the row), on a device +/// that is capable(). Read every frame: the row changes while the game runs. +[[nodiscard]] uint32_t frames_wanted(); + +/// Records the made frame between the frame before and this one into made_image(), making the pipelines and the images for +/// these sizes first (again when the sizes or the presented format change). False when it cannot (the inputs not usable, a +/// reset frame, anything not made), which leaves the caller to show whatever it would otherwise have shown. +[[nodiscard]] bool generate(VkCommandBuffer cmd, const Inputs& in); + +/// The made frame of the last `generate`, or null. +[[nodiscard]] VkImage made_image(); + +/// Forgets the sequence, so the next frame is made with the reset flag set: a cut, a load, a resize. +void reset(); + +} // namespace mkwvk::fsr3fi diff --git a/gpu/vk/vk_menu.cpp b/gpu/vk/vk_menu.cpp index ce18bec6b..30756003f 100644 --- a/gpu/vk/vk_menu.cpp +++ b/gpu/vk/vk_menu.cpp @@ -31,6 +31,8 @@ #include "vk_startup_paint.h" #include "vk_work.h" // (after the others: counts the commands that do GPU work, for full_barrier) #include "vk_dlss.h" +#include "vk_fsr3.h" // (the Upscaler row: whether AMD FSR 3.1 runs on this GPU) +#include "vk_fsr3fi.h" // (the Frame generation row: whether FSR 3.1 makes the frame) #include "vk_reflex.h" #include "upscaler_rows.h" #include "menu_restart.h" @@ -121,13 +123,18 @@ const char* hn_reflex(int v, int variant) { if (variant < 0) return reflex_available() ? t[std::clamp(v, 0, 2)] : none; return variant == 0 ? t[std::clamp(v, 0, 2)] : variant == 1 ? none : nullptr; } -// The Upscaler (opts.dlss): what scales the 3D up to the output. DLSS and DLAA only where dlss_why() lets them run; the menu -// shows (and steps from) what runs, dlss_mode(), and keeps the saved choice for a PC where it can +// The Upscaler (opts.dlss): what scales the 3D up to the output. DLSS and DLAA only where dlss_why() lets them run, FSR 3.1 +// only where vk_fsr3.cpp says it does; the menu shows (and steps from) what runs, and keeps the saved choice for a PC where it +// can namespace ur = upscaler_rows; -int upscaler() { return dlss_mode(); } +/// One bit per upscaler that runs here (upscaler_rows.h bit). Each backend caches its own answer, so this costs nothing +unsigned upscalers_available() { + return ur::bit(ur::GAME) | ur::dlss_bits(dlss_why() == DLSS_OK) | (fsr3::supported() ? ur::bit(ur::FSR3) : 0u); +} +int upscaler() { return fsr3_wanted() ? (int)ur::FSR3 : dlss_mode(); } const char* tx_upscaler(int) { - static const char* t[] = {"Game's own", "NVIDIA DLSS", "NVIDIA DLAA"}; - return t[std::clamp(upscaler(), 0, 2)]; + static const char* t[] = {"Game's own", "NVIDIA DLSS", "NVIDIA DLAA", "AMD FSR 3.1"}; + return t[std::clamp(upscaler(), 0, ur::kUpscalers - 1)]; } /// The Upscaler: the one shown (what runs, upscaler()), and with the game's own, why DLSS and DLAA are not offered const char* hn_upscaler(int v, int variant) { @@ -137,6 +144,8 @@ const char* hn_upscaler(int v, int variant) { "themselves can trail for now.", "NVIDIA's, the 3D at full size with its edges smoothed; the slowest. Softer than the game's own: set Sharpness to " "around 80%. Things that move by themselves can trail for now.", + "AMD's, from a smaller 3D, on any GPU: built from AMD's own shaders. Things that move by themselves can trail for " + "now.", }; static const char* const why[DLSS_WHY_COUNT] = { nullptr, @@ -149,10 +158,10 @@ const char* hn_upscaler(int v, int variant) { }; // (now: the value shown and what runs here; every one: each value, and the game's own with each reason) int w = 0; - if (variant < 0) v = std::clamp(upscaler(), 0, 2), w = (int)dlss_why(); + if (variant < 0) v = std::clamp(upscaler(), 0, ur::kUpscalers - 1), w = (int)dlss_why(); else if (v == ur::GAME) w = variant; else if (variant > 0) return nullptr; - v = std::clamp(v, 0, 2); + v = std::clamp(v, 0, ur::kUpscalers - 1); if (w >= DLSS_WHY_COUNT) return nullptr; if (v != ur::GAME || !why[w]) return t[v]; static char b[DLSS_WHY_COUNT][256]; @@ -229,7 +238,7 @@ const char* tx_resolution(int v) { const int up = upscaler(); if (up == ur::DLAA) return "Native (DLAA)"; if (!ur::percent(v)) return "Auto (dynamic)"; - if (const char* mode = up == ur::DLSS ? ur::dlss_mode_name(v) : nullptr) { + if (const char* mode = ur::scales_by_mode(up) ? ur::dlss_mode_name(v) : nullptr) { snprintf(b, sizeof b, "%s (%d%%)", mode, ur::percent(v)); return b; } @@ -240,8 +249,8 @@ const char* tx_resolution(int v) { } /// The Render resolution: the value chosen, for the Upscaler shown (every one: each value with each Upscaler) const char* hn_resolution(int v, int variant) { - const int up = variant < 0 ? std::clamp(upscaler(), 0, 2) : variant; - if (up > 2) return nullptr; + const int up = variant < 0 ? std::clamp(upscaler(), 0, ur::kUpscalers - 1) : variant; + if (up >= ur::kUpscalers) return nullptr; if (up == ur::DLAA) return "DLAA draws the 3D at full size: nothing to set here. Choose DLSS or the game's own upscaler to draw it " "smaller."; @@ -256,13 +265,23 @@ const char* hn_resolution(int v, int variant) { default: return nullptr; // (not one of DLSS's steps: the row moves to one) } } + if (up == ur::FSR3) { + switch (p) { + case 0: return "The game lowers it when the GPU is busy, and FSR follows."; + case 67: return "FSR's Quality mode, 1.5x: its sharpest."; + case 58: return "FSR's Balanced mode, 1.7x."; + case 50: return "FSR's Performance mode, 2x: faster, and softer."; + case 33: return "FSR's Ultra Performance mode, 3x: its fastest, and its softest."; + default: return nullptr; // (not one of FSR's steps: the row moves to one) + } + } if (!p) return "The game lowers it when the GPU is busy."; if (p == 100) return "The 3D at the output's full size: the sharpest, and the slowest."; return "A steady size: lower is faster, and softer."; } /// A row with nothing else to choose here: shown without its arrows, Left and Right leave it (and the saved value) alone bool row_fixed(const int* value) { - return (value == &opts.reflex && !reflex_available()) || (value == &opts.dlss && ur::upscaler_fixed(dlss_why() == DLSS_OK)) || + return (value == &opts.reflex && !reflex_available()) || (value == &opts.dlss && ur::upscaler_fixed(upscalers_available())) || (value == &opts.resolution && ur::resolution_fixed(upscaler())) || (value == &opts.upscale && !filter_needed()) || (value == &opts.dlss_model && ur::model_fixed(upscaler(), dlss_preset_env() != nullptr)); } @@ -402,6 +421,9 @@ MENU_HINTS(hn_preset, 0, "Each row as you set it. Changing most rows yourself co MENU_HINTS(hn_gpu, 0, "The best dedicated GPU.") /// Frame generation: how many frames are made for each of the game's const char* hn_framegen(int v, int variant) { + // (2x: by AMD FSR 3.1 where it runs, from the scene's depth and motion: vk_framegen.cpp. Variant 1 is that text) + if (v == 2 && (variant < 0 ? fsr3fi::frames_wanted() != 0 : variant == 1)) + return "One made frame between each two of the game's, by AMD FSR 3.1 from the scene's depth and motion."; if (variant > 0) return nullptr; if (v <= 0) return "Only the game's own frames: no added delay."; if (v == 1) return "A frame for each of the display's refreshes: none made when the game keeps up. Frame pacing does not apply."; @@ -426,7 +448,7 @@ const char* hn_filter(int v, int variant) { /// Sharpness: with DLSS or DLAA, the amount that suits them const char* hn_sharpness(int v, int variant) { static const char* const dlss = "DLSS and DLAA look softer than the game's own upscaler: around 80% suits them."; - const bool with_dlss = variant < 0 ? upscaler() != ur::GAME : variant == 1; + const bool with_dlss = variant < 0 ? upscaler() == ur::DLSS || upscaler() == ur::DLAA : variant == 1; if (variant > 1) return nullptr; return with_dlss ? dlss : v == 0 ? "Off: the picture as it is." : nullptr; } @@ -454,7 +476,7 @@ MENU_HINTS(hn_pad_layout, 0, "The Switch's order: A on the right, B at the botto "Bindings of your own, from the Controls page.") Row rows[] = { - // Graphics (the Upscaler only in a build with DLSS: row_shown) + // Graphics (the Upscaler only in a build with DLSS, or where AMD FSR 3.1 runs: row_shown) {TAB_GRAPHICS, "Quality preset", &opts.preset, 0, 5, 1, tx_preset, "Sets the scaling rows, frame generation and memory limits for a GPU with that much memory. The Upscaler stays yours.", hn_preset}, @@ -472,7 +494,7 @@ Row rows[] = { {TAB_GRAPHICS, "Output resolution", &opts.output_res, 0, kLastOutput, 1, tx_output_res, "The game's whole frame, HUD included, before it is scaled to the window. Docked only. Applies after a restart.", hn_output_res, true}, - {TAB_GRAPHICS, "Upscaler", &opts.dlss, 0, 2, 1, tx_upscaler, "What scales the 3D up to the Output resolution.", + {TAB_GRAPHICS, "Upscaler", &opts.dlss, 0, ur::kUpscalers - 1, 1, tx_upscaler, "What scales the 3D up to the Output resolution.", hn_upscaler}, {TAB_GRAPHICS, "DLSS model", &opts.dlss_model, 0, ur::kModels - 1, 1, tx_dlss_model, "Which of NVIDIA's DLSS networks draws the picture.", hn_dlss_model, false, true}, @@ -694,9 +716,9 @@ std::string restart_line(HDC dc, int width) { return line; } -/// A row on its tab: the Cheats one only with cheats on, the Upscaler only in a build with DLSS +/// A row on its tab: the Cheats one only with cheats on, the Upscaler only in a build with DLSS or where AMD FSR 3.1 runs bool row_shown(int i) { - return (i != kCheatsRow || cheats_enabled) && (rows[i].value != &opts.dlss || ur::upscaler_shown(dlss_built())) && + return (i != kCheatsRow || cheats_enabled) && (rows[i].value != &opts.dlss || ur::upscaler_shown(dlss_built(), fsr3::supported())) && (rows[i].value != &opts.dlss_model || ur::model_shown(dlss_built())); } int tab_row_count(int t) { @@ -879,7 +901,7 @@ void set_row(Row& r, int v, int dir, bool keep = true) { // (nothing else to choose: no change, no save. A saved choice that cannot run here is kept) if (row_fixed(r.value)) return; // (the scaling rows: only what can run here; the Render resolution row through the Upscaler's own steps) - if (r.value == &opts.dlss) v = ur::step_upscaler(upscaler(), dir, true); + if (r.value == &opts.dlss) v = ur::step_upscaler(upscaler(), dir, upscalers_available()); if (r.value == &opts.resolution) v = ur::step(upscaler(), *r.value, dir); if (r.value == &opts.output_res) { // (smallest to largest: kOutputOrder) v = step_output_choice(*r.value, dir); diff --git a/gpu/vk/vk_replay.cpp b/gpu/vk/vk_replay.cpp index 082c8d769..e1440629a 100644 --- a/gpu/vk/vk_replay.cpp +++ b/gpu/vk/vk_replay.cpp @@ -27,6 +27,7 @@ #include #include "vk_dlss.h" +#include "vk_fsr3_inputs.h" // (the camera jitter while AMD FSR 3.1 upscales) #include "status_line.h" #include "vk_reflex.h" #include "vk_draw.h" @@ -3778,6 +3779,15 @@ bool replay_start() { return true; } +/// (hookshot) The host's camera jitter (nx2/oot_jitter.py, host/rx_backend.c): the scene's size while a temporal upscaler +/// draws, NVIDIA DLSS (vk_dlss.cpp) or AMD FSR 3.1 (vk_fsr3_inputs.cpp), whichever it is (one at a time: the Upscaler row); +/// 0, no jitter, otherwise +int jitter_option(int id) { + const int axis = id - HOS_OPT_DLSS_JITTER_W; + const uint32_t d = dlss_jitter_size(axis); + return (int)(d ? d : fsr3_inputs::jitter_size(axis)); +} + void fill_replay_table(MkwVkRenderer& t) { t.stats = stats; t.nvn_submit = submit; @@ -3800,8 +3810,7 @@ void fill_replay_table(MkwVkRenderer& t) { if (id == HOS_OPT_CHEAT_CAMERA) return menu_free_camera(); return id == 0 ? opts.realtime : id == 1 ? menu_is_open() : id == 2 ? resolution_auto() && !dlss_full_scale() : id == 3 ? (dlss_full_scale() ? 10000 : resolution_scale()) : id == 4 ? opts.pad_background : id == 5 ? opts.text_speed : id == 6 ? opts.mouse_native : id == 7 ? opts.mouse_sens : id == 8 ? opts.mouse_invert : id == 9 ? opts.rumble : id == 16 ? opts.invert_cam_x : id == 17 ? opts.invert_cam_y : id == HOS_OPT_GYRO ? opts.gyro : id == HOS_OPT_GYRO_SENS_X ? opts.gyro_sens_x : id == HOS_OPT_GYRO_SENS_Y ? opts.gyro_sens_y : id == HOS_OPT_GYRO_INV_X ? opts.gyro_inv_x : id == HOS_OPT_GYRO_INV_Y ? opts.gyro_inv_y : - id == HOS_OPT_DLSS_JITTER_W || id == HOS_OPT_DLSS_JITTER_H ? (int)dlss_jitter_size(id - HOS_OPT_DLSS_JITTER_W) : - id == HOS_OPT_DLSS_JITTER_PHASES ? (int)dlss_jitter_size(2) : 0; + id == HOS_OPT_DLSS_JITTER_W || id == HOS_OPT_DLSS_JITTER_H || id == HOS_OPT_DLSS_JITTER_PHASES ? jitter_option(id) : 0; }; t.option_set = menu_option_set; t.nvn_register_sampler = register_sampler_queued; diff --git a/nx2/lift.py b/nx2/lift.py index e729975ed..9cea3597f 100644 --- a/nx2/lift.py +++ b/nx2/lift.py @@ -161,9 +161,8 @@ def main(): if a.standalone: # (hookshot) widescreen and ultrawide: C after a few of the game's instructions import oot_wide oot_wide.install(L, img) - import oot_jitter # (NVIDIA DLSS's camera jitter in a build with it, none unless DLSS runs: host/rx_backend.c) - if oot_jitter.wanted(): - oot_jitter.install(L, img) + import oot_jitter # (the temporal upscalers' camera jitter, DLSS's and FSR 3.1's: none unless one runs, host/rx_backend.c) + oot_jitter.install(L, img) import oot_occlusion # (no occlusion queries when HOOKSHOT_OCCLUSION_OFF=1: Fritchii's Occlusion Off) oot_occlusion.install(L, img) L.discover(max_insns=a.max_func) diff --git a/nx2/make_game.py b/nx2/make_game.py index b0b7ec8c2..1c000ea13 100644 --- a/nx2/make_game.py +++ b/nx2/make_game.py @@ -1086,8 +1086,6 @@ def main(a=None): if os.path.exists(os.path.join(work, "hookshot_pieces.prof")) and profile_readable(os.path.join(work, "hookshot_pieces.prof")): env["RX_PGO"] = os.path.join(work, "hookshot_pieces.prof") - if ngx_built(): # (NVIDIA DLSS's camera jitter: only in a build with it, nx2/oot_jitter.py) - env["OOT_DLSS_JITTER"] = "1" say("stage", "lift", "Translating the game to PC code") # (the same game, tools and settings as the lift before: its C is what this lift would write, and nothing recompiles from it. A # rebuild after a change to host/ alone skips the minutes of the lift) diff --git a/nx2/oot_jitter.py b/nx2/oot_jitter.py index cace22c9b..a9ce3d271 100644 --- a/nx2/oot_jitter.py +++ b/nx2/oot_jitter.py @@ -1,6 +1,7 @@ -"""NVIDIA DLSS's camera jitter for Ocarina of Time 1.1.1: C added after a few instructions of the game (a64_lift.py Lifter.after). +"""The temporal upscalers' camera jitter for Ocarina of Time 1.1.1: C added after a few instructions of the game (a64_lift.py +Lifter.after). One jitter for both: NVIDIA DLSS (gpu/vk/vk_dlss.cpp) and AMD FSR 3.1 (gpu/vk/vk_fsr3_inputs.cpp). -DLSS (gpu/vk/vk_dlss.cpp) resolves detail finer than a pixel from frames whose camera moved by a different fraction of a +A temporal upscaler resolves detail finer than a pixel from frames whose camera moved by a different fraction of a pixel each time. The game's cameras do not move so: these sites give the scene's projection a sub-pixel offset each frame, in the GPU's copy only. The game fills each view's uniform buffers in one function (main+0x6bc520): for each view it loads the view's projection matrix (the view at x28, its projection's rows at +0x1a8) and writes it, the view-projection made from @@ -15,17 +16,15 @@ the game set it. host/rx_backend.c hos_dlss_jitter_clip picks the jitter and checks the projection is one of the picture's: perspective, of -16:9 or the window's ratio (nx2/oot_wide.py). It is none (the game as shipped) unless DLSS runs, and the renderer reads the -offset back from the camera's uniform buffer. Which view is the scene's, the renderer learns from its draws, too late for +16:9 or the window's ratio (nx2/oot_wide.py). It is none (the game as shipped) unless DLSS or FSR 3.1 runs (the renderer's +rx_option HOS_OPT_DLSS_JITTER_W and _H are 0 otherwise), and the renderer reads the offset back from the camera's uniform +buffer. Which view is the scene's, the renderer learns from its draws, too late for this: the other views of the picture's ratio (a reflection, a portrait) are drawn without DLSS and move by under a pixel of the scene's size, too little to see. -Installed only in a build with NVIDIA's DLSS SDK (make_game.py sets OOT_DLSS_JITTER=1 for the lift then): other builds have -none of this code. +Installed in every standalone lift (nx2/lift.py): FSR 3.1 needs no SDK, so a build without NVIDIA's has the jitter too. """ -import os - import oot_wide # (main offset, the original instruction word there, and the registers whose third lane gets the jitter's x and y: None @@ -44,15 +43,10 @@ def _text(xreg, yreg): add = "".join("{ float _o; memcpy(&_o, (uint8_t *)c->vreg[%d] + 8, 4); _o += _j[%d]; memcpy((uint8_t *)c->vreg[%d] + 8, &_o, 4); } " % (r, axis, r) for axis, r in ((0, xreg), (1, yreg)) if r is not None) return ("{ extern int hos_dlss_jitter_clip(uint64_t projection, float out[2]); float _j[2]; " - "if (hos_dlss_jitter_clip(c->x[%d] + %#x, _j)) { %s} } /* (nx2/oot_jitter.py: DLSS camera jitter) */" + "if (hos_dlss_jitter_clip(c->x[%d] + %#x, _j)) { %s} } /* (nx2/oot_jitter.py: the upscalers' camera jitter) */" % (VIEW, PROJECTION, add)) -def wanted(): - """A build with NVIDIA DLSS (make_game.py: HOOKSHOT_NGX_SDK with its library): OOT_DLSS_JITTER=1, in the lift's key""" - return os.environ.get("OOT_DLSS_JITTER") == "1" - - def install(lifter, img): """The sites into lifter.after, after what is there; a site whose word differs (another game version) is left out""" n = 0 diff --git a/readme.md b/readme.md index 760c6d9fa..7e9851254 100644 --- a/readme.md +++ b/readme.md @@ -220,9 +220,9 @@ choices and starts the game again, so progress since your last save is lost. | | Frame pacing | Off, On | Off | | | NVIDIA Reflex | Off, On, On + Boost (NVIDIA GPUs with `VK_NV_low_latency2`) | Off | | | Output resolution | 1920x1080, 2048x1152, 2560x1440, 3840x2160 (after a restart) | 2048x1152 | -| | Upscaler | Game's own, NVIDIA DLSS, NVIDIA DLAA (only in builds with NVIDIA's DLSS SDK, below; DLSS and DLAA on RTX GPUs) | Game's own | +| | Upscaler | Game's own, NVIDIA DLSS, NVIDIA DLAA (only in builds with NVIDIA's DLSS SDK, below; DLSS and DLAA on RTX GPUs), AMD FSR 3.1 (every build, on GPUs it runs on, below) | Game's own | | | DLSS model | Transformer (K), Transformer 2 (M), Transformer 2 (L), NVIDIA default (builds with DLSS; used by DLSS and DLAA) | Transformer (K) | -| | Render resolution | Auto (the game's own dynamic resolution), 100%, 75%, 67%, 50% (each with its size). With DLSS: Auto, Quality (67%), Balanced (58%), Performance (50%), Ultra Performance (33%). With DLAA: Native | Auto | +| | Render resolution | Auto (the game's own dynamic resolution), 100%, 75%, 67%, 50% (each with its size). With DLSS or FSR 3.1: Auto, Quality (67%), Balanced (58%), Performance (50%), Ultra Performance (33%). With DLAA: Native | Auto | | | Window scaling filter | Off, Catmull-Rom, Lanczos | Off | | | Sharpness | 0 to 100%, in steps of 10 | 0% | | | Handheld profile | Off, On (after a restart) | Off | @@ -258,10 +258,12 @@ choices and starts the game again, so progress since your last save is lost. `hookshot_log.txt` lists every card as `vk: device `; `RX_VK_DEVICE=` chooses one for a single run and wins over the menu. - **Frame generation** makes extra frames between the game's own. It adds a little input delay, and fast motion can - show artifacts. **Frame pacing** shows frames at an even interval: less stutter, up to one frame of delay. + show artifacts. At 2x, AMD FSR 3.1's frame interpolation makes the frame where it runs (below); at 3x and more, and + where it does not run, the renderer's own does. **Frame pacing** shows frames at an even interval: less stutter, up to one frame of delay. - **The scaling rows**, in the picture's order: **Output resolution** is the size of the game's whole frame, HUD - included. The **Upscaler** fills it from the 3D: the game's own network, or NVIDIA DLSS or DLAA (the 3D at full size, - edges smoothed). Both look softer than the game's own: set **Sharpness** to around 80% with them. **DLSS model** + included. The **Upscaler** fills it from the 3D: the game's own network, NVIDIA DLSS or DLAA (the 3D at full size, + edges smoothed), or AMD FSR 3.1 (below). DLSS and DLAA look softer than the game's own: set **Sharpness** to around + 80% with them. **DLSS model** chooses their network (below). **Render resolution** is the 3D's share of the output. The **Window scaling filter** then scales the frame to your window, and **Sharpness** sharpens it, by the picture's pixels: when the window is much larger than the picture (the Handheld @@ -476,6 +478,20 @@ cd ~/Games/Hookshot `hookshot_env.txt` and the other test switches are documented below. +
+AMD FSR 3.1 (every build) + +**AMD FSR 3.1** in the Graphics tab's **Upscaler** row (`dlss=3` in `hookshot_options.ini`; `RX_VK_FSR=1` for one run, +`RX_VK_FSR=0` never) upscales in place of the game's own network, and with **Frame generation** at 2x its frame +interpolation makes the frame in between (`RX_VK_FSR_FG=0` leaves that to the renderer's own). Both are AMD's FidelityFX +SDK 1.1.4 shaders (`third_party/fidelityfx-sdk`, MIT), compiled into the renderer: no AMD runtime or DLL is needed, and +the row offers FSR 3.1 on any Vulkan 1.3 GPU with push descriptors, extended storage image formats and storage writes +without a format (`vk: fsr3: ... can run on this GPU` in the log). Its inputs are the scene's colour, its depth, motion +from the camera, and the same camera jitter DLSS uses (`RX_VK_FSR_JITTER=0` turns it off); things that move by +themselves can trail for now. + +
+
NVIDIA DLSS (optional, NVIDIA's SDK under NVIDIA's license) diff --git a/scripts/fsr3_shaders.py b/scripts/fsr3_shaders.py new file mode 100644 index 000000000..05ddba4cc --- /dev/null +++ b/scripts/fsr3_shaders.py @@ -0,0 +1,202 @@ +"""Compile AMD's FSR 3.1 upscaler passes into the SPIR-V headers gpu/vk uses. + +The FidelityFX SDK ships each pass as GLSL that includes the SDK's own GPU headers, so the eleven +variants below are the same eight passes compiled with different options. They are checked in like +every other shader in gpu/vk/shaders, so a clone builds without glslang; this script regenerates +them, and --check proves the checked-in files still match their sources (tests/test_fsr3_shaders.py). + + python -I -B scripts/fsr3_shaders.py # write gpu/vk/shaders/fsr3_*_comp_spv.h + python -I -B scripts/fsr3_shaders.py --check # compare instead of writing +""" +import argparse +import difflib +import shutil +import subprocess +import sys +import tempfile +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SDK = ROOT / "third_party/fidelityfx-sdk" +GPU = SDK / "include/FidelityFX/gpu" +PASSES = SDK / "shaders/fsr3upscaler" +FI_PASSES = SDK / "shaders/frameinterpolation" +OF_PASSES = SDK / "shaders/opticalflow" +OUT = ROOT / "gpu/vk/shaders" + +# The option set the renderer records these passes under. Each one is a promise about the inputs: +# the colour is HDR, the motion is low-resolution and not jittered, and the depth is reversed. They +# have to match what gpu/vk/vk_fsr3.cpp hands the passes, which is why they live in one place. +OPTIONS = [ + "-DFFX_GPU=1", + "-DFFX_GLSL=1", + "-DFFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE=2", + "-DFFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE=0", + "-DFFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT=1", + "-DFFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS=1", + "-DFFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS=0", + "-DFFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH=1", +] + +# name, the pass GLSL it compiles, extra defines. The _nowave variants are for devices without the +# subgroup operations the single-pass downsampler prefers. +VARIANTS = [ + ("prepare_inputs", "prepare_inputs", []), + ("luma_pyramid", "luma_pyramid", []), + ("luma_pyramid_nowave", "luma_pyramid", ["-DFFX_SPD_NO_WAVE_OPERATIONS=1"]), + ("shading_change_pyramid", "shading_change_pyramid", []), + ("shading_change_pyramid_nowave", "shading_change_pyramid", ["-DFFX_SPD_NO_WAVE_OPERATIONS=1"]), + ("shading_change", "shading_change", []), + ("prepare_reactivity", "prepare_reactivity", []), + ("luma_instability", "luma_instability", []), + ("accumulate", "accumulate", []), + ("accumulate_sharpen", "accumulate", ["-DFFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING=1"]), + ("rcas", "rcas", []), +] + + +# (hookshot) Frame interpolation and the optical flow it runs on, the same arrangement: AMD ships +# each pass as GLSL over the SDK's own GPU headers, and the renderer records them as SPIR-V headers +# beside the upscaler's. The options are the same promises about the same inputs -- the depth is +# reversed and the motion is at the render extent -- because the inputs are the ones the upscaler is +# already given (gpu/vk/vk_fsr3fi.cpp). +FI_OPTIONS = [ + "-DFFX_GPU=1", + "-DFFX_GLSL=1", + "-DFFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH=1", + "-DFFX_FRAMEINTERPOLATION_OPTION_LOW_RESOLUTION_MOTION_VECTORS=1", + "-DFFX_FRAMEINTERPOLATION_OPTION_JITTERED_MOTION_VECTORS=0", +] +OF_OPTIONS = ["-DFFX_GPU=1", "-DFFX_GLSL=1"] + +# (name, the pass file, extra defines). The file is named outright rather than composed: AMD's +# optical-flow v5 passes end "_pass_v5.glsl" and the interpolation pass itself is just +# "ffx_frameinterpolation_pass.glsl", so a composed name is wrong for four of the eighteen. +FI_VARIANTS = [ + ("fi_setup", "ffx_frameinterpolation_setup_pass.glsl", []), + ("fi_reconstruct_previous_depth", "ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl", []), + ("fi_reconstruct_and_dilate", "ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl", []), + ("fi_game_motion_vector_field", "ffx_frameinterpolation_game_motion_vector_field_pass.glsl", []), + ("fi_optical_flow_vector_field", "ffx_frameinterpolation_optical_flow_vector_field_pass.glsl", []), + ("fi_disocclusion_mask", "ffx_frameinterpolation_disocclusion_mask_pass.glsl", []), + ("fi_game_vector_field_inpainting_pyramid", + "ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl", []), + ("fi_inpainting_pyramid", "ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl", []), + ("fi_interpolate", "ffx_frameinterpolation_pass.glsl", []), + ("fi_inpainting", "ffx_frameinterpolation_inpainting_pass.glsl", []), +] +OF_VARIANTS = [ + ("of_prepare_luma", "ffx_opticalflow_prepare_luma_pass.glsl", []), + ("of_luminance_pyramid", "ffx_opticalflow_compute_luminance_pyramid_pass.glsl", []), + ("of_generate_scd_histogram", "ffx_opticalflow_generate_scd_histogram_pass.glsl", []), + ("of_compute_scd_divergence", "ffx_opticalflow_compute_scd_divergence_pass.glsl", []), + ("of_compute_optical_flow_v5", "ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl", []), + ("of_filter_optical_flow_v5", "ffx_opticalflow_filter_optical_flow_pass_v5.glsl", []), + ("of_scale_optical_flow_v5", "ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl", []), +] + + +def compile_family(glslang, name, source, extra, out_path, target_env, options, includes, + variable=True): + """One frame-interpolation or optical-flow pass. The upscaler's compile_one is kept as it is: + its passes are composed by name and its option set is the upscaler's own.""" + cmd = [glslang, "-V", "--quiet", "-S", "comp"] + for d in includes: + cmd.append("-I" + str(d)) + cmd += [*options, *extra] + if variable: + cmd += ["--variable-name", f"FSR3_{name.upper()}_COMP_SPV"] + cmd += ["-o", str(out_path), str(source), "--target-env", target_env] + subprocess.run(cmd, check=True) + + +def compile_one(glslang, name, pass_name, extra, out_path, target_env, variable=True): + """Compile one variant. With `variable`, glslang writes a C header; without it, binary SPIR-V, + which is what spirv-val reads.""" + defines = list(OPTIONS) + if not any("APPLY_SHARPENING" in d for d in extra): + defines.append("-DFFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING=0") + cmd = [glslang, "-V", "--quiet", "-S", "comp", + "-I" + str(GPU), "-I" + str(GPU / "fsr3upscaler"), + *defines, *extra] + if variable: + cmd += ["--variable-name", f"FSR3_{name.upper()}_COMP_SPV"] + cmd += ["-o", str(out_path), + str(PASSES / f"ffx_fsr3upscaler_{pass_name}_pass.glsl"), + "--target-env", target_env] + subprocess.run(cmd, check=True) + + +def strip_generator(text): + """The header without glslang's own version comment. + + glslang writes its version into the first line as `// 1116.2.0`, so two glslang builds produce + byte-different headers from identical SPIR-V. Comparing the whole text made this check fail on + a CI runner whose glslang was one release behind the one that generated the checked-in files -- + a version bump reported as a source mismatch, which is the kind of red that teaches people to + ignore red. The words after it are the module, and those are what this is about. + """ + return [line for line in text.splitlines() + if not line.strip().startswith("// ") or not line.strip()[3:].replace(".", "").isdigit()] + + +def main(): + p = argparse.ArgumentParser(description=__doc__, + formatter_class=argparse.RawDescriptionHelpFormatter) + p.add_argument("--glslang", default=None, help="glslangValidator; found on PATH by default") + p.add_argument("--spirv-val", default=None, help="spirv-val, to validate each module") + p.add_argument("--target-env", default="spirv1.3") + p.add_argument("--check", action="store_true", help="compare with the checked-in headers") + a = p.parse_args() + glslang = a.glslang or shutil.which("glslangValidator") or shutil.which("glslang") + if not glslang: + print("glslangValidator not found; pass --glslang", file=sys.stderr) + return 2 + + bad = [] + with tempfile.TemporaryDirectory(prefix="fsr3-shaders-") as tmp: + # the upscaler's eleven, then frame interpolation's ten and optical flow's seven + families = [(name, None, pass_name, extra, None, None) for name, pass_name, extra in VARIANTS] + families += [(name, FI_PASSES / f, None, extra, FI_OPTIONS, + [GPU, GPU / "frameinterpolation", GPU / "opticalflow"]) + for name, f, extra in FI_VARIANTS] + families += [(name, OF_PASSES / f, None, extra, OF_OPTIONS, [GPU, GPU / "opticalflow"]) + for name, f, extra in OF_VARIANTS] + for name, source, pass_name, extra, options, includes in families: + header = OUT / f"fsr3_{name}_comp_spv.h" + made = Path(tmp) / header.name + if source is None: + compile_one(glslang, name, pass_name, extra, made, a.target_env) + else: + compile_family(glslang, name, source, extra, made, a.target_env, options, includes) + if a.spirv_val: + spv = Path(tmp) / f"{name}.spv" + if source is None: + compile_one(glslang, name, pass_name, extra, spv, a.target_env, variable=False) + else: + compile_family(glslang, name, source, extra, spv, a.target_env, options, + includes, variable=False) + subprocess.run([a.spirv_val, str(spv)], check=True) + if a.check: + have = header.read_text() if header.exists() else "" + want = made.read_text() + if strip_generator(have) != strip_generator(want): + bad.append(name) + if not have: + print(f"{header.name}: missing", file=sys.stderr) + else: + diff = difflib.unified_diff(have.splitlines(), want.splitlines(), + "checked in", "regenerated", n=0, lineterm="") + print("\n".join(list(diff)[:12]), file=sys.stderr) + else: + shutil.copyfile(made, header) + print(f"wrote {header.relative_to(ROOT)} ({header.stat().st_size} bytes)") + if bad: + print(f"{len(bad)} header(s) do not match their source: {', '.join(bad)}", file=sys.stderr) + return 1 + print(f"fsr3 shaders: {len(VARIANTS) + len(FI_VARIANTS) + len(OF_VARIANTS)} {'match' if a.check else 'written'}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tests/run_all.py b/tests/run_all.py index 0d533e133..592e4eb82 100644 --- a/tests/run_all.py +++ b/tests/run_all.py @@ -47,6 +47,7 @@ "tests/test_audio_in.py": ["--cc", "gcc", "--cxx", "g++"], "tests/test_upscale_fallback.py": ["--cxx", "g++"], "tests/test_reserved_core.py": ["--cxx", "g++"], + "tests/test_fsr3_shaders.py": ["--glslang", "{glslang}", "--spirv-val", "{spirv_val}"], "tests/test_fg_scale_sharpen.py": ["--cxx", "g++"], "tests/test_taau_env_lookup.py": ["--cxx", "g++"], "tests/test_target_overlap.py": ["--cxx", "g++"], @@ -116,6 +117,8 @@ for _name in ("nx2/test_texture_phi_dominance.py", "nx2/test_unsigned_image_types.py", "nx2/test_depth_sample_types.py", "nx2/test_default_point_size.py", "nx2/test_draw_parameters.py", "nx2/test_coop_spirv.py", "nx2/test_spirv_struct_identity.py"): SKIP[_name] = ({"windows"}, "needs spirv-val: checked on Linux") +# (glslang: likewise a Linux runner package. The headers it checks are SPIR-V, the same on every platform) +SKIP["tests/test_fsr3_shaders.py"] = ({"windows"}, "needs glslang: checked on Linux") def which(*names): @@ -144,6 +147,7 @@ def find_tools(): "spirv_headers": header_dir("HOOKSHOT_SPIRV_HEADERS", "spirv-headers", os.path.join("spirv", "unified1", "spirv.h")), "vulkan_headers": header_dir("HOOKSHOT_VULKAN_HEADERS", "vulkanheaders", os.path.join("vulkan", "vulkan.h")), "spirv_val": which("spirv-val"), + "glslang": which("glslangValidator", "glslang"), "cxx": which(os.environ.get("CXX", ""), "clang++", "g++", "c++"), } diff --git a/tests/test_fsr3_math.cpp b/tests/test_fsr3_math.cpp new file mode 100644 index 000000000..24fe4d5fd --- /dev/null +++ b/tests/test_fsr3_math.cpp @@ -0,0 +1,88 @@ +// gpu/vk/fsr3_math.h: AMD FSR 3.1's camera from the scene's projection (tests/test_fsr3_math.py) +#include "../gpu/vk/fsr3_math.h" +#include "../gpu/vk/dlss_math.h" + +#include +#include + +#define CHECK(name, condition) do { if (!(condition)) { std::fprintf(stderr, "FAIL %s at line %d\n", name, __LINE__); return 1; } } while (0) + +namespace fm = mkwvk::fsr3_math; + +static bool near(double a, double b, double tol) { return std::fabs(a - b) <= tol * std::max(1.0, std::fabs(b)); } + +// a perspective projection, row major (clip = p * view position, view z negative in front), clip depth -1..1 (NVN's) +static void perspective(float p[16], double fovy, double aspect, double n, double f, bool reversed) { + for (int i = 0; i < 16; i++) p[i] = 0.0f; + const double c = 1.0 / std::tan(fovy / 2); + p[0] = (float)(c / aspect), p[5] = (float)c, p[14] = -1.0f; + // ndc z = -p22 + p23 / v (v = -z > 0): -1 at the near plane and 1 at the far one, or the other way round (reversed) + const double zn = reversed ? 1.0 : -1.0, zf = -zn; + // -p22 + p23 / n = zn, -p22 + p23 / f = zf (f infinite: -p22 = zf) + double p23, p22; + if (std::isinf(f)) p22 = -zf, p23 = (zn + p22) * n; + else p23 = (zn - zf) / (1.0 / n - 1.0 / f), p22 = p23 / n - zn; + p[10] = (float)p22, p[11] = (float)p23; +} + +// the depth the renderer stores for a view distance: (ndc z + 1) / 2, as fsr3_prep.comp and dlss_prep.comp read it +static double stored(const float p[16], double v) { return ((-(double)p[10] + (double)p[11] / v) + 1.0) * 0.5; } + +int main() { + const double fov = 2.0 * std::atan(0.41421356), aspect = 16.0 / 9.0; + for (int reversed = 0; reversed < 2; reversed++) + for (double far_plane : {20000.0, (double)INFINITY}) { + float p[16]; + perspective(p, fov, aspect, 1.0, far_plane, reversed != 0); + fm::Camera c; + CHECK("a perspective projection is a camera", fm::camera_from_projection(p, c)); + CHECK("the depth FSR is given is reversed: flipped where the game's is not", c.flip_depth == !reversed); + CHECK("the near plane", near(c.near_plane, 1.0, 1e-3)); + CHECK("the far plane", std::isinf(far_plane) ? c.far_plane > 1e30f : near(c.far_plane, far_plane, 1e-2)); + CHECK("the field of view", near(c.fov_y, fov, 1e-5) && near(c.tan_half_fov_x, 0.41421356 * aspect, 1e-5)); + CHECK("the SDK's x and y factors", near(c.device_to_view_depth[2], 0.41421356 * aspect, 1e-5) && + near(c.device_to_view_depth[3], 0.41421356, 1e-5)); + // FSR's own view distance (GetViewSpaceDepth) for the depth it is given gives the distance back + for (double v : {1.0, 3.0, 50.0, 1000.0, 15000.0}) { + if (v >= far_plane) continue; + double d = stored(p, v); + if (c.flip_depth) d = 1.0 - d; + CHECK("FSR's view distance is the camera's", near(fm::view_distance(c, (float)d), v, 2e-2)); + } + CHECK("the far end stays finite and positive (GetMaxDistanceInMeters)", + fm::view_distance(c, 0.0f) > 0.0f && std::isfinite(fm::view_distance(c, 0.0f))); + CHECK("1 is the near plane", near(fm::view_distance(c, 1.0f), 1.0, 1e-3)); + } + { // the jitter on the projection (nx2/oot_jitter.py) moves neither the planes nor the field of view, once taken off + float p[16], q[16]; + perspective(p, fov, aspect, 1.0, INFINITY, false); + for (int i = 0; i < 16; i++) q[i] = p[i]; + q[2] += 0.0004f, q[6] -= 0.0007f; // (P[0][2], P[1][2] as the host adds them) + const float clip[2] = {-q[2], -q[6]}; // (the jitter as vk_fsr3_inputs.cpp reads it back: -P[0][2], -P[1][2]) + mkwvk::dlss_math::unjitter(q, clip); + fm::Camera a, b; + CHECK("jittered projection", fm::camera_from_projection(p, a) && fm::camera_from_projection(q, b)); + CHECK("same camera without its jitter", near(a.near_plane, b.near_plane, 1e-6) && near(a.fov_y, b.fov_y, 1e-6) && + std::fabs(q[2]) < 1e-9f && std::fabs(q[6]) < 1e-9f); + float px[2]; + mkwvk::dlss_math::jitter_to_pixels(clip, 1536, 864, px); + CHECK("its jitter in FSR's render pixels: x right, y down", near(px[0], -0.0004 * 768, 1e-4) && near(px[1], -0.0007 * 432, 1e-4)); + } + { // what is not a scene's projection + float p[16]; + perspective(p, fov, aspect, 1.0, 20000.0, false); + fm::Camera c; + float o[16]; + for (int i = 0; i < 16; i++) o[i] = p[i]; + o[14] = 0.0f, o[15] = 1.0f; // (orthographic: a shadow map's, the HUD's) + CHECK("not orthographic", !fm::camera_from_projection(o, c)); + for (int i = 0; i < 16; i++) o[i] = p[i]; + o[11] = 0.0f; // (no depth range) + CHECK("not without a depth range", !fm::camera_from_projection(o, c)); + for (int i = 0; i < 16; i++) o[i] = p[i]; + o[5] = NAN; + CHECK("not a NaN field of view", !fm::camera_from_projection(o, c)); + } + std::printf("fsr3 math: all checks passed\n"); + return 0; +} diff --git a/tests/test_fsr3_math.py b/tests/test_fsr3_math.py new file mode 100644 index 000000000..e1b8aaf8a --- /dev/null +++ b/tests/test_fsr3_math.py @@ -0,0 +1,48 @@ +"""AMD FSR 3.1's inputs without a game or GPU: its camera read from the scene's projection (gpu/vk/fsr3_math.h, checked by +behaviour in tests/test_fsr3_math.cpp), and shaders/fsr3_prep_comp_spv.h made from shaders/fsr3_prep.comp as it is now (when +glslangValidator is here), with the push constants vk_fsr3_inputs.cpp pushes. + +python -I -B tests/test_fsr3_math.py [--cxx g++] +""" +import argparse +import re +import shutil +import subprocess +import tempfile +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SHADERS = ROOT / "gpu" / "vk" / "shaders" + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--cxx", default="g++") + args = parser.parse_args() + # (fsr3_prep.comp keeps dlss_prep.comp's push constants, which vk_fsr3_inputs.cpp pushes as 84 bytes) + block = lambda text: re.sub(r"\s+", " ", re.sub(r"//[^\n]*", "", text[text.index("uniform P {"):text.index("} pc;")])) + if block((SHADERS / "fsr3_prep.comp").read_text(encoding="utf-8")) != block((SHADERS / "dlss_prep.comp").read_text(encoding="utf-8")): + raise SystemExit("fsr3_prep.comp's push constants are not dlss_prep.comp's") + inputs = (ROOT / "gpu" / "vk" / "vk_fsr3_inputs.cpp").read_text(encoding="utf-8") + if "static_assert(sizeof pc == 84" not in inputs or "{VK_SHADER_STAGE_COMPUTE_BIT, 0, 84}" not in inputs: + raise SystemExit("vk_fsr3_inputs.cpp does not push fsr3_prep.comp's 84 bytes") + glslang = shutil.which("glslangValidator") + with tempfile.TemporaryDirectory(prefix="fsr3-math-") as tmp: + if glslang: + out = Path(tmp) / "fsr3_prep_comp_spv.h" + subprocess.run([glslang, "-V", "--target-env", "vulkan1.3", "--vn", "FSR3_PREP_COMP_SPV", "-o", str(out), + str(SHADERS / "fsr3_prep.comp")], check=True, capture_output=True) + words = lambda t: re.findall(r"0x[0-9a-f]{8}", t) + if words(out.read_text()) != words((SHADERS / out.name).read_text()): + raise SystemExit("shaders/fsr3_prep_comp_spv.h is not made from fsr3_prep.comp as it is now (glslangValidator -V " + "--target-env vulkan1.3 --vn FSR3_PREP_COMP_SPV -o fsr3_prep_comp_spv.h fsr3_prep.comp)") + else: + print("glslangValidator not found: the SPIR-V header not checked") + exe = Path(tmp) / "fsr3-math" + subprocess.run([args.cxx, "-std=c++20", "-Wall", "-Wextra", "-Werror", str(ROOT / "tests" / "test_fsr3_math.cpp"), + "-o", str(exe)], check=True) + subprocess.run([str(exe)], check=True) + + +if __name__ == "__main__": + main() diff --git a/tests/test_fsr3_shaders.py b/tests/test_fsr3_shaders.py new file mode 100644 index 000000000..da890cf19 --- /dev/null +++ b/tests/test_fsr3_shaders.py @@ -0,0 +1,33 @@ +"""The checked-in FSR 3.1 pass shaders still match the FidelityFX SDK sources they came from. + +gpu/vk/shaders/fsr3_*_comp_spv.h are generated from third_party/fidelityfx-sdk by +scripts/fsr3_shaders.py and checked in like every other shader here, so a clone builds without +glslang. That only stays true if the headers and their sources cannot drift apart, which is what +this check is for: it recompiles every variant and compares. It also validates each module, so a +pass that compiles but is not valid SPIR-V is caught here rather than on a device. + +python -I -B tests/test_fsr3_shaders.py [--glslang glslangValidator] [--spirv-val spirv-val] +""" +import argparse +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] + + +def main(): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--glslang") + p.add_argument("--spirv-val") + a = p.parse_args() + cmd = [sys.executable, "-I", "-B", str(ROOT / "scripts/fsr3_shaders.py"), "--check"] + if a.glslang: + cmd += ["--glslang", a.glslang] + if a.spirv_val: + cmd += ["--spirv-val", a.spirv_val] + subprocess.run(cmd, check=True) + + +if __name__ == "__main__": + main() diff --git a/tests/test_make_game_ngx.py b/tests/test_make_game_ngx.py index 035a2564b..9cc67160f 100644 --- a/tests/test_make_game_ngx.py +++ b/tests/test_make_game_ngx.py @@ -58,23 +58,13 @@ def built(self, platform, sdk=None): with mock.patch.object(make_game, "LINUX", platform == "linux"), mock.patch.dict(os.environ, env): return make_game.ngx_built() - def test_jitter_only_in_a_build_with_the_sdk(self): - # (make_game sets OOT_DLSS_JITTER=1 for the lift only then: nx2/oot_jitter.py) + def test_built_with_this_platforms_library(self): + # (the camera jitter is no longer tied to this: nx2/oot_jitter.py is in every standalone lift, for FSR 3.1 as well) self.assertFalse(self.built("linux", sdk="")) self.assertFalse(self.built("linux")) # (no library yet) self.sdk_files("linux", runtime=False) self.assertTrue(self.built("linux")) self.assertFalse(self.built("windows")) # (another platform's library only) - import sys - sys.path.insert(0, str(ROOT / "nx2")) - try: - import oot_jitter - finally: - sys.path.pop(0) - with mock.patch.dict(os.environ, {"OOT_DLSS_JITTER": "1"}): - self.assertTrue(oot_jitter.wanted()) - with mock.patch.dict(os.environ, {}, clear=True): - self.assertFalse(oot_jitter.wanted()) def test_linux_runtime(self): self.sdk_files("linux") diff --git a/tests/test_rumble_menu.py b/tests/test_rumble_menu.py index d8f0670c8..395510407 100644 --- a/tests/test_rumble_menu.py +++ b/tests/test_rumble_menu.py @@ -80,6 +80,8 @@ def one_line(text, head): %(ini_key)s /* (the Microphone row's hook in set_row: no microphones here) */ bool can_mic() { return false; } +/* (the Upscaler row's choices, which set_row steps through: the game's own only, here) */ +unsigned upscalers_available() { return 1; } void mic_chosen() {} // (set_row steps the Output row through vk_menu.cpp's step_output_choice (#1144): not what this checks) int step_output_choice(int id, int dir) { return id + dir; } diff --git a/tests/test_upscaler_rows.cpp b/tests/test_upscaler_rows.cpp index a12a55328..4f5097c15 100644 --- a/tests/test_upscaler_rows.cpp +++ b/tests/test_upscaler_rows.cpp @@ -53,6 +53,33 @@ int main() { // the Upscaler row only in a build with DLSS; the rows with nothing to choose CHECK("upscaler row shown", ur::upscaler_shown(true) && !ur::upscaler_shown(false)); + // AMD FSR 3.1 on the same row, after DLAA: stepping visits only what runs here, and wraps + { + const unsigned all = ur::bit(GAME) | ur::dlss_bits(true) | ur::bit(ur::FSR3); + const unsigned fsr3 = ur::bit(GAME) | ur::bit(ur::FSR3); + CHECK("FSR 3.1 after DLAA", ur::FSR3 == 3 && ur::kUpscalers == 4); + CHECK("upscaler steps through all four", ur::step_upscaler(DLAA, 1, all) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, 1, all) == GAME && + ur::step_upscaler(GAME, -1, all) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, -1, all) == DLAA); + CHECK("upscaler without DLSS skips it", ur::step_upscaler(GAME, 1, fsr3) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, 1, fsr3) == GAME && + ur::step_upscaler(GAME, -1, fsr3) == ur::FSR3); + CHECK("an upscaler that cannot run here steps as the game's own", ur::step_upscaler(DLSS, 1, fsr3) == ur::FSR3 && + ur::step_upscaler(ur::FSR3, 1, ur::bit(GAME)) == GAME); + CHECK("the DLSS-only form is the mask's", ur::step_upscaler(DLAA, 1, true) == GAME && ur::step_upscaler(GAME, -1, true) == DLAA); + CHECK("upscaler fixed only with nothing but the game's own", + ur::upscaler_fixed(ur::bit(GAME)) && !ur::upscaler_fixed(fsr3) && !ur::upscaler_fixed(all)); + CHECK("upscaler row shown with FSR 3.1 alone", ur::upscaler_shown(false, true) && !ur::upscaler_shown(false, false) && + ur::upscaler_shown(true, false)); + CHECK("FSR 3.1's modes are DLSS's shares", ur::scales_by_mode(ur::FSR3) && ur::scales_by_mode(DLSS) && + !ur::scales_by_mode(DLAA) && !ur::scales_by_mode(GAME)); + CHECK("FSR 3.1 steps as DLSS does", ur::step(ur::FSR3, 0, 1) == 3 && ur::step(ur::FSR3, 3, 1) == 5 && + ur::step(ur::FSR3, 6, 1) == 0 && ur::snap(ur::FSR3, 2) == 3); + CHECK("the model row waits with FSR 3.1", ur::model_fixed(ur::FSR3, false) && !ur::model_fixed(DLSS, false) && + !ur::model_fixed(DLAA, false)); + CHECK("FSR 3.1 has a Render resolution", !ur::resolution_fixed(ur::FSR3)); + } CHECK("upscaler fixed where DLSS cannot run", ur::upscaler_fixed(false) && !ur::upscaler_fixed(true)); CHECK("render resolution fixed with DLAA only", ur::resolution_fixed(DLAA) && !ur::resolution_fixed(DLSS) && !ur::resolution_fixed(GAME)); diff --git a/tests/test_upscaler_rows.py b/tests/test_upscaler_rows.py index 78ceff627..28dcf55d5 100644 --- a/tests/test_upscaler_rows.py +++ b/tests/test_upscaler_rows.py @@ -1,6 +1,6 @@ -"""The Insert menu's scaling rows: the Upscaler (opts.dlss) and the Render resolution's steps for it (gpu/vk/upscaler_rows.h), -their order on the Graphics tab, options files from before still loading, and their help (why DLSS is not offered, the -Sharpness DLSS wants). No game or GPU required. +"""The Insert menu's scaling rows: the Upscaler (opts.dlss: the game's own, DLSS, DLAA, AMD FSR 3.1) and the Render resolution's +steps for it (gpu/vk/upscaler_rows.h), their order on the Graphics tab, options files from before still loading, and their +help (why DLSS is not offered, the Sharpness DLSS wants). No game or GPU required. python -I -B tests/test_upscaler_rows.py [--cxx g++] """ @@ -47,7 +47,7 @@ def main(): # the menu's rules are upscaler_rows.h's, checked by behaviour in test_upscaler_rows.cpp: here only that the menu uses them uses = { "row_fixed": ("ur::upscaler_fixed(", "ur::resolution_fixed(", "reflex_available()", "ur::model_fixed("), - "row_shown": ("ur::upscaler_shown(dlss_built())", "ur::model_shown(dlss_built())"), + "row_shown": ("ur::upscaler_shown(dlss_built(), fsr3::supported())", "ur::model_shown(dlss_built())"), "set_row": ("ur::step_upscaler(", "ur::step(", "ur::snap(", "row_fixed("), } for name, calls in uses.items(): @@ -94,6 +94,13 @@ def main(): raise SystemExit("vk_dlss.cpp: the DLSS model row (and RX_VK_DLSS_PRESET over it) is not the preset asked for") if "dlss_why() != DLSS_OK" not in function(dlss, "int dlss_mode() {"): raise SystemExit("dlss_mode asks for DLSS where it cannot run (DLAA would hold the 3D at full scale for nothing)") + if "std::clamp(" in function(dlss, "int dlss_mode() {"): + raise SystemExit("dlss_mode clamps the row's value: FSR 3.1 (3) would run DLAA") + # FSR 3.1 is offered where it runs, and the row steps over what does not run here + if "fsr3::supported()" not in function(menu, "unsigned upscalers_available() {"): + raise SystemExit("upscalers_available does not ask vk_fsr3.cpp whether FSR 3.1 runs here") + if "upscalers_available()" not in function(menu, "void set_row(") or "upscalers_available()" not in function(menu, "bool row_fixed("): + raise SystemExit("the Upscaler row does not step over (or fix on) what runs here") with tempfile.TemporaryDirectory(prefix="upscaler-rows-") as tmp: exe = Path(tmp) / "upscaler-rows" subprocess.run([args.cxx, "-std=c++20", "-Wall", "-Wextra", "-Werror", diff --git a/third_party/fidelityfx-sdk/LICENSE.txt b/third_party/fidelityfx-sdk/LICENSE.txt new file mode 100644 index 000000000..3712e34ad --- /dev/null +++ b/third_party/fidelityfx-sdk/LICENSE.txt @@ -0,0 +1,21 @@ +This file is part of the FidelityFX SDK. + +Copyright (C) 2024 Advanced Micro Devices, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/third_party/fidelityfx-sdk/PROVENANCE.md b/third_party/fidelityfx-sdk/PROVENANCE.md new file mode 100644 index 000000000..5e32ffdca --- /dev/null +++ b/third_party/fidelityfx-sdk/PROVENANCE.md @@ -0,0 +1,26 @@ +# FidelityFX SDK + +AMD FidelityFX SDK, used for the FSR 3.1 upscaler's GPU sources. Unmodified upstream copy. + +- Upstream: https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK +- Version: v1.1.4, commit `c6efa6bf7f2027b3ec94f28578bb5965eabb9e55` +- License: MIT, in `LICENSE.txt`. Keep it with any distribution. + +What is here and why: + +| | | +|---|---| +| `include/FidelityFX/gpu/` | The GPU-side headers the passes include: the common core, `fsr1/`, `spd/` (the single-pass downsampler the pyramids use), `fsr3upscaler/`, `frameinterpolation/` and `opticalflow/` | +| `shaders/fsr3upscaler/*.glsl` | The eight upscaler passes, as AMD ships them | +| `shaders/frameinterpolation/*.glsl` | The eleven frame-interpolation passes, from `sdk/src/backends/vk/shaders/frameinterpolation/` | +| `shaders/opticalflow/*.glsl` | The seven optical-flow passes frame interpolation runs on, from `sdk/src/backends/vk/shaders/opticalflow/` | +| `LICENSE.txt` | AMD's MIT notice | + +No runtime library is needed, and none is included: the passes are compiled from these sources into +`gpu/vk/shaders/fsr3_*_comp_spv.h` by `scripts/fsr3_shaders.py`, which is also what +`tests/test_fsr3_shaders.py` runs to prove the checked-in headers still match. This is the SDK-source +route rather than AMD's FidelityFX API, which would load AMD's own Vulkan runtime and is Windows +only: these passes run on any GPU, on Windows and Linux alike. + +Nothing in this folder is edited. A change belongs in a new folder with its own note, per +`CONTRIBUTING.md`. diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h new file mode 100644 index 000000000..2c4f0ba02 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_common_types.h @@ -0,0 +1,558 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_COMMON_TYPES_H +#define FFX_COMMON_TYPES_H + +#if defined(FFX_CPU) +#define FFX_PARAMETER_IN +#define FFX_PARAMETER_OUT +#define FFX_PARAMETER_INOUT +#define FFX_PARAMETER_UNIFORM +#elif defined(FFX_HLSL) +#define FFX_PARAMETER_IN in +#define FFX_PARAMETER_OUT out +#define FFX_PARAMETER_INOUT inout +#define FFX_PARAMETER_UNIFORM uniform +#elif defined(FFX_GLSL) +#define FFX_PARAMETER_IN in +#define FFX_PARAMETER_OUT out +#define FFX_PARAMETER_INOUT inout +#define FFX_PARAMETER_UNIFORM const //[cacao_placeholder] until a better fit is found! +#endif // #if defined(FFX_CPU) + +#if defined(FFX_CPU) +/// A typedef for a boolean value. +/// +/// @ingroup CPUTypes +typedef bool FfxBoolean; + +/// A typedef for a unsigned 8bit integer. +/// +/// @ingroup CPUTypes +typedef uint8_t FfxUInt8; + +/// A typedef for a unsigned 16bit integer. +/// +/// @ingroup CPUTypes +typedef uint16_t FfxUInt16; + +/// A typedef for a unsigned 32bit integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32; + +/// A typedef for a unsigned 64bit integer. +/// +/// @ingroup CPUTypes +typedef uint64_t FfxUInt64; + +/// A typedef for a signed 8bit integer. +/// +/// @ingroup CPUTypes +typedef int8_t FfxInt8; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup CPUTypes +typedef int16_t FfxInt16; + +/// A typedef for a signed 32bit integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32; + +/// A typedef for a signed 64bit integer. +/// +/// @ingroup CPUTypes +typedef int64_t FfxInt64; + +/// A typedef for a floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32; + +/// A typedef for a 2-dimensional floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x2[2]; + +/// A typedef for a 3-dimensional floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x3[3]; + +/// A typedef for a 4-dimensional floating point value. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x4[4]; + +/// A typedef for a 2x2 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x2x2[4]; + +/// A typedef for a 3x3 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x3x3[9]; + +/// A typedef for a 3x4 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x3x4[12]; + +/// A typedef for a 4x4 floating point matrix. +/// +/// @ingroup CPUTypes +typedef float FfxFloat32x4x4[16]; + +/// A typedef for a 2-dimensional 32bit signed integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32x2[2]; + +/// A typedef for a 3-dimensional 32bit signed integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32x3[3]; + +/// A typedef for a 4-dimensional 32bit signed integer. +/// +/// @ingroup CPUTypes +typedef int32_t FfxInt32x4[4]; + +/// A typedef for a 2-dimensional 32bit usigned integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32x2[2]; + +/// A typedef for a 3-dimensional 32bit unsigned integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32x3[3]; + +/// A typedef for a 4-dimensional 32bit unsigned integer. +/// +/// @ingroup CPUTypes +typedef uint32_t FfxUInt32x4[4]; +#endif // #if defined(FFX_CPU) + +#if defined(FFX_HLSL) + +#define FfxFloat32Mat4 matrix +#define FfxFloat32Mat3 matrix + +/// A typedef for a boolean value. +/// +/// @ingroup HLSLTypes +typedef bool FfxBoolean; + +#if FFX_HLSL_SM>=62 + +/// @defgroup HLSL62Types HLSL 6.2 And Above Types +/// HLSL 6.2 and above type defines for all commonly used variables +/// +/// @ingroup HLSLTypes + +/// A typedef for a floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t FfxFloat32; + +/// A typedef for a 2-dimensional floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t2 FfxFloat32x2; + +/// A typedef for a 3-dimensional floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t3 FfxFloat32x3; + +/// A typedef for a 4-dimensional floating point value. +/// +/// @ingroup HLSL62Types +typedef float32_t4 FfxFloat32x4; + +/// A [cacao_placeholder] typedef for matrix type until confirmed. +typedef float4x4 FfxFloat32x4x4; +typedef float3x4 FfxFloat32x3x4; +typedef float3x3 FfxFloat32x3x3; +typedef float2x2 FfxFloat32x2x2; + +/// A typedef for a unsigned 32bit integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t FfxUInt32; + +/// A typedef for a 2-dimensional 32bit unsigned integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t2 FfxUInt32x2; + +/// A typedef for a 3-dimensional 32bit unsigned integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t3 FfxUInt32x3; + +/// A typedef for a 4-dimensional 32bit unsigned integer. +/// +/// @ingroup HLSL62Types +typedef uint32_t4 FfxUInt32x4; + +/// A typedef for a signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t FfxInt32; + +/// A typedef for a 2-dimensional signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t2 FfxInt32x2; + +/// A typedef for a 3-dimensional signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t3 FfxInt32x3; + +/// A typedef for a 4-dimensional signed 32bit integer. +/// +/// @ingroup HLSL62Types +typedef int32_t4 FfxInt32x4; + +#else // #if FFX_HLSL_SM>=62 + +/// @defgroup HLSLBaseTypes HLSL 6.1 And Below Types +/// HLSL 6.1 and below type defines for all commonly used variables +/// +/// @ingroup HLSLTypes + +#define FfxFloat32 float +#define FfxFloat32x2 float2 +#define FfxFloat32x3 float3 +#define FfxFloat32x4 float4 + +/// A [cacao_placeholder] typedef for matrix type until confirmed. +#define FfxFloat32x4x4 float4x4 +#define FfxFloat32x3x4 float3x4 +#define FfxFloat32x3x3 float3x3 +#define FfxFloat32x2x2 float2x2 + +/// A typedef for a unsigned 32bit integer. +/// +/// @ingroup GPU +typedef uint FfxUInt32; +typedef uint2 FfxUInt32x2; +typedef uint3 FfxUInt32x3; +typedef uint4 FfxUInt32x4; + +typedef int FfxInt32; +typedef int2 FfxInt32x2; +typedef int3 FfxInt32x3; +typedef int4 FfxInt32x4; + +#endif // #if FFX_HLSL_SM>=62 + +#if FFX_HALF + +#if FFX_HLSL_SM >= 62 + +typedef float16_t FfxFloat16; +typedef float16_t2 FfxFloat16x2; +typedef float16_t3 FfxFloat16x3; +typedef float16_t4 FfxFloat16x4; + +/// A typedef for an unsigned 16bit integer. +/// +/// @ingroup HLSLTypes +typedef uint16_t FfxUInt16; +typedef uint16_t2 FfxUInt16x2; +typedef uint16_t3 FfxUInt16x3; +typedef uint16_t4 FfxUInt16x4; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup HLSLTypes +typedef int16_t FfxInt16; +typedef int16_t2 FfxInt16x2; +typedef int16_t3 FfxInt16x3; +typedef int16_t4 FfxInt16x4; +#else // #if FFX_HLSL_SM>=62 +typedef min16float FfxFloat16; +typedef min16float2 FfxFloat16x2; +typedef min16float3 FfxFloat16x3; +typedef min16float4 FfxFloat16x4; + +/// A typedef for an unsigned 16bit integer. +/// +/// @ingroup HLSLTypes +typedef min16uint FfxUInt16; +typedef min16uint2 FfxUInt16x2; +typedef min16uint3 FfxUInt16x3; +typedef min16uint4 FfxUInt16x4; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup HLSLTypes +typedef min16int FfxInt16; +typedef min16int2 FfxInt16x2; +typedef min16int3 FfxInt16x3; +typedef min16int4 FfxInt16x4; +#endif // #if FFX_HLSL_SM>=62 + +#endif // FFX_HALF + +#endif // #if defined(FFX_HLSL) + +#if defined(FFX_GLSL) + +#define FfxFloat32Mat4 mat4 +#define FfxFloat32Mat3 mat3 + +/// A typedef for a boolean value. +/// +/// @ingroup GLSLTypes +#define FfxBoolean bool +#define FfxFloat32 float +#define FfxFloat32x2 vec2 +#define FfxFloat32x3 vec3 +#define FfxFloat32x4 vec4 +#define FfxUInt32 uint +#define FfxUInt32x2 uvec2 +#define FfxUInt32x3 uvec3 +#define FfxUInt32x4 uvec4 +#define FfxInt32 int +#define FfxInt32x2 ivec2 +#define FfxInt32x3 ivec3 +#define FfxInt32x4 ivec4 + +/// A [cacao_placeholder] typedef for matrix type until confirmed. +#define FfxFloat32x4x4 mat4 +#define FfxFloat32x3x4 mat4x3 +#define FfxFloat32x3x3 mat3 +#define FfxFloat32x2x2 mat2 + +#if FFX_HALF +#define FfxFloat16 float16_t +#define FfxFloat16x2 f16vec2 +#define FfxFloat16x3 f16vec3 +#define FfxFloat16x4 f16vec4 +#define FfxUInt16 uint16_t +#define FfxUInt16x2 u16vec2 +#define FfxUInt16x3 u16vec3 +#define FfxUInt16x4 u16vec4 +#define FfxInt16 int16_t +#define FfxInt16x2 i16vec2 +#define FfxInt16x3 i16vec3 +#define FfxInt16x4 i16vec4 +#endif // FFX_HALF +#endif // #if defined(FFX_GLSL) + +// Global toggles: +// #define FFX_HALF (1) +// #define FFX_HLSL_SM (62) + +#if FFX_HALF + +#if FFX_HLSL_SM >= 62 + +#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType##16_t TypeName; +#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType##16_t TypeName; +#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#else //FFX_HLSL_SM>=62 + +#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef min16##BaseComponentType TypeName; +#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) FFX_MIN16_SCALAR( TypeName, BaseComponentType ); +#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ); +#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ); + +#endif //FFX_HLSL_SM>=62 + +#else //FFX_HALF + +#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType TypeName; +#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) typedef BaseComponentType TypeName; +#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) typedef vector TypeName; +#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) typedef matrix TypeName; + +#endif //FFX_HALF + +#if defined(FFX_GPU) +// Common typedefs: +#if defined(FFX_HLSL) +FFX_MIN16_SCALAR( FFX_MIN16_F , float ); +FFX_MIN16_VECTOR( FFX_MIN16_F2, float, 2 ); +FFX_MIN16_VECTOR( FFX_MIN16_F3, float, 3 ); +FFX_MIN16_VECTOR( FFX_MIN16_F4, float, 4 ); + +FFX_MIN16_SCALAR( FFX_MIN16_I, int ); +FFX_MIN16_VECTOR( FFX_MIN16_I2, int, 2 ); +FFX_MIN16_VECTOR( FFX_MIN16_I3, int, 3 ); +FFX_MIN16_VECTOR( FFX_MIN16_I4, int, 4 ); + +FFX_MIN16_SCALAR( FFX_MIN16_U, uint ); +FFX_MIN16_VECTOR( FFX_MIN16_U2, uint, 2 ); +FFX_MIN16_VECTOR( FFX_MIN16_U3, uint, 3 ); +FFX_MIN16_VECTOR( FFX_MIN16_U4, uint, 4 ); + +FFX_16BIT_SCALAR( FFX_F16_t , float ); +FFX_16BIT_VECTOR( FFX_F16_t2, float, 2 ); +FFX_16BIT_VECTOR( FFX_F16_t3, float, 3 ); +FFX_16BIT_VECTOR( FFX_F16_t4, float, 4 ); + +FFX_16BIT_SCALAR( FFX_I16_t, int ); +FFX_16BIT_VECTOR( FFX_I16_t2, int, 2 ); +FFX_16BIT_VECTOR( FFX_I16_t3, int, 3 ); +FFX_16BIT_VECTOR( FFX_I16_t4, int, 4 ); + +FFX_16BIT_SCALAR( FFX_U16_t, uint ); +FFX_16BIT_VECTOR( FFX_U16_t2, uint, 2 ); +FFX_16BIT_VECTOR( FFX_U16_t3, uint, 3 ); +FFX_16BIT_VECTOR( FFX_U16_t4, uint, 4 ); + +#define TYPEDEF_MIN16_TYPES(Prefix) \ +typedef FFX_MIN16_F Prefix##_F; \ +typedef FFX_MIN16_F2 Prefix##_F2; \ +typedef FFX_MIN16_F3 Prefix##_F3; \ +typedef FFX_MIN16_F4 Prefix##_F4; \ +typedef FFX_MIN16_I Prefix##_I; \ +typedef FFX_MIN16_I2 Prefix##_I2; \ +typedef FFX_MIN16_I3 Prefix##_I3; \ +typedef FFX_MIN16_I4 Prefix##_I4; \ +typedef FFX_MIN16_U Prefix##_U; \ +typedef FFX_MIN16_U2 Prefix##_U2; \ +typedef FFX_MIN16_U3 Prefix##_U3; \ +typedef FFX_MIN16_U4 Prefix##_U4; + +#define TYPEDEF_16BIT_TYPES(Prefix) \ +typedef FFX_16BIT_F Prefix##_F; \ +typedef FFX_16BIT_F2 Prefix##_F2; \ +typedef FFX_16BIT_F3 Prefix##_F3; \ +typedef FFX_16BIT_F4 Prefix##_F4; \ +typedef FFX_16BIT_I Prefix##_I; \ +typedef FFX_16BIT_I2 Prefix##_I2; \ +typedef FFX_16BIT_I3 Prefix##_I3; \ +typedef FFX_16BIT_I4 Prefix##_I4; \ +typedef FFX_16BIT_U Prefix##_U; \ +typedef FFX_16BIT_U2 Prefix##_U2; \ +typedef FFX_16BIT_U3 Prefix##_U3; \ +typedef FFX_16BIT_U4 Prefix##_U4; + +#define TYPEDEF_FULL_PRECISION_TYPES(Prefix) \ +typedef FfxFloat32 Prefix##_F; \ +typedef FfxFloat32x2 Prefix##_F2; \ +typedef FfxFloat32x3 Prefix##_F3; \ +typedef FfxFloat32x4 Prefix##_F4; \ +typedef FfxInt32 Prefix##_I; \ +typedef FfxInt32x2 Prefix##_I2; \ +typedef FfxInt32x3 Prefix##_I3; \ +typedef FfxInt32x4 Prefix##_I4; \ +typedef FfxUInt32 Prefix##_U; \ +typedef FfxUInt32x2 Prefix##_U2; \ +typedef FfxUInt32x3 Prefix##_U3; \ +typedef FfxUInt32x4 Prefix##_U4; +#endif // #if defined(FFX_HLSL) + +#if defined(FFX_GLSL) + +#if FFX_HALF + +#define FFX_MIN16_F float16_t +#define FFX_MIN16_F2 f16vec2 +#define FFX_MIN16_F3 f16vec3 +#define FFX_MIN16_F4 f16vec4 + +#define FFX_MIN16_I int16_t +#define FFX_MIN16_I2 i16vec2 +#define FFX_MIN16_I3 i16vec3 +#define FFX_MIN16_I4 i16vec4 + +#define FFX_MIN16_U uint16_t +#define FFX_MIN16_U2 u16vec2 +#define FFX_MIN16_U3 u16vec3 +#define FFX_MIN16_U4 u16vec4 + +#define FFX_16BIT_F float16_t +#define FFX_16BIT_F2 f16vec2 +#define FFX_16BIT_F3 f16vec3 +#define FFX_16BIT_F4 f16vec4 + +#define FFX_16BIT_I int16_t +#define FFX_16BIT_I2 i16vec2 +#define FFX_16BIT_I3 i16vec3 +#define FFX_16BIT_I4 i16vec4 + +#define FFX_16BIT_U uint16_t +#define FFX_16BIT_U2 u16vec2 +#define FFX_16BIT_U3 u16vec3 +#define FFX_16BIT_U4 u16vec4 + +#else // FFX_HALF + +#define FFX_MIN16_F float +#define FFX_MIN16_F2 vec2 +#define FFX_MIN16_F3 vec3 +#define FFX_MIN16_F4 vec4 + +#define FFX_MIN16_I int +#define FFX_MIN16_I2 ivec2 +#define FFX_MIN16_I3 ivec3 +#define FFX_MIN16_I4 ivec4 + +#define FFX_MIN16_U uint +#define FFX_MIN16_U2 uvec2 +#define FFX_MIN16_U3 uvec3 +#define FFX_MIN16_U4 uvec4 + +#define FFX_16BIT_F float +#define FFX_16BIT_F2 vec2 +#define FFX_16BIT_F3 vec3 +#define FFX_16BIT_F4 vec4 + +#define FFX_16BIT_I int +#define FFX_16BIT_I2 ivec2 +#define FFX_16BIT_I3 ivec3 +#define FFX_16BIT_I4 ivec4 + +#define FFX_16BIT_U uint +#define FFX_16BIT_U2 uvec2 +#define FFX_16BIT_U3 uvec3 +#define FFX_16BIT_U4 uvec4 + +#endif // FFX_HALF + +#endif // #if defined(FFX_GLSL) + +#endif // #if defined(FFX_GPU) +#endif // #ifndef FFX_COMMON_TYPES_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h new file mode 100644 index 000000000..d1ed14419 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core.h @@ -0,0 +1,80 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup FfxGPU GPU +/// The FidelityFX SDK GPU References +/// +/// @ingroup ffxSDK + +/// @defgroup FfxHLSL HLSL References +/// FidelityFX SDK HLSL GPU References +/// +/// @ingroup FfxGPU + +/// @defgroup FfxGLSL GLSL References +/// FidelityFX SDK GLSL GPU References +/// +/// @ingroup FfxGPU + +/// @defgroup FfxGPUEffects FidelityFX GPU References +/// FidelityFX Effect GPU Reference Documentation +/// +/// @ingroup FfxGPU + +/// @defgroup GPUCore GPU Core +/// GPU defines and functions +/// +/// @ingroup FfxGPU + +#if !defined(FFX_CORE_H) +#define FFX_CORE_H + +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic push +#pragma dxc diagnostic ignored "-Wambig-lit-shift" +#endif //__hlsl_dx_compiler + +#include "ffx_common_types.h" + +#if defined(FFX_CPU) + #include "ffx_core_cpu.h" +#endif // #if defined(FFX_CPU) + +#if defined(FFX_GLSL) && defined(FFX_GPU) + #include "ffx_core_glsl.h" +#endif // #if defined(FFX_GLSL) && defined(FFX_GPU) + +#if defined(FFX_HLSL) && defined(FFX_GPU) + #include "ffx_core_hlsl.h" +#endif // #if defined(FFX_HLSL) && defined(FFX_GPU) + +#if defined(FFX_GPU) + #include "ffx_core_gpu_common.h" + #include "ffx_core_gpu_common_half.h" + #include "ffx_core_portability.h" +#endif // #if defined(FFX_GPU) + +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic pop +#endif //__hlsl_dx_compiler + +#endif // #if !defined(FFX_CORE_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h new file mode 100644 index 000000000..c8dccacdb --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_glsl.h @@ -0,0 +1,1916 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup GLSLCore GLSL Core +/// GLSL core defines and functions +/// +/// @ingroup FfxGLSL + +/// A define for abstracting select functionality for pre/post HLSL 21 +/// +/// @ingroup GLSLCore +#define FFX_SELECT(cond, arg1, arg2) cond ? arg1 : arg2 + +/// A define for abstracting shared memory between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_GROUPSHARED shared + +/// A define for abstracting compute memory barriers between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_GROUP_MEMORY_BARRIER groupMemoryBarrier(); barrier() + +/// A define for abstracting compute atomic additions between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_ADD(x, y) atomicAdd(x, y) + +/// A define for abstracting compute atomic additions between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_ADD_RETURN(x, y, r) r = atomicAdd(x, y) + +/// A define for abstracting compute atomic OR between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_OR(x, y) atomicOr(x, y) + +/// A define for abstracting compute atomic min between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_MIN(x, y) atomicMin(x, y) + +/// A define for abstracting compute atomic max between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_ATOMIC_MAX(x, y) atomicMax(x, y) + +/// A define added to accept static markup on functions to aid CPU/GPU portability of code. +/// +/// @ingroup GLSLCore +#define FFX_STATIC + +/// A define for abstracting loop unrolling between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_UNROLL + +/// A define for abstracting a 'greater than' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_GREATER_THAN(x, y) greaterThan(x, y) + +/// A define for abstracting a 'greater than or equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_GREATER_THAN_EQUAL(x, y) greaterThanEqual(x, y) + +/// A define for abstracting a 'less than' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_LESS_THAN(x, y) lessThan(x, y) + +/// A define for abstracting a 'less than or equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_LESS_THAN_EQUAL(x, y) lessThanEqual(x, y) + +/// A define for abstracting an 'equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_EQUAL(x, y) equal(x, y) + +/// A define for abstracting a 'not equal' comparison operator between two types. +/// +/// @ingroup GLSLCore +#define FFX_NOT_EQUAL(x, y) notEqual(x, y) + +/// A define for abstracting matrix multiply operations between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_MATRIX_MULTIPLY(a, b) (a * b) + +/// A define for abstracting vector transformations between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_TRANSFORM_VECTOR(a, b) (a * b) + +/// A define for abstracting modulo operations between shading languages. +/// +/// @ingroup GLSLCore +#define FFX_MODULO(a, b) (mod(a, b)) + +/// Broadcast a scalar value to a 1-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32(x) FfxFloat32(x) + +/// Broadcast a scalar value to a 2-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32X2(x) FfxFloat32x2(FfxFloat32(x)) + +/// Broadcast a scalar value to a 3-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32X3(x) FfxFloat32x3(FfxFloat32(x)) + +/// Broadcast a scalar value to a 4-dimensional floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_FLOAT32X4(x) FfxFloat32x4(FfxFloat32(x)) + +/// Broadcast a scalar value to a 1-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32(x) FfxUInt32(x) + +/// Broadcast a scalar value to a 2-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32X2(x) FfxUInt32x2(FfxUInt32(x)) + +/// Broadcast a scalar value to a 3-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32X3(x) FfxUInt32x3(FfxUInt32(x)) + +/// Broadcast a scalar value to a 4-dimensional unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_UINT32X4(x) FfxUInt32x4(FfxUInt32(x)) + +/// Broadcast a scalar value to a 1-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32(x) FfxInt32(x) + +/// Broadcast a scalar value to a 2-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32X2(x) FfxInt32x2(FfxInt32(x)) + +/// Broadcast a scalar value to a 3-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32X3(x) FfxInt32x3(FfxInt32(x)) + +/// Broadcast a scalar value to a 4-dimensional signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_INT32X4(x) FfxInt32x4(FfxInt32(x)) + +/// Broadcast a scalar value to a 1-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16(x) FFX_MIN16_F(x) + +/// Broadcast a scalar value to a 2-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16X2(x) FFX_MIN16_F2(FFX_MIN16_F(x)) + +/// Broadcast a scalar value to a 3-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16X3(x) FFX_MIN16_F3(FFX_MIN16_F(x)) + +/// Broadcast a scalar value to a 4-dimensional half-precision floating point vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_FLOAT16X4(x) FFX_MIN16_F4(FFX_MIN16_F(x)) + +/// Broadcast a scalar value to a 1-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16(x) FFX_MIN16_U(x) + +/// Broadcast a scalar value to a 2-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16X2(x) FFX_MIN16_U2(FFX_MIN16_U(x)) + +/// Broadcast a scalar value to a 3-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16X3(x) FFX_MIN16_U3(FFX_MIN16_U(x)) + +/// Broadcast a scalar value to a 4-dimensional half-precision unsigned integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_UINT16X4(x) FFX_MIN16_U4(FFX_MIN16_U(x)) + +/// Broadcast a scalar value to a 1-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16(x) FFX_MIN16_I(x) + +/// Broadcast a scalar value to a 2-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16X2(x) FFX_MIN16_I2(FFX_MIN16_I(x)) + +/// Broadcast a scalar value to a 3-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16X3(x) FFX_MIN16_I3(FFX_MIN16_I(x)) + +/// Broadcast a scalar value to a 4-dimensional half-precision signed integer vector. +/// +/// @ingroup GLSLCore +#define FFX_BROADCAST_MIN_INT16X4(x) FFX_MIN16_I4(FFX_MIN16_I(x)) + + #extension GL_EXT_shader_explicit_arithmetic_types : require +#if !defined(FFX_SKIP_EXT) +#if FFX_HALF + #extension GL_EXT_shader_16bit_storage : require +#endif // FFX_HALF + +#if defined(FFX_LONG) + #extension GL_ARB_gpu_shader_int64 : require + #extension GL_NV_shader_atomic_int64 : require +#endif // #if defined(FFX_LONG) + +#if defined(FFX_WAVE) + #extension GL_KHR_shader_subgroup_arithmetic : require + #extension GL_KHR_shader_subgroup_ballot : require + #extension GL_KHR_shader_subgroup_quad : require + #extension GL_KHR_shader_subgroup_shuffle : require +#endif // #if defined(FFX_WAVE) +#endif // #if !defined(FFX_SKIP_EXT) + +// Forward declarations +FfxFloat32 ffxSqrt(FfxFloat32 x); +FfxFloat32x2 ffxSqrt(FfxFloat32x2 x); +FfxFloat32x3 ffxSqrt(FfxFloat32x3 x); +FfxFloat32x4 ffxSqrt(FfxFloat32x4 x); + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxAsFloat(FfxUInt32 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxAsFloat(FfxUInt32x2 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxAsFloat(FfxUInt32x3 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as a floating-point number. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as a floating-point number. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxAsFloat(FfxUInt32x4 x) +{ + return uintBitsToFloat(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxAsUInt32(FfxFloat32 x) +{ + return floatBitsToUint(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxAsUInt32(FfxFloat32x2 x) +{ + return floatBitsToUint(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxAsUInt32(FfxFloat32x3 x) +{ + return floatBitsToUint(x); +} + +/// Interprets the bit pattern of x as an unsigned integer. +/// +/// @param [in] x The input value. +/// +/// @returns +/// The input interpreted as an unsigned integer. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxAsUInt32(FfxFloat32x4 x) +{ + return floatBitsToUint(x); +} + +/// Pack 2x32-bit floating point values in a single 32bit value. +/// +/// This function first converts each component of value into their nearest 16-bit floating +/// point representation, and then stores the X and Y components in the lower and upper 16 bits of the +/// 32bit unsigned integer respectively. +/// +/// @param [in] value A 2-dimensional floating point value to convert and pack. +/// +/// @returns +/// A packed 32bit value containing 2 16bit floating point values. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxPackHalf2x16(FfxFloat32x2 value) +{ + return packHalf2x16(value); +} + +/// Convert a 32bit IEEE 754 floating point value to its nearest 16bit equivalent. +/// +/// @param [in] value The value to convert. +/// +/// @returns +/// The nearest 16bit equivalent of value. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxF32ToF16(FfxFloat32 value) +{ + return packHalf2x16(FfxFloat32x2(value, 0.0)); +} + +/// Broadcast a scalar value to a 2-dimensional floating point vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 2-dimensional floating point vector with value in each component. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxBroadcast2(FfxFloat32 value) +{ + return FfxFloat32x2(value, value); +} + +/// Broadcast a scalar value to a 3-dimensional floating point vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 3-dimensional floating point vector with value in each component. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxBroadcast3(FfxFloat32 value) +{ + return FfxFloat32x3(value, value, value); +} + +/// Broadcast a scalar value to a 4-dimensional floating point vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 4-dimensional floating point vector with value in each component. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxBroadcast4(FfxFloat32 value) +{ + return FfxFloat32x4(value, value, value, value); +} + +/// Broadcast a scalar value to a 2-dimensional signed integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 2-dimensional signed integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxInt32x2 ffxBroadcast2(FfxInt32 value) +{ + return FfxInt32x2(value, value); +} + +/// Broadcast a scalar value to a 3-dimensional signed integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 3-dimensional signed integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxInt32x3 ffxBroadcast3(FfxInt32 value) +{ + return FfxInt32x3(value, value, value); +} + +/// Broadcast a scalar value to a 4-dimensional signed integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 4-dimensional signed integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxInt32x4 ffxBroadcast4(FfxInt32 value) +{ + return FfxInt32x4(value, value, value, value); +} + +/// Broadcast a scalar value to a 2-dimensional unsigned integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 2-dimensional unsigned integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxBroadcast2(FfxUInt32 value) +{ + return FfxUInt32x2(value, value); +} + +/// Broadcast a scalar value to a 3-dimensional unsigned integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 3-dimensional unsigned integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxBroadcast3(FfxUInt32 value) +{ + return FfxUInt32x3(value, value, value); +} + +/// Broadcast a scalar value to a 4-dimensional unsigned integer vector. +/// +/// @param [in] value The value to to broadcast. +/// +/// @returns +/// A 4-dimensional unsigned integer vector with value in each component. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxBroadcast4(FfxUInt32 value) +{ + return FfxUInt32x4(value, value, value, value); +} + +/// +/// +/// @ingroup GLSLCore +FfxUInt32 ffxBitfieldExtract(FfxUInt32 src, FfxUInt32 off, FfxUInt32 bits) +{ + return bitfieldExtract(src, FfxInt32(off), FfxInt32(bits)); +} + +/// +/// +/// @ingroup GLSLCore +FfxUInt32 ffxBitfieldInsert(FfxUInt32 src, FfxUInt32 ins, FfxUInt32 mask) +{ + return (ins & mask) | (src & (~mask)); +} + +// Proxy for V_BFI_B32 where the 'mask' is set as 'bits', 'mask=(1<mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxLerp(FfxFloat32 x, FfxFloat32 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxLerp(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxLerp(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxLerp(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxLerp(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxLerp(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32 t) +{ + return mix(x, y, t); +} + +/// Compute the linear interopation between two values. +/// +/// Implemented by calling the GLSL mix instrinsic function. Implements the +/// following math: +/// +/// (1 - t) * x + t * y +/// +/// @param [in] x The first value to lerp between. +/// @param [in] y The second value to lerp between. +/// @param [in] t The value to determine how much of x and how much of y. +/// +/// @returns +/// A linearly interpolated value between x and y according to t. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxLerp(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 t) +{ + return mix(x, y, t); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxMax3(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxMax3(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxMax3(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxMax3(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxMax3(FfxUInt32 x, FfxUInt32 y, FfxUInt32 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN or RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxMax3(FfxUInt32x2 x, FfxUInt32x2 y, FfxUInt32x2 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxMax3(FfxUInt32x3 x, FfxUInt32x3 y, FfxUInt32x3 z) +{ + return max(x, max(y, z)); +} + +/// Compute the maximum of three values. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the max calculation. +/// @param [in] y The second value to include in the max calcuation. +/// @param [in] z The third value to include in the max calcuation. +/// +/// @returns +/// The maximum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxMax3(FfxUInt32x4 x, FfxUInt32x4 y, FfxUInt32x4 z) +{ + return max(x, max(y, z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxMed3(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxMed3(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxMed3(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxMed3(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32 ffxMed3(FfxInt32 x, FfxInt32 y, FfxInt32 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32x2 ffxMed3(FfxInt32x2 x, FfxInt32x2 y, FfxInt32x2 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32x3 ffxMed3(FfxInt32x3 x, FfxInt32x3 y, FfxInt32x3 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + +/// Compute the median of three values. +/// +/// NOTE: This function should compile down to a single V_MED3_I32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the median calculation. +/// @param [in] y The second value to include in the median calcuation. +/// @param [in] z The third value to include in the median calcuation. +/// +/// @returns +/// The median value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxInt32x4 ffxMed3(FfxInt32x4 x, FfxInt32x4 y, FfxInt32x4 z) +{ + return max(min(x, y), min(max(x, y), z)); +} + + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN and RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxMin3(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxMin3(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxMin3(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxMin3(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32 ffxMin3(FfxUInt32 x, FfxUInt32 y, FfxUInt32 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x2 ffxMin3(FfxUInt32x2 x, FfxUInt32x2 y, FfxUInt32x2 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x3 ffxMin3(FfxUInt32x3 x, FfxUInt32x3 y, FfxUInt32x3 z) +{ + return min(x, min(y, z)); +} + +/// Compute the minimum of three values. +/// +/// NOTE: This function should compile down to a single V_MIN3_F32 operation on +/// GCN/RDNA hardware. +/// +/// @param [in] x The first value to include in the min calculation. +/// @param [in] y The second value to include in the min calcuation. +/// @param [in] z The third value to include in the min calcuation. +/// +/// @returns +/// The minimum value of x, y, and z. +/// +/// @ingroup GLSLCore +FfxUInt32x4 ffxMin3(FfxUInt32x4 x, FfxUInt32x4 y, FfxUInt32x4 z) +{ + return min(x, min(y, z)); +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxReciprocal(FfxFloat32 x) +{ + return FfxFloat32(1.0) / x; +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxReciprocal(FfxFloat32x2 x) +{ + return ffxBroadcast2(1.0) / x; +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxReciprocal(FfxFloat32x3 x) +{ + return ffxBroadcast3(1.0) / x; +} + +/// Compute the reciprocal of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rcp can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxReciprocal(FfxFloat32x4 x) +{ + return ffxBroadcast4(1.0) / x; +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxRsqrt(FfxFloat32 x) +{ + return FfxFloat32(1.0) / ffxSqrt(x); +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxRsqrt(FfxFloat32x2 x) +{ + return ffxBroadcast2(1.0) / ffxSqrt(x); +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxRsqrt(FfxFloat32x3 x) +{ + return ffxBroadcast3(1.0) / ffxSqrt(x); +} + +/// Compute the reciprocal square root of a value. +/// +/// NOTE: This function is only provided for GLSL. In HLSL the intrinsic function rsqrt can be used. +/// +/// @param [in] x The value to compute the reciprocal for. +/// +/// @returns +/// The reciprocal square root value of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 rsqrt(FfxFloat32x4 x) +{ + return ffxBroadcast4(1.0) / ffxSqrt(x); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxSaturate(FfxFloat32 x) +{ + return clamp(x, FfxFloat32(0.0), FfxFloat32(1.0)); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxSaturate(FfxFloat32x2 x) +{ + return clamp(x, ffxBroadcast2(0.0), ffxBroadcast2(1.0)); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxSaturate(FfxFloat32x3 x) +{ + return clamp(x, ffxBroadcast3(0.0), ffxBroadcast3(1.0)); +} + +/// Clamp a value to a [0..1] range. +/// +/// @param [in] x The value to clamp to [0..1] range. +/// +/// @returns +/// The clamped version of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxSaturate(FfxFloat32x4 x) +{ + return clamp(x, ffxBroadcast4(0.0), ffxBroadcast4(1.0)); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxFract(FfxFloat32 x) +{ + return fract(x); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxFract(FfxFloat32x2 x) +{ + return fract(x); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxFract(FfxFloat32x3 x) +{ + return fract(x); +} + +/// Compute the factional part of a decimal value. +/// +/// This function calculates x - floor(x). Where floor is the intrinsic HLSL function. +/// +/// NOTE: This function should compile down to a single V_MAX3_F32 operation on GCN/RDNA hardware. It is +/// worth further noting that this function is intentionally distinct from the HLSL frac intrinsic +/// function. +/// +/// @param [in] x The value to compute the fractional part from. +/// +/// @returns +/// The fractional part of x. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxFract(FfxFloat32x4 x) +{ + return fract(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32 ffxRound(FfxFloat32 x) +{ + return roundEven(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32x2 ffxRound(FfxFloat32x2 x) +{ + return roundEven(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32x3 ffxRound(FfxFloat32x3 x) +{ + return roundEven(x); +} + +/// Rounds to the nearest integer. In case the fractional part is 0.5, it will round to the nearest even integer. +/// +/// @param [in] x The value to be rounded. +/// +/// @returns +/// The nearest integer from x. The nearest even integer from x if equidistant from 2 integer. +/// +/// @ingroup GLSLCore +FfxFloat32x4 ffxRound(FfxFloat32x4 x) +{ + return roundEven(x); +} + +FfxUInt32 ffxAShrSU1(FfxUInt32 a, FfxUInt32 b) +{ + return FfxUInt32(FfxInt32(a) >> FfxInt32(b)); +} + +FfxUInt32 ffxPackF32(FfxFloat32x2 v){ + return packHalf2x16(v); +} + +FfxFloat32x2 ffxUnpackF32(FfxUInt32 u){ + return unpackHalf2x16(u); +} + +FfxUInt32x2 ffxPackF32x2(FfxFloat32x4 v){ + return FfxUInt32x2(ffxPackF32(v.xy), ffxPackF32(v.zw)); +} + +FfxFloat32x4 ffxUnpackF32x2(FfxUInt32x2 a){ + return FfxFloat32x4(ffxUnpackF32(a.x), ffxUnpackF32(a.y)); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32 ffxInvertSafe(FfxFloat32 v){ + FfxFloat32 s = sign(v); + FfxFloat32 s2 = s*s; + return s2/(v + s2 - 1.0); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32x2 ffxInvertSafe(FfxFloat32x2 v){ + FfxFloat32x2 s = sign(v); + FfxFloat32x2 s2 = s*s; + return s2/(v + s2 - FfxFloat32x2(1.0, 1.0)); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32x3 ffxInvertSafe(FfxFloat32x3 v){ + FfxFloat32x3 s = sign(v); + FfxFloat32x3 s2 = s*s; + return s2/(v + s2 - FfxFloat32x3(1.0, 1.0, 1.0)); +} + +/// @brief Inverts the value while avoiding division by zero. If the value is zero, zero is returned. +/// @param v Value to invert. +/// @return If v = 0 returns 0. If v != 0 returns 1/v. +FfxFloat32x4 ffxInvertSafe(FfxFloat32x4 v){ + FfxFloat32x4 s = sign(v); + FfxFloat32x4 s2 = s*s; + return s2/(v + s2 - FfxFloat32x4(1.0, 1.0, 1.0, 1.0)); +} +#if FFX_HALF +#define FFX_UINT32_TO_FLOAT16X2(x) unpackFloat2x16(FfxUInt32(x)) + +FfxUInt32 ffxPackF16(FfxFloat16x2 v){ + return packHalf2x16(v); +} + +FfxFloat16x2 ffxUnpackF16(FfxUInt32 u){ + return FfxFloat16x2(unpackHalf2x16(u)); +} + +FfxFloat16x4 ffxUint32x2ToFloat16x4(FfxUInt32x2 x) +{ + return FfxFloat16x4(unpackFloat2x16(x.x), unpackFloat2x16(x.y)); +} +#define FFX_UINT32X2_TO_FLOAT16X4(x) ffxUint32x2ToFloat16x4(FfxUInt32x2(x)) +#define FFX_UINT32_TO_UINT16X2(x) unpackUint2x16(FfxUInt32(x)) +#define FFX_UINT32X2_TO_UINT16X4(x) unpackUint4x16(pack64(FfxUInt32x2(x))) +//------------------------------------------------------------------------------------------------------------------------------ +#define FFX_FLOAT16X2_TO_UINT32(x) packFloat2x16(FfxFloat16x2(x)) +FfxUInt32x2 ffxFloat16x4ToUint32x2(FfxFloat16x4 x) +{ + return FfxUInt32x2(packFloat2x16(x.xy), packFloat2x16(x.zw)); +} +#define FFX_FLOAT16X4_TO_UINT32X2(x) ffxFloat16x4ToUint32x2(FfxFloat16x4(x)) +#define FFX_UINT16X2_TO_UINT32(x) packUint2x16(FfxUInt16x2(x)) +#define FFX_UINT16X4_TO_UINT32X2(x) unpack32(packUint4x16(FfxUInt16x4(x))) +//============================================================================================================================== +#define FFX_TO_UINT16(x) halfBitsToUint16(FfxFloat16(x)) +#define FFX_TO_UINT16X2(x) halfBitsToUint16(FfxFloat16x2(x)) +#define FFX_TO_UINT16X3(x) halfBitsToUint16(FfxFloat16x3(x)) +#define FFX_TO_UINT16X4(x) halfBitsToUint16(FfxFloat16x4(x)) +//------------------------------------------------------------------------------------------------------------------------------ +#define FFX_TO_FLOAT16(x) uint16BitsToHalf(FfxUInt16(x)) +#define FFX_TO_FLOAT16X2(x) uint16BitsToHalf(FfxUInt16x2(x)) +#define FFX_TO_FLOAT16X3(x) uint16BitsToHalf(FfxUInt16x3(x)) +#define FFX_TO_FLOAT16X4(x) uint16BitsToHalf(FfxUInt16x4(x)) +//============================================================================================================================== +FfxFloat16 ffxBroadcastFloat16(FfxFloat16 a) +{ + return FfxFloat16(a); +} +FfxFloat16x2 ffxBroadcastFloat16x2(FfxFloat16 a) +{ + return FfxFloat16x2(a, a); +} +FfxFloat16x3 ffxBroadcastFloat16x3(FfxFloat16 a) +{ + return FfxFloat16x3(a, a, a); +} +FfxFloat16x4 ffxBroadcastFloat16x4(FfxFloat16 a) +{ + return FfxFloat16x4(a, a, a, a); +} +#define FFX_BROADCAST_FLOAT16(a) FfxFloat16(a) +#define FFX_BROADCAST_FLOAT16X2(a) FfxFloat16x2(FfxFloat16(a)) +#define FFX_BROADCAST_FLOAT16X3(a) FfxFloat16x3(FfxFloat16(a)) +#define FFX_BROADCAST_FLOAT16X4(a) FfxFloat16x4(FfxFloat16(a)) +//------------------------------------------------------------------------------------------------------------------------------ +FfxInt16 ffxBroadcastInt16(FfxInt16 a) +{ + return FfxInt16(a); +} +FfxInt16x2 ffxBroadcastInt16x2(FfxInt16 a) +{ + return FfxInt16x2(a, a); +} +FfxInt16x3 ffxBroadcastInt16x3(FfxInt16 a) +{ + return FfxInt16x3(a, a, a); +} +FfxInt16x4 ffxBroadcastInt16x4(FfxInt16 a) +{ + return FfxInt16x4(a, a, a, a); +} +#define FFX_BROADCAST_INT16(a) FfxInt16(a) +#define FFX_BROADCAST_INT16X2(a) FfxInt16x2(FfxInt16(a)) +#define FFX_BROADCAST_INT16X3(a) FfxInt16x3(FfxInt16(a)) +#define FFX_BROADCAST_INT16X4(a) FfxInt16x4(FfxInt16(a)) +//------------------------------------------------------------------------------------------------------------------------------ +FfxUInt16 ffxBroadcastUInt16(FfxUInt16 a) +{ + return FfxUInt16(a); +} +FfxUInt16x2 ffxBroadcastUInt16x2(FfxUInt16 a) +{ + return FfxUInt16x2(a, a); +} +FfxUInt16x3 ffxBroadcastUInt16x3(FfxUInt16 a) +{ + return FfxUInt16x3(a, a, a); +} +FfxUInt16x4 ffxBroadcastUInt16x4(FfxUInt16 a) +{ + return FfxUInt16x4(a, a, a, a); +} +#define FFX_BROADCAST_UINT16(a) FfxUInt16(a) +#define FFX_BROADCAST_UINT16X2(a) FfxUInt16x2(FfxUInt16(a)) +#define FFX_BROADCAST_UINT16X3(a) FfxUInt16x3(FfxUInt16(a)) +#define FFX_BROADCAST_UINT16X4(a) FfxUInt16x4(FfxUInt16(a)) +//============================================================================================================================== +FfxUInt16 ffxAbsHalf(FfxUInt16 a) +{ + return FfxUInt16(abs(FfxInt16(a))); +} +FfxUInt16x2 ffxAbsHalf(FfxUInt16x2 a) +{ + return FfxUInt16x2(abs(FfxInt16x2(a))); +} +FfxUInt16x3 ffxAbsHalf(FfxUInt16x3 a) +{ + return FfxUInt16x3(abs(FfxInt16x3(a))); +} +FfxUInt16x4 ffxAbsHalf(FfxUInt16x4 a) +{ + return FfxUInt16x4(abs(FfxInt16x4(a))); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxClampHalf(FfxFloat16 x, FfxFloat16 n, FfxFloat16 m) +{ + return clamp(x, n, m); +} +FfxFloat16x2 ffxClampHalf(FfxFloat16x2 x, FfxFloat16x2 n, FfxFloat16x2 m) +{ + return clamp(x, n, m); +} +FfxFloat16x3 ffxClampHalf(FfxFloat16x3 x, FfxFloat16x3 n, FfxFloat16x3 m) +{ + return clamp(x, n, m); +} +FfxFloat16x4 ffxClampHalf(FfxFloat16x4 x, FfxFloat16x4 n, FfxFloat16x4 m) +{ + return clamp(x, n, m); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxFract(FfxFloat16 x) +{ + return fract(x); +} +FfxFloat16x2 ffxFract(FfxFloat16x2 x) +{ + return fract(x); +} +FfxFloat16x3 ffxFract(FfxFloat16x3 x) +{ + return fract(x); +} +FfxFloat16x4 ffxFract(FfxFloat16x4 x) +{ + return fract(x); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxLerp(FfxFloat16 x, FfxFloat16 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x2 ffxLerp(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x2 ffxLerp(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 a) +{ + return mix(x, y, a); +} +FfxFloat16x3 ffxLerp(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 a) +{ + return mix(x, y, a); +} +FfxFloat16x3 ffxLerp(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x4 ffxLerp(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16 a) +{ + return mix(x, y, a); +} +FfxFloat16x4 ffxLerp(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 a) +{ + return mix(x, y, a); +} +//------------------------------------------------------------------------------------------------------------------------------ +// No packed version of ffxMax3. +FfxFloat16 ffxMax3Half(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return max(x, max(y, z)); +} +FfxFloat16x2 ffxMax3Half(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return max(x, max(y, z)); +} +FfxFloat16x3 ffxMax3Half(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return max(x, max(y, z)); +} +FfxFloat16x4 ffxMax3Half(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return max(x, max(y, z)); +} +//------------------------------------------------------------------------------------------------------------------------------ +// No packed version of ffxMin3. +FfxFloat16 ffxMin3Half(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return min(x, min(y, z)); +} +FfxFloat16x2 ffxMin3Half(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return min(x, min(y, z)); +} +FfxFloat16x3 ffxMin3Half(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return min(x, min(y, z)); +} +FfxFloat16x4 ffxMin3Half(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return min(x, min(y, z)); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxMed3Half(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +FfxFloat16x2 ffxMed3Half(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +FfxFloat16x3 ffxMed3Half(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +FfxFloat16x4 ffxMed3Half(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return max(min(x, y), min(max(x, y), z)); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxReciprocalHalf(FfxFloat16 x) +{ + return FFX_BROADCAST_FLOAT16(1.0) / x; +} +FfxFloat16x2 ffxReciprocalHalf(FfxFloat16x2 x) +{ + return FFX_BROADCAST_FLOAT16X2(1.0) / x; +} +FfxFloat16x3 ffxReciprocalHalf(FfxFloat16x3 x) +{ + return FFX_BROADCAST_FLOAT16X3(1.0) / x; +} +FfxFloat16x4 ffxReciprocalHalf(FfxFloat16x4 x) +{ + return FFX_BROADCAST_FLOAT16X4(1.0) / x; +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxReciprocalSquareRootHalf(FfxFloat16 x) +{ + return FFX_BROADCAST_FLOAT16(1.0) / sqrt(x); +} +FfxFloat16x2 ffxReciprocalSquareRootHalf(FfxFloat16x2 x) +{ + return FFX_BROADCAST_FLOAT16X2(1.0) / sqrt(x); +} +FfxFloat16x3 ffxReciprocalSquareRootHalf(FfxFloat16x3 x) +{ + return FFX_BROADCAST_FLOAT16X3(1.0) / sqrt(x); +} +FfxFloat16x4 ffxReciprocalSquareRootHalf(FfxFloat16x4 x) +{ + return FFX_BROADCAST_FLOAT16X4(1.0) / sqrt(x); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxFloat16 ffxSaturate(FfxFloat16 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16(0.0), FFX_BROADCAST_FLOAT16(1.0)); +} +FfxFloat16x2 ffxSaturate(FfxFloat16x2 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16X2(0.0), FFX_BROADCAST_FLOAT16X2(1.0)); +} +FfxFloat16x3 ffxSaturate(FfxFloat16x3 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16X3(0.0), FFX_BROADCAST_FLOAT16X3(1.0)); +} +FfxFloat16x4 ffxSaturate(FfxFloat16x4 x) +{ + return clamp(x, FFX_BROADCAST_FLOAT16X4(0.0), FFX_BROADCAST_FLOAT16X4(1.0)); +} +//------------------------------------------------------------------------------------------------------------------------------ +FfxUInt16 ffxBitShiftRightHalf(FfxUInt16 a, FfxUInt16 b) +{ + return FfxUInt16(FfxInt16(a) >> FfxInt16(b)); +} +FfxUInt16x2 ffxBitShiftRightHalf(FfxUInt16x2 a, FfxUInt16x2 b) +{ + return FfxUInt16x2(FfxInt16x2(a) >> FfxInt16x2(b)); +} +FfxUInt16x3 ffxBitShiftRightHalf(FfxUInt16x3 a, FfxUInt16x3 b) +{ + return FfxUInt16x3(FfxInt16x3(a) >> FfxInt16x3(b)); +} +FfxUInt16x4 ffxBitShiftRightHalf(FfxUInt16x4 a, FfxUInt16x4 b) +{ + return FfxUInt16x4(FfxInt16x4(a) >> FfxInt16x4(b)); +} +#endif // FFX_HALF + +#if defined(FFX_WAVE) +// Where 'x' must be a compile time literal. +FfxFloat32 ffxWaveXorF1(FfxFloat32 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxFloat32x2 ffxWaveXorF2(FfxFloat32x2 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxFloat32x3 ffxWaveXorF3(FfxFloat32x3 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxFloat32x4 ffxWaveXorF4(FfxFloat32x4 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32 ffxWaveXorU1(FfxUInt32 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32x2 ffxWaveXorU2(FfxUInt32x2 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32x3 ffxWaveXorU3(FfxUInt32x3 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxUInt32x4 ffxWaveXorU4(FfxUInt32x4 v, FfxUInt32 x) +{ + return subgroupShuffleXor(v, x); +} +FfxBoolean ffxWaveIsFirstLane() +{ + return subgroupElect(); +} +FfxUInt32 ffxWaveLaneIndex() +{ + return gl_SubgroupInvocationID; +} +FfxBoolean ffxWaveReadAtLaneIndexB1(FfxBoolean v, FfxUInt32 x ) +{ + return subgroupShuffle(v, x); +} +FfxUInt32 ffxWavePrefixCountBits(FfxBoolean v) +{ + return subgroupBallotExclusiveBitCount(subgroupBallot(v)); +} +FfxUInt32 ffxWaveActiveCountBits(FfxBoolean v) +{ + return subgroupBallotBitCount(subgroupBallot(v)); +} +FfxUInt32 ffxWaveReadLaneFirstU1(FfxUInt32 v) +{ + return subgroupBroadcastFirst(v); +} +FfxUInt32x2 ffxWaveReadLaneFirstU2(FfxUInt32x2 v) +{ + return subgroupBroadcastFirst(v); +} +FfxBoolean ffxWaveReadLaneFirstB1(FfxBoolean v) +{ + return subgroupBroadcastFirst(v); +} +FfxUInt32 ffxWaveOr(FfxUInt32 a) +{ + return subgroupOr(a); +} +FfxUInt32 ffxWaveMin(FfxUInt32 a) +{ + return subgroupMin(a); +} +FfxFloat32 ffxWaveMin(FfxFloat32 a) +{ + return subgroupMin(a); +} +FfxUInt32 ffxWaveMax(FfxUInt32 a) +{ + return subgroupMax(a); +} +FfxFloat32 ffxWaveMax(FfxFloat32 a) +{ + return subgroupMax(a); +} +FfxUInt32 ffxWaveSum(FfxUInt32 a) +{ + return subgroupAdd(a); +} +FfxFloat32 ffxWaveSum(FfxFloat32 a) +{ + return subgroupAdd(a); +} +FfxUInt32 ffxWaveLaneCount() +{ + return gl_SubgroupSize; +} +#if defined(FFX_WAVE_ALL_TRUE) +FfxBoolean ffxWaveAllTrue(FfxBoolean v) +{ + return subgroupAll(v); +} +#endif +FfxFloat32 ffxQuadReadX(FfxFloat32 v) +{ + return subgroupQuadSwapHorizontal(v); +} +FfxFloat32x2 ffxQuadReadX(FfxFloat32x2 v) +{ + return subgroupQuadSwapHorizontal(v); +} +FfxFloat32 ffxQuadReadY(FfxFloat32 v) +{ + return subgroupQuadSwapVertical(v); +} +FfxFloat32x2 ffxQuadReadY(FfxFloat32x2 v) +{ + return subgroupQuadSwapVertical(v); +} + +//------------------------------------------------------------------------------------------------------------------------------ +#if FFX_HALF +FfxFloat16x2 ffxWaveXorFloat16x2(FfxFloat16x2 v, FfxUInt32 x) +{ + return FFX_UINT32_TO_FLOAT16X2(subgroupShuffleXor(FFX_FLOAT16X2_TO_UINT32(v), x)); +} +FfxFloat16x4 ffxWaveXorFloat16x4(FfxFloat16x4 v, FfxUInt32 x) +{ + return FFX_UINT32X2_TO_FLOAT16X4(subgroupShuffleXor(FFX_FLOAT16X4_TO_UINT32X2(v), x)); +} +FfxUInt16x2 ffxWaveXorUint16x2(FfxUInt16x2 v, FfxUInt32 x) +{ + return FFX_UINT32_TO_UINT16X2(subgroupShuffleXor(FFX_UINT16X2_TO_UINT32(v), x)); +} +FfxUInt16x4 ffxWaveXorUint16x4(FfxUInt16x4 v, FfxUInt32 x) +{ + return FFX_UINT32X2_TO_UINT16X4(subgroupShuffleXor(FFX_UINT16X4_TO_UINT32X2(v), x)); +} +#endif // FFX_HALF +#endif // #if defined(FFX_WAVE) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h new file mode 100644 index 000000000..da03b07aa --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common.h @@ -0,0 +1,2736 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// A define for a true value in a boolean expression. +/// +/// @ingroup GPUCore +#define FFX_TRUE (true) + +/// A define for a false value in a boolean expression. +/// +/// @ingroup GPUCore +#define FFX_FALSE (false) + +/// A define value for positive infinity. +/// +/// @ingroup GPUCore +#define FFX_POSITIVE_INFINITY_FLOAT ffxAsFloat(0x7f800000u) + +/// A define value for negative infinity. +/// +/// @ingroup GPUCore +#define FFX_NEGATIVE_INFINITY_FLOAT ffxAsFloat(0xff800000u) + +/// A define value for PI. +/// +/// @ingroup GPUCore +#define FFX_PI (3.14159) + +FFX_STATIC const FfxFloat32 FFX_FP16_MIN = 6.10e-05f; +FFX_STATIC const FfxFloat32 FFX_FP16_MAX = 65504.0f; +FFX_STATIC const FfxFloat32 FFX_TONEMAP_EPSILON = 1.0f / FFX_FP16_MAX; + +#define FFX_HAS_FLAG(v, f) ((v & f) == f) + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32 ffxMin(FfxFloat32 x, FfxFloat32 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxMin(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxMin(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxMin(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32 ffxMin(FfxInt32 x, FfxInt32 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x2 ffxMin(FfxInt32x2 x, FfxInt32x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x3 ffxMin(FfxInt32x3 x, FfxInt32x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x4 ffxMin(FfxInt32x4 x, FfxInt32x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32 ffxMin(FfxUInt32 x, FfxUInt32 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxMin(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxMin(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxMin(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return min(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32 ffxMax(FfxFloat32 x, FfxFloat32 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxMax(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxMax(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxMax(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32 ffxMax(FfxInt32 x, FfxInt32 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x2 ffxMax(FfxInt32x2 x, FfxInt32x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x3 ffxMax(FfxInt32x3 x, FfxInt32x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt32x4 ffxMax(FfxInt32x4 x, FfxInt32x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32 ffxMax(FfxUInt32 x, FfxUInt32 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxMax(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxMax(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxMax(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return max(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32 ffxPow(FfxFloat32 x, FfxFloat32 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxPow(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxPow(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxPow(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return pow(x, y); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32 ffxSqrt(FfxFloat32 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxSqrt(FfxFloat32x2 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxSqrt(FfxFloat32x3 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxSqrt(FfxFloat32x4 x) +{ + return sqrt(x); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32 ffxCopySignBit(FfxFloat32 d, FfxFloat32 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & FfxUInt32(0x80000000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxCopySignBit(FfxFloat32x2 d, FfxFloat32x2 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & ffxBroadcast2(0x80000000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxCopySignBit(FfxFloat32x3 d, FfxFloat32x3 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & ffxBroadcast3(0x80000000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxCopySignBit(FfxFloat32x4 d, FfxFloat32x4 s) +{ + return ffxAsFloat(ffxAsUInt32(d) | (ffxAsUInt32(s) & ffxBroadcast4(0x80000000u))); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat32 ffxIsSigned(FfxFloat32 m) +{ + return ffxSaturate(m * FfxFloat32(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxIsSigned(FfxFloat32x2 m) +{ + return ffxSaturate(m * ffxBroadcast2(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxIsSigned(FfxFloat32x3 m) +{ + return ffxSaturate(m * ffxBroadcast3(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against for have the sign set. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or positive. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxIsSigned(FfxFloat32x4 m) +{ + return ffxSaturate(m * ffxBroadcast4(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32 ffxIsGreaterThanZero(FfxFloat32 m) +{ + return ffxSaturate(m * FfxFloat32(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxIsGreaterThanZero(FfxFloat32x2 m) +{ + return ffxSaturate(m * ffxBroadcast2(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxIsGreaterThanZero(FfxFloat32x3 m) +{ + return ffxSaturate(m * ffxBroadcast3(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxIsGreaterThanZero(FfxFloat32x4 m) +{ + return ffxSaturate(m * ffxBroadcast4(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Convert a 32bit floating point value to sortable integer. +/// +/// - If sign bit=0, flip the sign bit (positives). +/// - If sign bit=1, flip all bits (negatives). +/// +/// The function has the side effects that: +/// - Larger integers are more positive values. +/// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage). +/// +/// @param [in] value The floating point value to make sortable. +/// +/// @returns +/// The sortable integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxFloatToSortableInteger(FfxUInt32 value) +{ + return value ^ ((ffxAShrSU1(value, FfxUInt32(31))) | FfxUInt32(0x80000000)); +} + +/// Convert a sortable integer to a 32bit floating point value. +/// +/// The function has the side effects that: +/// - If sign bit=1, flip the sign bit (positives). +/// - If sign bit=0, flip all bits (negatives). +/// +/// @param [in] value The floating point value to make sortable. +/// +/// @returns +/// The sortable integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxSortableIntegerToFloat(FfxUInt32 value) +{ + return value ^ ((~ffxAShrSU1(value, FfxUInt32(31))) | FfxUInt32(0x80000000)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateSqrt(FfxFloat32 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> FfxUInt32(1)) + FfxUInt32(0x1fbc4639)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateReciprocal(FfxFloat32 value) +{ + return ffxAsFloat(FfxUInt32(0x7ef07ebb) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateReciprocalMedium(FfxFloat32 value) +{ + FfxFloat32 b = ffxAsFloat(FfxUInt32(0x7ef19fff) - ffxAsUInt32(value)); + return b * (-b * value + FfxFloat32(2.0)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal square root for. +/// +/// @returns +/// An approximation of the reciprocal square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateReciprocalSquareRoot(FfxFloat32 value) +{ + return ffxAsFloat(FfxUInt32(0x5f347d74) - (ffxAsUInt32(value) >> FfxUInt32(1))); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateSqrt(FfxFloat32x2 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> ffxBroadcast2(1u)) + ffxBroadcast2(0x1fbc4639u)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateReciprocal(FfxFloat32x2 value) +{ + return ffxAsFloat(ffxBroadcast2(0x7ef07ebbu) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateReciprocalMedium(FfxFloat32x2 value) +{ + FfxFloat32x2 b = ffxAsFloat(ffxBroadcast2(0x7ef19fffu) - ffxAsUInt32(value)); + return b * (-b * value + ffxBroadcast2(2.0f)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateReciprocalSquareRoot(FfxFloat32x2 value) +{ + return ffxAsFloat(ffxBroadcast2(0x5f347d74u) - (ffxAsUInt32(value) >> ffxBroadcast2(1u))); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateSqrt(FfxFloat32x3 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> ffxBroadcast3(1u)) + ffxBroadcast3(0x1fbc4639u)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateReciprocal(FfxFloat32x3 value) +{ + return ffxAsFloat(ffxBroadcast3(0x7ef07ebbu) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateReciprocalMedium(FfxFloat32x3 value) +{ + FfxFloat32x3 b = ffxAsFloat(ffxBroadcast3(0x7ef19fffu) - ffxAsUInt32(value)); + return b * (-b * value + ffxBroadcast3(2.0f)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateReciprocalSquareRoot(FfxFloat32x3 value) +{ + return ffxAsFloat(ffxBroadcast3(0x5f347d74u) - (ffxAsUInt32(value) >> ffxBroadcast3(1u))); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateSqrt(FfxFloat32x4 value) +{ + return ffxAsFloat((ffxAsUInt32(value) >> ffxBroadcast4(1u)) + ffxBroadcast4(0x1fbc4639u)); +} + +/// Calculate a low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateReciprocal(FfxFloat32x4 value) +{ + return ffxAsFloat(ffxBroadcast4(0x7ef07ebbu) - ffxAsUInt32(value)); +} + +/// Calculate a medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateReciprocalMedium(FfxFloat32x4 value) +{ + FfxFloat32x4 b = ffxAsFloat(ffxBroadcast4(0x7ef19fffu) - ffxAsUInt32(value)); + return b * (-b * value + ffxBroadcast4(2.0f)); +} + +/// Calculate a low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] value The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateReciprocalSquareRoot(FfxFloat32x4 value) +{ + return ffxAsFloat(ffxBroadcast4(0x5f347d74u) - (ffxAsUInt32(value) >> ffxBroadcast4(1u))); +} + +/// Calculate dot product of 'a' and 'b'. +/// +/// @param [in] a First vector input. +/// @param [in] b Second vector input. +/// +/// @returns +/// The value of a dot b. +/// +/// @ingroup GPUCore +FfxFloat32 ffxDot2(FfxFloat32x2 a, FfxFloat32x2 b) +{ + return dot(a, b); +} + +/// Calculate dot product of 'a' and 'b'. +/// +/// @param [in] a First vector input. +/// @param [in] b Second vector input. +/// +/// @returns +/// The value of a dot b. +/// +/// @ingroup GPUCore +FfxFloat32 ffxDot3(FfxFloat32x3 a, FfxFloat32x3 b) +{ + return dot(a, b); +} + +/// Calculate dot product of 'a' and 'b'. +/// +/// @param [in] a First vector input. +/// @param [in] b Second vector input. +/// +/// @returns +/// The value of a dot b. +/// +/// @ingroup GPUCore +FfxFloat32 ffxDot4(FfxFloat32x4 a, FfxFloat32x4 b) +{ + return dot(a, b); +} + + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximatePQToGamma2Medium(FfxFloat32 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximatePQToLinear(FfxFloat32 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateGamma2ToPQ(FfxFloat32 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(2)) + FfxUInt32(0x2F9A4E46)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateGamma2ToPQMedium(FfxFloat32 a) +{ + FfxFloat32 b = ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(2)) + FfxUInt32(0x2F9A4E46)); + FfxFloat32 b4 = b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateGamma2ToPQHigh(FfxFloat32 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateLinearToPQ(FfxFloat32 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(3)) + FfxUInt32(0x378D8723)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateLinearToPQMedium(FfxFloat32 a) +{ + FfxFloat32 b = ffxAsFloat((ffxAsUInt32(a) >> FfxUInt32(3)) + FfxUInt32(0x378D8723)); + FfxFloat32 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32 ffxApproximateLinearToPQHigh(FfxFloat32 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximatePQToGamma2Medium(FfxFloat32x2 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximatePQToLinear(FfxFloat32x2 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateGamma2ToPQ(FfxFloat32x2 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(2u)) + ffxBroadcast2(0x2F9A4E46u)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateGamma2ToPQMedium(FfxFloat32x2 a) +{ + FfxFloat32x2 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(2u)) + ffxBroadcast2(0x2F9A4E46u)); + FfxFloat32x2 b4 = b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateGamma2ToPQHigh(FfxFloat32x2 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateLinearToPQ(FfxFloat32x2 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(3u)) + ffxBroadcast2(0x378D8723u)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateLinearToPQMedium(FfxFloat32x2 a) +{ + FfxFloat32x2 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast2(3u)) + ffxBroadcast2(0x378D8723u)); + FfxFloat32x2 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxApproximateLinearToPQHigh(FfxFloat32x2 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximatePQToGamma2Medium(FfxFloat32x3 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximatePQToLinear(FfxFloat32x3 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateGamma2ToPQ(FfxFloat32x3 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(2u)) + ffxBroadcast3(0x2F9A4E46u)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateGamma2ToPQMedium(FfxFloat32x3 a) +{ + FfxFloat32x3 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(2u)) + ffxBroadcast3(0x2F9A4E46u)); + FfxFloat32x3 b4 = b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateGamma2ToPQHigh(FfxFloat32x3 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateLinearToPQ(FfxFloat32x3 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(3u)) + ffxBroadcast3(0x378D8723u)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateLinearToPQMedium(FfxFloat32x3 a) +{ + FfxFloat32x3 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast3(3u)) + ffxBroadcast3(0x378D8723u)); + FfxFloat32x3 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxApproximateLinearToPQHigh(FfxFloat32x3 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +/// Compute an approximate conversion from PQ to Gamma2 space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and Gamma2. +/// +/// @returns +/// The value a converted into Gamma2. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximatePQToGamma2Medium(FfxFloat32x4 a) +{ + return a * a * a * a; +} + +/// Compute an approximate conversion from PQ to linear space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between PQ and linear. +/// +/// @returns +/// The value a converted into linear. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximatePQToLinear(FfxFloat32x4 a) +{ + return a * a * a * a * a * a * a * a; +} + +/// Compute an approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateGamma2ToPQ(FfxFloat32x4 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(2u)) + ffxBroadcast4(0x2F9A4E46u)); +} + +/// Compute a more accurate approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateGamma2ToPQMedium(FfxFloat32x4 a) +{ + FfxFloat32x4 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(2u)) + ffxBroadcast4(0x2F9A4E46u)); + FfxFloat32x4 b4 = b * b * b * b * b * b * b * b; + return b - b * (b4 - a) / (FfxFloat32(4.0) * b4); +} + +/// Compute a high accuracy approximate conversion from gamma2 to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between gamma2 and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateGamma2ToPQHigh(FfxFloat32x4 a) +{ + return ffxSqrt(ffxSqrt(a)); +} + +/// Compute an approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateLinearToPQ(FfxFloat32x4 a) +{ + return ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(3u)) + ffxBroadcast4(0x378D8723u)); +} + +/// Compute a more accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateLinearToPQMedium(FfxFloat32x4 a) +{ + FfxFloat32x4 b = ffxAsFloat((ffxAsUInt32(a) >> ffxBroadcast4(3u)) + ffxBroadcast4(0x378D8723u)); + FfxFloat32x4 b8 = b * b * b * b * b * b * b * b; + return b - b * (b8 - a) / (FfxFloat32(8.0) * b8); +} + +/// Compute a very accurate approximate conversion from linear to PQ space. +/// +/// PQ is very close to x^(1/8). The functions below Use the fast FfxFloat32 approximation method to do +/// PQ conversions to and from Gamma2 (4th power and fast 4th root), and PQ to and from Linear +/// (8th power and fast 8th root). The maximum error is approximately 0.2%. +/// +/// @param a The value to convert between linear and PQ. +/// +/// @returns +/// The value a converted into PQ. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxApproximateLinearToPQHigh(FfxFloat32x4 a) +{ + return ffxSqrt(ffxSqrt(ffxSqrt(a))); +} + +// An approximation of sine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate sine for. +// +// @returns +// The approximate sine of value. +FfxFloat32 ffxParabolicSin(FfxFloat32 value) +{ + return value * abs(value) - value; +} + +// An approximation of sine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate sine for. +// +// @returns +// The approximate sine of value. +FfxFloat32x2 ffxParabolicSin(FfxFloat32x2 x) +{ + return x * abs(x) - x; +} + +// An approximation of cosine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate cosine for. +// +// @returns +// The approximate cosine of value. +FfxFloat32 ffxParabolicCos(FfxFloat32 x) +{ + x = ffxFract(x * FfxFloat32(0.5) + FfxFloat32(0.75)); + x = x * FfxFloat32(2.0) - FfxFloat32(1.0); + return ffxParabolicSin(x); +} + +// An approximation of cosine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate cosine for. +// +// @returns +// The approximate cosine of value. +FfxFloat32x2 ffxParabolicCos(FfxFloat32x2 x) +{ + x = ffxFract(x * ffxBroadcast2(0.5f) + ffxBroadcast2(0.75f)); + x = x * ffxBroadcast2(2.0f) - ffxBroadcast2(1.0f); + return ffxParabolicSin(x); +} + +// An approximation of both sine and cosine. +// +// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +// is {-1/4 to 1/4} representing {-1 to 1}. +// +// @param [in] value The value to calculate approximate cosine for. +// +// @returns +// A FfxFloat32x2 containing approximations of both sine and cosine of value. +FfxFloat32x2 ffxParabolicSinCos(FfxFloat32 x) +{ + FfxFloat32 y = ffxFract(x * FfxFloat32(0.5) + FfxFloat32(0.75)); + y = y * FfxFloat32(2.0) - FfxFloat32(1.0); + return ffxParabolicSin(FfxFloat32x2(x, y)); +} + +/// Conditional free logic AND operation using values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneAnd(FfxUInt32 x, FfxUInt32 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneAnd(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneAnd(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneAnd(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return min(x, y); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneAnd(FfxUInt32 x) +{ + return x ^ FfxUInt32(1); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneAnd(FfxUInt32x2 x) +{ + return x ^ ffxBroadcast2(1u); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneAnd(FfxUInt32x3 x) +{ + return x ^ ffxBroadcast3(1u); +} + +/// Conditional free logic NOT operation using two values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneAnd(FfxUInt32x4 x) +{ + return x ^ ffxBroadcast4(1u); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneOr(FfxUInt32 x, FfxUInt32 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneOr(FfxUInt32x2 x, FfxUInt32x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneOr(FfxUInt32x3 x, FfxUInt32x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneOr(FfxUInt32x4 x, FfxUInt32x4 y) +{ + return max(x, y); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32 ffxZeroOneAndToU1(FfxFloat32 x) +{ + return FfxUInt32(FfxFloat32(1.0) - x); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxZeroOneAndToU2(FfxFloat32x2 x) +{ + return FfxUInt32x2(ffxBroadcast2(1.0) - x); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x3 ffxZeroOneAndToU3(FfxFloat32x3 x) +{ + return FfxUInt32x3(ffxBroadcast3(1.0) - x); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxUInt32x4 ffxZeroOneAndToU4(FfxFloat32x4 x) +{ + return FfxUInt32x4(ffxBroadcast4(1.0) - x); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneAndOr(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneAndOr(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneAndOr(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two values followed by a NOT operation +/// using the resulting value and a third value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneAndOr(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + return ffxSaturate(x * y + z); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneIsGreaterThanZero(FfxFloat32 x) +{ + return ffxSaturate(x * FfxFloat32(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneIsGreaterThanZero(FfxFloat32x2 x) +{ + return ffxSaturate(x * ffxBroadcast2(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneIsGreaterThanZero(FfxFloat32x3 x) +{ + return ffxSaturate(x * ffxBroadcast3(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneIsGreaterThanZero(FfxFloat32x4 x) +{ + return ffxSaturate(x * ffxBroadcast4(FFX_POSITIVE_INFINITY_FLOAT)); +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneAnd(FfxFloat32 x) +{ + return FfxFloat32(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneAnd(FfxFloat32x2 x) +{ + return ffxBroadcast2(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneAnd(FfxFloat32x3 x) +{ + return ffxBroadcast3(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneAnd(FfxFloat32x4 x) +{ + return ffxBroadcast4(1.0) - x; +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneOr(FfxFloat32 x, FfxFloat32 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneOr(FfxFloat32x2 x, FfxFloat32x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneOr(FfxFloat32x3 x, FfxFloat32x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneOr(FfxFloat32x4 x, FfxFloat32x4 y) +{ + return max(x, y); +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneSelect(FfxFloat32 x, FfxFloat32 y, FfxFloat32 z) +{ + FfxFloat32 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneSelect(FfxFloat32x2 x, FfxFloat32x2 y, FfxFloat32x2 z) +{ + FfxFloat32x2 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneSelect(FfxFloat32x3 x, FfxFloat32x3 y, FfxFloat32x3 z) +{ + FfxFloat32x3 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneSelect(FfxFloat32x4 x, FfxFloat32x4 y, FfxFloat32x4 z) +{ + FfxFloat32x4 r = (-x) * z + z; + return x * y + r; +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32 ffxZeroOneIsSigned(FfxFloat32 x) +{ + return ffxSaturate(x * FfxFloat32(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxZeroOneIsSigned(FfxFloat32x2 x) +{ + return ffxSaturate(x * ffxBroadcast2(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxZeroOneIsSigned(FfxFloat32x3 x) +{ + return ffxSaturate(x * ffxBroadcast3(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Given a value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat32x4 ffxZeroOneIsSigned(FfxFloat32x4 x) +{ + return ffxSaturate(x * ffxBroadcast4(FFX_NEGATIVE_INFINITY_FLOAT)); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] color The color to convert to Rec. 709. +/// +/// @returns +/// The color in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxRec709FromLinear(FfxFloat32 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.099, -0.099); + return clamp(j.x, color * j.y, pow(color, j.z) * k.x + k.y); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] color The color to convert to Rec. 709. +/// +/// @returns +/// The color in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxRec709FromLinear(FfxFloat32x2 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.099, -0.099); + return clamp(j.xx, color * j.yy, pow(color, j.zz) * k.xx + k.yy); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] color The color to convert to Rec. 709. +/// +/// @returns +/// The color in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxRec709FromLinear(FfxFloat32x3 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.099, -0.099); + return clamp(j.xxx, color * j.yyy, pow(color, j.zzz) * k.xxx + k.yyy); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] color The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromRec709(FfxFloat32 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelect(ffxZeroOneIsSigned(color - j.x), color * j.y, pow(color * k.x + k.y, j.z)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] color The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromRec709(FfxFloat32x2 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelect(ffxZeroOneIsSigned(color - j.xx), color * j.yy, pow(color * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] color The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromRec709(FfxFloat32x3 color) +{ + FfxFloat32x3 j = FfxFloat32x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelect(ffxZeroOneIsSigned(color - j.xxx), color * j.yyy, pow(color * k.xxx + k.yyy, j.zzz)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGamma. +/// +/// @param [in] value The value to convert to gamma space from linear. +/// @param [in] power The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxGammaFromLinear(FfxFloat32 value, FfxFloat32 power) +{ + return pow(value, FfxFloat32(power)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGamma. +/// +/// @param [in] value The value to convert to gamma space from linear. +/// @param [in] power The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxGammaFromLinear(FfxFloat32x2 value, FfxFloat32 power) +{ + return pow(value, ffxBroadcast2(power)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGamma. +/// +/// @param [in] value The value to convert to gamma space from linear. +/// @param [in] power The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxGammaFromLinear(FfxFloat32x3 value, FfxFloat32 power) +{ + return pow(value, ffxBroadcast3(power)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] color The value to convert to linear in gamma space. +/// @param [in] power The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromGamma(FfxFloat32 color, FfxFloat32 power) +{ + return pow(color, FfxFloat32(power)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] color The value to convert to linear in gamma space. +/// @param [in] power The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromGamma(FfxFloat32x2 color, FfxFloat32 power) +{ + return pow(color, ffxBroadcast2(power)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] color The value to convert to linear in gamma space. +/// @param [in] power The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromGamma(FfxFloat32x3 color, FfxFloat32 power) +{ + return pow(color, ffxBroadcast3(power)); +} + +/// Compute a PQ value from a linear value. +/// +/// @param [in] value The value to convert to PQ from linear. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxPQFromLinear(FfxFloat32 value) +{ + FfxFloat32 p = pow(value, FfxFloat32(0.159302)); + return pow((FfxFloat32(0.835938) + FfxFloat32(18.8516) * p) / (FfxFloat32(1.0) + FfxFloat32(18.6875) * p), FfxFloat32(78.8438)); +} + +/// Compute a PQ value from a linear value. +/// +/// @param [in] value The value to convert to PQ from linear. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxPQFromLinear(FfxFloat32x2 value) +{ + FfxFloat32x2 p = pow(value, ffxBroadcast2(0.159302)); + return pow((ffxBroadcast2(0.835938) + ffxBroadcast2(18.8516) * p) / (ffxBroadcast2(1.0) + ffxBroadcast2(18.6875) * p), ffxBroadcast2(78.8438)); +} + +/// Compute a PQ value from a linear value. +/// +/// @param [in] value The value to convert to PQ from linear. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxPQFromLinear(FfxFloat32x3 value) +{ + FfxFloat32x3 p = pow(value, ffxBroadcast3(0.159302)); + return pow((ffxBroadcast3(0.835938) + ffxBroadcast3(18.8516) * p) / (ffxBroadcast3(1.0) + ffxBroadcast3(18.6875) * p), ffxBroadcast3(78.8438)); +} + +/// Compute a linear value from a value in a PQ space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in PQ space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromPQ(FfxFloat32 value) +{ + FfxFloat32 p = pow(value, FfxFloat32(0.0126833)); + return pow(ffxSaturate(p - FfxFloat32(0.835938)) / (FfxFloat32(18.8516) - FfxFloat32(18.6875) * p), FfxFloat32(6.27739)); +} + +/// Compute a linear value from a value in a PQ space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in PQ space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromPQ(FfxFloat32x2 value) +{ + FfxFloat32x2 p = pow(value, ffxBroadcast2(0.0126833)); + return pow(ffxSaturate(p - ffxBroadcast2(0.835938)) / (ffxBroadcast2(18.8516) - ffxBroadcast2(18.6875) * p), ffxBroadcast2(6.27739)); +} + +/// Compute a linear value from a value in a PQ space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in PQ space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromPQ(FfxFloat32x3 value) +{ + FfxFloat32x3 p = pow(value, ffxBroadcast3(0.0126833)); + return pow(ffxSaturate(p - ffxBroadcast3(0.835938)) / (ffxBroadcast3(18.8516) - ffxBroadcast3(18.6875) * p), ffxBroadcast3(6.27739)); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] value The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxSrgbFromLinear(FfxFloat32 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.055, -0.055); + return clamp(j.x, value * j.y, pow(value, j.z) * k.x + k.y); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] value The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxSrgbFromLinear(FfxFloat32x2 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.055, -0.055); + return clamp(j.xx, value * j.yy, pow(value, j.zz) * k.xx + k.yy); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] value The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxSrgbFromLinear(FfxFloat32x3 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.055, -0.055); + return clamp(j.xxx, value * j.yyy, pow(value, j.zzz) * k.xxx + k.yyy); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32 ffxLinearFromSrgb(FfxFloat32 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelect(ffxZeroOneIsSigned(value - j.x), value * j.y, pow(value * k.x + k.y, j.z)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x2 ffxLinearFromSrgb(FfxFloat32x2 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelect(ffxZeroOneIsSigned(value - j.xx), value * j.yy, pow(value * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] value The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat32x3 ffxLinearFromSrgb(FfxFloat32x3 value) +{ + FfxFloat32x3 j = FfxFloat32x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat32x2 k = FfxFloat32x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelect(ffxZeroOneIsSigned(value - j.xxx), value * j.yyy, pow(value * k.xxx + k.yyy, j.zzz)); +} + +/// A remapping of 64x1 to 8x8 imposing rotated 2x2 pixel quads in quad linear. +/// +/// Remap illustration: +/// +/// 543210 +/// ~~~~~~ +/// ..xxx. +/// yy...y +/// +/// @param [in] a The input 1D coordinates to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxRemapForQuad(FfxUInt32 a) +{ + return FfxUInt32x2(ffxBitfieldExtract(a, 1u, 3u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), a, 1u)); +} + +/// A helper function performing a remap 64x1 to 8x8 remapping which is necessary for 2D wave reductions. +/// +/// The 64-wide lane indices to 8x8 remapping is performed as follows: +/// +/// 00 01 08 09 10 11 18 19 +/// 02 03 0a 0b 12 13 1a 1b +/// 04 05 0c 0d 14 15 1c 1d +/// 06 07 0e 0f 16 17 1e 1f +/// 20 21 28 29 30 31 38 39 +/// 22 23 2a 2b 32 33 3a 3b +/// 24 25 2c 2d 34 35 3c 3d +/// 26 27 2e 2f 36 37 3e 3f +/// +/// @param [in] a The input 1D coordinate to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxRemapForWaveReduction(FfxUInt32 a) +{ + return FfxUInt32x2(ffxBitfieldInsertMask(ffxBitfieldExtract(a, 2u, 3u), a, 1u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), ffxBitfieldExtract(a, 1u, 2u), 2u)); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h new file mode 100644 index 000000000..6b071d590 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_gpu_common_half.h @@ -0,0 +1,2981 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if FFX_HALF +#if FFX_HLSL_SM >= 62 +/// A define value for 16bit positive infinity. +/// +/// @ingroup GPUCore +#define FFX_POSITIVE_INFINITY_HALF FFX_TO_FLOAT16((uint16_t)0x7c00u) + +/// A define value for 16bit negative infinity. +/// +/// @ingroup GPUCore +#define FFX_NEGATIVE_INFINITY_HALF FFX_TO_FLOAT16((uint16_t)0xfc00u) +#else +/// A define value for 16bit positive infinity. +/// +/// @ingroup GPUCore +#define FFX_POSITIVE_INFINITY_HALF FFX_TO_FLOAT16(0x7c00u) + +/// A define value for 16bit negative infinity. +/// +/// @ingroup GPUCore +#define FFX_NEGATIVE_INFINITY_HALF FFX_TO_FLOAT16(0xfc00u) +#endif // #if FFX_HLSL_SM>=62 + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16 ffxMin(FfxFloat16 x, FfxFloat16 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxMin(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxMin(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxMin(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16 ffxMin(FfxInt16 x, FfxInt16 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x2 ffxMin(FfxInt16x2 x, FfxInt16x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x3 ffxMin(FfxInt16x3 x, FfxInt16x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x4 ffxMin(FfxInt16x4 x, FfxInt16x4 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16 ffxMin(FfxUInt16 x, FfxUInt16 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxMin(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxMin(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return min(x, y); +} + +/// Compute the min of two values. +/// +/// @param [in] x The first value to compute the min of. +/// @param [in] y The second value to compute the min of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxMin(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return min(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16 ffxMax(FfxFloat16 x, FfxFloat16 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxMax(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxMax(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxMax(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16 ffxMax(FfxInt16 x, FfxInt16 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x2 ffxMax(FfxInt16x2 x, FfxInt16x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x3 ffxMax(FfxInt16x3 x, FfxInt16x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxInt16x4 ffxMax(FfxInt16x4 x, FfxInt16x4 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16 ffxMax(FfxUInt16 x, FfxUInt16 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxMax(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxMax(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return max(x, y); +} + +/// Compute the max of two values. +/// +/// @param [in] x The first value to compute the max of. +/// @param [in] y The second value to compute the max of. +/// +/// @returns +/// The the lowest of two values. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxMax(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return max(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16 ffxPow(FfxFloat16 x, FfxFloat16 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPow(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxPow(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return pow(x, y); +} + +/// Compute the value of the first parameter raised to the power of the second. +/// +/// @param [in] x The value to raise to the power y. +/// @param [in] y The power to which to raise x. +/// +/// @returns +/// The value of the first parameter raised to the power of the second. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxPow(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return pow(x, y); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSqrt(FfxFloat16 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSqrt(FfxFloat16x2 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSqrt(FfxFloat16x3 x) +{ + return sqrt(x); +} + +/// Compute the square root of a value. +/// +/// @param [in] x The first value to compute the min of. +/// +/// @returns +/// The the square root of x. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxSqrt(FfxFloat16x4 x) +{ + return sqrt(x); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16 ffxCopySignBitHalf(FfxFloat16 d, FfxFloat16 s) +{ + return FFX_TO_FLOAT16(FFX_TO_UINT16(d) | (FFX_TO_UINT16(s) & FFX_BROADCAST_UINT16(0x8000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxCopySignBitHalf(FfxFloat16x2 d, FfxFloat16x2 s) +{ + return FFX_TO_FLOAT16X2(FFX_TO_UINT16X2(d) | (FFX_TO_UINT16X2(s) & FFX_BROADCAST_UINT16X2(0x8000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxCopySignBitHalf(FfxFloat16x3 d, FfxFloat16x3 s) +{ + return FFX_TO_FLOAT16X3(FFX_TO_UINT16X3(d) | (FFX_TO_UINT16X3(s) & FFX_BROADCAST_UINT16X3(0x8000u))); +} + +/// Copy the sign bit from 's' to positive 'd'. +/// +/// @param [in] d The value to copy the sign bit into. +/// @param [in] s The value to copy the sign bit from. +/// +/// @returns +/// The value of d with the sign bit from s. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxCopySignBitHalf(FfxFloat16x4 d, FfxFloat16x4 s) +{ + return FFX_TO_FLOAT16X4(FFX_TO_UINT16X4(d) | (FFX_TO_UINT16X4(s) & FFX_BROADCAST_UINT16X4(0x8000u))); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16 ffxIsSignedHalf(FfxFloat16 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxIsSignedHalf(FfxFloat16x2 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X2(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxIsSignedHalf(FfxFloat16x3 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X3(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 0 +/// m >= 0 := 0 +/// m < 0 := 1 +/// +/// Uses the following useful floating point logic, +/// saturate(+a*(-INF)==-INF) := 0 +/// saturate( 0*(-INF)== NaN) := 0 +/// saturate(-a*(-INF)==+INF) := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against 0. +/// +/// @returns +/// 1.0 when the value is negative, or 0.0 when the value is 0 or position. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxIsSignedHalf(FfxFloat16x4 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X4(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16 ffxIsGreaterThanZeroHalf(FfxFloat16 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16(FFX_POSITIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxIsGreaterThanZeroHalf(FfxFloat16x2 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X2(FFX_POSITIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxIsGreaterThanZeroHalf(FfxFloat16x3 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X3(FFX_POSITIVE_INFINITY_HALF)); +} + +/// A single operation to return the following: +/// m = NaN := 1 +/// m > 0 := 0 +/// m <= 0 := 1 +/// +/// This function is useful when creating masks for branch-free logic. +/// +/// @param [in] m The value to test against zero. +/// +/// @returns +/// 1.0 when the value is position, or 0.0 when the value is 0 or negative. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxIsGreaterThanZeroHalf(FfxFloat16x4 m) +{ + return ffxSaturate(m * FFX_BROADCAST_FLOAT16X4(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Convert a 16bit floating point value to sortable integer. +/// +/// - If sign bit=0, flip the sign bit (positives). +/// - If sign bit=1, flip all bits (negatives). +/// +/// The function has the side effects that: +/// - Larger integers are more positive values. +/// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage). +/// +/// @param [in] x The floating point value to make sortable. +/// +/// @returns +/// The sortable integer value. +/// +/// @ingroup GPUCore +FfxUInt16 ffxFloatToSortableIntegerHalf(FfxUInt16 x) +{ + return x ^ ((ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16(15))) | FFX_BROADCAST_UINT16(0x8000)); +} + +/// Convert a sortable integer to a 16bit floating point value. +/// +/// The function has the side effects that: +/// - If sign bit=1, flip the sign bit (positives). +/// - If sign bit=0, flip all bits (negatives). +/// +/// @param [in] x The sortable integer value to make floating point. +/// +/// @returns +/// The floating point value. +/// +/// @ingroup GPUCore +FfxUInt16 ffxSortableIntegerToFloatHalf(FfxUInt16 x) +{ + return x ^ ((~ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16(15))) | FFX_BROADCAST_UINT16(0x8000)); +} + +/// Convert a pair of 16bit floating point values to a pair of sortable integers. +/// +/// - If sign bit=0, flip the sign bit (positives). +/// - If sign bit=1, flip all bits (negatives). +/// +/// The function has the side effects that: +/// - Larger integers are more positive values. +/// - Float zero is mapped to center of integers (so clear to integer zero is a nice default for atomic max usage). +/// +/// @param [in] x The floating point values to make sortable. +/// +/// @returns +/// The sortable integer values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxFloatToSortableIntegerHalf(FfxUInt16x2 x) +{ + return x ^ ((ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16X2(15))) | FFX_BROADCAST_UINT16X2(0x8000)); +} + +/// Convert a pair of sortable integers to a pair of 16bit floating point values. +/// +/// The function has the side effects that: +/// - If sign bit=1, flip the sign bit (positives). +/// - If sign bit=0, flip all bits (negatives). +/// +/// @param [in] x The sortable integer values to make floating point. +/// +/// @returns +/// The floating point values. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxSortableIntegerToFloatHalf(FfxUInt16x2 x) +{ + return x ^ ((~ffxBitShiftRightHalf(x, FFX_BROADCAST_UINT16X2(15))) | FFX_BROADCAST_UINT16X2(0x8000)); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y0 [Zero] X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY0ZeroX0(FfxUInt32x2 i) +{ + return ((i.x) & 0xffu) | ((i.y << 16) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y1 [Zero] X1 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY1ZeroX1(FfxUInt32x2 i) +{ + return ((i.x >> 8) & 0xffu) | ((i.y << 8) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y2 [Zero] X2 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY2ZeroX2(FfxUInt32x2 i) +{ + return ((i.x >> 16) & 0xffu) | ((i.y) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// [Zero] Y3 [Zero] X3 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesZeroY3ZeroX3(FfxUInt32x2 i) +{ + return ((i.x >> 24) & 0xffu) | ((i.y >> 8) & 0xff0000u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 Y1 X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2Y1X0(FfxUInt32x2 i) +{ + return ((i.x) & 0x000000ffu) | (i.y & 0xffffff00u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 Y1 X2 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2Y1X2(FfxUInt32x2 i) +{ + return ((i.x >> 16) & 0x000000ffu) | (i.y & 0xffffff00u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 X0 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2X0Y0(FfxUInt32x2 i) +{ + return ((i.x << 8) & 0x0000ff00u) | (i.y & 0xffff00ffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 Y2 X2 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3Y2X2Y0(FfxUInt32x2 i) +{ + return ((i.x >> 8) & 0x0000ff00u) | (i.y & 0xffff00ffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 X0 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3X0Y1Y0(FfxUInt32x2 i) +{ + return ((i.x << 16) & 0x00ff0000u) | (i.y & 0xff00ffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y3 X2 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY3X2Y1Y0(FfxUInt32x2 i) +{ + return ((i.x) & 0x00ff0000u) | (i.y & 0xff00ffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// X0 Y2 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesX0Y2Y1Y0(FfxUInt32x2 i) +{ + return ((i.x << 24) & 0xff000000u) | (i.y & 0x00ffffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// X2 Y2 Y1 Y0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesX2Y2Y1Y0(FfxUInt32x2 i) +{ + return ((i.x << 8) & 0xff000000u) | (i.y & 0x00ffffffu); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y2 X2 Y0 X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY2X2Y0X0(FfxUInt32x2 i) +{ + return ((i.x) & 0x00ff00ffu) | ((i.y << 8) & 0xff00ff00u); +} + +/// Packs the bytes from the X and Y components of a FfxUInt32x2 into a single 32-bit integer. +/// +/// The resulting integer will contain bytes in the following order, from most to least significant: +/// Y2 Y0 X2 X0 +/// +/// @param [in] i The integer pair to pack. +/// +/// @returns +/// The packed integer value. +/// +/// @ingroup GPUCore +FfxUInt32 ffxPackBytesY2Y0X2X0(FfxUInt32x2 i) +{ + return (((i.x) & 0xffu) | ((i.x >> 8) & 0xff00u) | ((i.y << 16) & 0xff0000u) | ((i.y << 8) & 0xff000000u)); +} + +/// Takes two Float16x2 values x and y, normalizes them and builds a single Uint16x2 value in the format {{x0,y0},{x1,y1}}. +/// +/// @param [in] x The first float16x2 value to pack. +/// @param [in] y The second float16x2 value to pack. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxPackX0Y0X1Y1UnsignedToUint16x2(FfxFloat16x2 x, FfxFloat16x2 y) +{ + x *= FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0); + y *= FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0); + return FFX_UINT32_TO_UINT16X2(ffxPackBytesY2X2Y0X0(FfxUInt32x2(FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(x)), FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(y))))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[0:7], +/// d.y[0:7] into r.y[0:7], i.x[8:15] into r.x[8:15], r.y[8:15] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// r=ffxPermuteUByte0Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte0Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2Y1X0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2Y1X2(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[8:15], +/// d.y[0:7] into r.y[8:15], i.x[0:7] into r.x[0:7], r.y[0:7] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// r=ffxPermuteUByte1Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte1Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2X0Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2X2Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[16:23], +/// d.y[0:7] into r.y[16:23], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[8:15] into r.x[24:31], r.y[24:31] using 3 ops. +/// +/// r=ffxPermuteUByte2Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte2Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3X0Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3X2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[24:31], +/// d.y[0:7] into r.y[24:31], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[0:7] into r.x[16:23], r.y[16:23] using 3 ops. +/// +/// r=ffxPermuteUByte3Float16x2ToUint2(d,i) +/// Where 'k0' is an SGPR with {1.0/32768.0} packed into the lower 16-bits +/// Where 'k1' is an SGPR with 0x???? +/// Where 'k2' is an SGPR with 0x???? +/// V_PK_FMA_F16 i,i,k0.x,0 +/// V_PERM_B32 r.x,i,i,k1 +/// V_PERM_B32 r.y,i,i,k2 +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteUByte3Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0))); + return FfxUInt32x2(ffxPackBytesX0Y2Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesX2Y2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[0:7] into r.x[0:7] and i.y[0:7] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte0Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY0ZeroX0(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[8:15] into r.x[0:7] and i.y[8:15] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte1Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY1ZeroX1(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[16:23] into r.x[0:7] and i.y[16:23] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte2Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY2ZeroX2(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[24:31] into r.x[0:7] and i.y[24:31] into r.y[0:7] using 2 ops. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteUByte3Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY3ZeroX3(i))) * FFX_BROADCAST_FLOAT16X2(32768.0); +} + +/// Takes two Float16x2 values x and y, normalizes them and builds a single Uint16x2 value in the format {{x0,y0},{x1,y1}}. +/// +/// @param [in] x The first float16x2 value to pack. +/// @param [in] y The second float16x2 value to pack. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxPackX0Y0X1Y1SignedToUint16x2(FfxFloat16x2 x, FfxFloat16x2 y) +{ + x = x * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0); + y = y * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0); + return FFX_UINT32_TO_UINT16X2(ffxPackBytesY2X2Y0X0(FfxUInt32x2(FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(x)), FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(y))))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[0:7], +/// d.y[0:7] into r.y[0:7], i.x[8:15] into r.x[8:15], r.y[8:15] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte0Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2Y1X0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2Y1X2(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[8:15], +/// d.y[0:7] into r.y[8:15], i.x[0:7] into r.x[0:7], r.y[0:7] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte1Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3Y2X0Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2X2Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[16:23], +/// d.y[0:7] into r.y[16:23], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[8:15] into r.x[24:31], r.y[24:31] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte2Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesY3X0Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3X2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[24:31], +/// d.y[0:7] into r.y[24:31], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[0:7] into r.x[16:23], r.y[16:23] using 3 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteSByte3Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))); + return FfxUInt32x2(ffxPackBytesX0Y2Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesX2Y2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[0:7], +/// d.y[0:7] into r.y[0:7], i.x[8:15] into r.x[8:15], r.y[8:15] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte0Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesY3Y2Y1X0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2Y1X2(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[8:15], +/// d.y[0:7] into r.y[8:15], i.x[0:7] into r.x[0:7], r.y[0:7] and i.y[0:15] into r.x[16:31], r.y[16:31] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte1Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesY3Y2X0Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3Y2X2Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[16:23], +/// d.y[0:7] into r.y[16:23], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[8:15] into r.x[24:31], r.y[24:31] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte2Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesY3X0Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesY3X2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value d, Float16x2 value i and a resulting FfxUInt32x2 value r, this function packs d.x[0:7] into r.x[24:31], +/// d.y[0:7] into r.y[24:31], i.x[0:15] into r.x[0:15], r.y[0:15] and i.y[0:7] into r.x[16:23], r.y[16:23] using 3 ops. +/// +/// Zero-based flips the MSB bit of the byte (making 128 "exact zero" actually zero). +/// This is useful if there is a desire for cleared values to decode as zero. +/// +/// Handles signed byte values. +/// +/// @param [in] d The FfxUInt32x2 value to be packed. +/// @param [in] i The FfxFloat16x2 value to be packed. +/// +/// @returns +/// The packed FfxUInt32x2 value. +/// +/// @ingroup GPUCore +FfxUInt32x2 ffxPermuteZeroBasedSByte3Float16x2ToUint2(FfxUInt32x2 d, FfxFloat16x2 i) +{ + FfxUInt32 b = FFX_UINT16X2_TO_UINT32(FFX_TO_UINT16X2(i * FFX_BROADCAST_FLOAT16X2(1.0 / 32768.0) + FFX_BROADCAST_FLOAT16X2(0.25 / 32768.0))) ^ 0x00800080u; + return FfxUInt32x2(ffxPackBytesX0Y2Y1Y0(FfxUInt32x2(d.x, b)), ffxPackBytesX2Y2Y1Y0(FfxUInt32x2(d.y, b))); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[0:7] into r.x[0:7] and i.y[0:7] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte0Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY0ZeroX0(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[8:15] into r.x[0:7] and i.y[8:15] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte1Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY1ZeroX1(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[16:23] into r.x[0:7] and i.y[16:23] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte2Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY2ZeroX2(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[24:31] into r.x[0:7] and i.y[24:31] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteSByte3Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY3ZeroX3(i))) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[0:7] into r.x[0:7] and i.y[0:7] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte0Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY0ZeroX0(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[8:15] into r.x[0:7] and i.y[8:15] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte1Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY1ZeroX1(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[16:23] into r.x[0:7] and i.y[16:23] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte2Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY2ZeroX2(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Given a FfxUInt32x2 value i and a resulting Float16x2 value r, this function packs i.x[24:31] into r.x[0:7] and i.y[24:31] into r.y[0:7] using 2 ops. +/// +/// Handles signed byte values. +/// +/// @param [in] i The FfxUInt32x2 value to be unpacked. +/// +/// @returns +/// The unpacked FfxFloat16x2. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxPermuteZeroBasedSByte3Uint2ToFloat16x2(FfxUInt32x2 i) +{ + return FFX_TO_FLOAT16X2(FFX_UINT32_TO_UINT16X2(ffxPackBytesZeroY3ZeroX3(i) ^ 0x00800080u)) * FFX_BROADCAST_FLOAT16X2(32768.0) - FFX_BROADCAST_FLOAT16X2(0.25); +} + +/// Calculate a half-precision low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateSqrtHalf(FfxFloat16 a) +{ + return FFX_TO_FLOAT16((FFX_TO_UINT16(a) >> FFX_BROADCAST_UINT16(1)) + FFX_BROADCAST_UINT16(0x1de2)); +} + +/// Calculate a half-precision low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateSqrtHalf(FfxFloat16x2 a) +{ + return FFX_TO_FLOAT16X2((FFX_TO_UINT16X2(a) >> FFX_BROADCAST_UINT16X2(1)) + FFX_BROADCAST_UINT16X2(0x1de2)); +} + +/// Calculate a half-precision low-quality approximation for the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the square root for. +/// +/// @returns +/// An approximation of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateSqrtHalf(FfxFloat16x3 a) +{ + return FFX_TO_FLOAT16X3((FFX_TO_UINT16X3(a) >> FFX_BROADCAST_UINT16X3(1)) + FFX_BROADCAST_UINT16X3(0x1de2)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateReciprocalHalf(FfxFloat16 a) +{ + return FFX_TO_FLOAT16(FFX_BROADCAST_UINT16(0x7784) - FFX_TO_UINT16(a)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateReciprocalHalf(FfxFloat16x2 a) +{ + return FFX_TO_FLOAT16X2(FFX_BROADCAST_UINT16X2(0x7784) - FFX_TO_UINT16X2(a)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateReciprocalHalf(FfxFloat16x3 a) +{ + return FFX_TO_FLOAT16X3(FFX_BROADCAST_UINT16X3(0x7784) - FFX_TO_UINT16X3(a)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxApproximateReciprocalHalf(FfxFloat16x4 a) +{ + return FFX_TO_FLOAT16X4(FFX_BROADCAST_UINT16X4(0x7784) - FFX_TO_UINT16X4(a)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateReciprocalMediumHalf(FfxFloat16 a) +{ + FfxFloat16 b = FFX_TO_FLOAT16(FFX_BROADCAST_UINT16(0x778d) - FFX_TO_UINT16(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16(2.0)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateReciprocalMediumHalf(FfxFloat16x2 a) +{ + FfxFloat16x2 b = FFX_TO_FLOAT16X2(FFX_BROADCAST_UINT16X2(0x778d) - FFX_TO_UINT16X2(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16X2(2.0)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateReciprocalMediumHalf(FfxFloat16x3 a) +{ + FfxFloat16x3 b = FFX_TO_FLOAT16X3(FFX_BROADCAST_UINT16X3(0x778d) - FFX_TO_UINT16X3(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16X3(2.0)); +} + +/// Calculate a half-precision medium-quality approximation for the reciprocal of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal for. +/// +/// @returns +/// An approximation of the reciprocal, estimated to medium quality. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxApproximateReciprocalMediumHalf(FfxFloat16x4 a) +{ + FfxFloat16x4 b = FFX_TO_FLOAT16X4(FFX_BROADCAST_UINT16X4(0x778d) - FFX_TO_UINT16X4(a)); + return b * (-b * a + FFX_BROADCAST_FLOAT16X4(2.0)); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16 ffxApproximateReciprocalSquareRootHalf(FfxFloat16 a) +{ + return FFX_TO_FLOAT16(FFX_BROADCAST_UINT16(0x59a3) - (FFX_TO_UINT16(a) >> FFX_BROADCAST_UINT16(1))); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxApproximateReciprocalSquareRootHalf(FfxFloat16x2 a) +{ + return FFX_TO_FLOAT16X2(FFX_BROADCAST_UINT16X2(0x59a3) - (FFX_TO_UINT16X2(a) >> FFX_BROADCAST_UINT16X2(1))); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxApproximateReciprocalSquareRootHalf(FfxFloat16x3 a) +{ + return FFX_TO_FLOAT16X3(FFX_BROADCAST_UINT16X3(0x59a3) - (FFX_TO_UINT16X3(a) >> FFX_BROADCAST_UINT16X3(1))); +} + +/// Calculate a half-precision low-quality approximation for the reciprocal of the square root of a value. +/// +/// For additional information on the approximation family of functions, you can refer to Michal Drobot's excellent +/// presentation materials: +/// +/// - https://michaldrobot.files.wordpress.com/2014/05/gcn_alu_opt_digitaldragons2014.pdf +/// - https://github.com/michaldrobot/ShaderFastLibs/blob/master/ShaderFastMathLib.h +/// +/// @param [in] a The value to calculate an approximate to the reciprocal of the square root for. +/// +/// @returns +/// An approximation of the reciprocal of the square root, estimated to low quality. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxApproximateReciprocalSquareRootHalf(FfxFloat16x4 a) +{ + return FFX_TO_FLOAT16X4(FFX_BROADCAST_UINT16X4(0x59a3) - (FFX_TO_UINT16X4(a) >> FFX_BROADCAST_UINT16X4(1))); +} + +/// An approximation of sine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate sine for. +/// +/// @returns +/// The approximate sine of value. +FfxFloat16 ffxParabolicSinHalf(FfxFloat16 x) +{ + return x * abs(x) - x; +} + +/// An approximation of sine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate sine for. +/// +/// @returns +/// The approximate sine of value. +FfxFloat16x2 ffxParabolicSinHalf(FfxFloat16x2 x) +{ + return x * abs(x) - x; +} + +/// An approximation of cosine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate cosine for. +/// +/// @returns +/// The approximate cosine of value. +FfxFloat16 ffxParabolicCosHalf(FfxFloat16 x) +{ + x = ffxFract(x * FFX_BROADCAST_FLOAT16(0.5) + FFX_BROADCAST_FLOAT16(0.75)); + x = x * FFX_BROADCAST_FLOAT16(2.0) - FFX_BROADCAST_FLOAT16(1.0); + return ffxParabolicSinHalf(x); +} + +/// An approximation of cosine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate cosine for. +/// +/// @returns +/// The approximate cosine of value. +FfxFloat16x2 ffxParabolicCosHalf(FfxFloat16x2 x) +{ + x = ffxFract(x * FFX_BROADCAST_FLOAT16X2(0.5) + FFX_BROADCAST_FLOAT16X2(0.75)); + x = x * FFX_BROADCAST_FLOAT16X2(2.0) - FFX_BROADCAST_FLOAT16X2(1.0); + return ffxParabolicSinHalf(x); +} + +/// An approximation of both sine and cosine. +/// +/// Valid input range is {-1 to 1} representing {0 to 2 pi}, and the output range +/// is {-1/4 to 1/4} representing {-1 to 1}. +/// +/// @param [in] x The value to calculate approximate cosine for. +/// +/// @returns +/// A FfxFloat32x2 containing approximations of both sine and cosine of value. +FfxFloat16x2 ffxParabolicSinCosHalf(FfxFloat16 x) +{ + FfxFloat16 y = ffxFract(x * FFX_BROADCAST_FLOAT16(0.5) + FFX_BROADCAST_FLOAT16(0.75)); + y = y * FFX_BROADCAST_FLOAT16(2.0) - FFX_BROADCAST_FLOAT16(1.0); + return ffxParabolicSinHalf(FfxFloat16x2(x, y)); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneAndHalf(FfxUInt16 x, FfxUInt16 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneAndHalf(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneAndHalf(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneAndHalf(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return min(x, y); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneNotHalf(FfxUInt16 x) +{ + return x ^ FFX_BROADCAST_UINT16(1); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneNotHalf(FfxUInt16x2 x) +{ + return x ^ FFX_BROADCAST_UINT16X2(1); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneNotHalf(FfxUInt16x3 x) +{ + return x ^ FFX_BROADCAST_UINT16X3(1); +} + +/// Conditional free logic NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the NOT operator. +/// @param [in] y The second value to be fed into the NOT operator. +/// +/// @returns +/// Result of the NOT operation. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneNotHalf(FfxUInt16x4 x) +{ + return x ^ FFX_BROADCAST_UINT16X4(1); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneOrHalf(FfxUInt16 x, FfxUInt16 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneOrHalf(FfxUInt16x2 x, FfxUInt16x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneOrHalf(FfxUInt16x3 x, FfxUInt16x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneOrHalf(FfxUInt16x4 x, FfxUInt16x4 y) +{ + return max(x, y); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16 ffxZeroOneFloat16ToUint16(FfxFloat16 x) +{ + return FFX_TO_UINT16(x * FFX_TO_FLOAT16(FFX_TO_UINT16(1))); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxZeroOneFloat16x2ToUint16x2(FfxFloat16x2 x) +{ + return FFX_TO_UINT16X2(x * FFX_TO_FLOAT16X2(FfxUInt16x2(1, 1))); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16x3 ffxZeroOneFloat16x3ToUint16x3(FfxFloat16x3 x) +{ + return FFX_TO_UINT16X3(x * FFX_TO_FLOAT16X3(FfxUInt16x3(1, 1, 1))); +} + +/// Convert a half-precision FfxFloat32 value between 0.0f and 1.0f to a half-precision Uint. +/// +/// @param [in] x The value to converted to a Uint. +/// +/// @returns +/// The converted Uint value. +/// +/// @ingroup GPUCore +FfxUInt16x4 ffxZeroOneFloat16x4ToUint16x4(FfxFloat16x4 x) +{ + return FFX_TO_UINT16X4(x * FFX_TO_FLOAT16X4(FfxUInt16x4(1, 1, 1, 1))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneUint16ToFloat16(FfxUInt16 x) +{ + return FFX_TO_FLOAT16(x * FFX_TO_UINT16(FFX_TO_FLOAT16(1.0))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneUint16x2ToFloat16x2(FfxUInt16x2 x) +{ + return FFX_TO_FLOAT16X2(x * FFX_TO_UINT16X2(FfxUInt16x2(FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0)))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneUint16x3ToFloat16x3(FfxUInt16x3 x) +{ + return FFX_TO_FLOAT16X3(x * FFX_TO_UINT16X3(FfxUInt16x3(FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0)))); +} + +/// Convert a half-precision FfxUInt32 value between 0 and 1 to a half-precision FfxFloat32. +/// +/// @param [in] x The value to converted to a half-precision FfxFloat32. +/// +/// @returns +/// The converted half-precision FfxFloat32 value. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneUint16x4ToFloat16x4(FfxUInt16x4 x) +{ + return FFX_TO_FLOAT16X4(x * FFX_TO_UINT16X4(FfxUInt16x4(FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0), FFX_TO_FLOAT16(1.0)))); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneAndHalf(FfxFloat16 x, FfxFloat16 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneAndHalf(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneAndHalf(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return min(x, y); +} + +/// Conditional free logic AND operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// +/// @returns +/// Result of the AND operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneAndHalf(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return min(x, y); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSignedZeroOneAndOrHalf(FfxFloat16 x, FfxFloat16 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16(1.0); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSignedZeroOneAndOrHalf(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16X2(1.0); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSignedZeroOneAndOrHalf(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16X3(1.0); +} + +/// Conditional free logic AND NOT operation using two half-precision values. +/// +/// @param [in] x The first value to be fed into the AND NOT operator. +/// @param [in] y The second value to be fed into the AND NOT operator. +/// +/// @returns +/// Result of the AND NOT operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxSignedZeroOneAndOrHalf(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return (-x) * y + FFX_BROADCAST_FLOAT16X4(1.0); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneAndOrHalf(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneAndOrHalf(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneAndOrHalf(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + return ffxSaturate(x * y + z); +} + +/// Conditional free logic AND operation using two half-precision values followed by +/// a NOT operation using the resulting value and a third half-precision value. +/// +/// @param [in] x The first value to be fed into the AND operator. +/// @param [in] y The second value to be fed into the AND operator. +/// @param [in] z The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneAndOrHalf(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + return ffxSaturate(x * y + z); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16x2 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X2(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16x3 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X3(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if greater than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the greater than zero comparison. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneIsGreaterThanZeroHalf(FfxFloat16x4 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X4(FFX_POSITIVE_INFINITY_HALF)); +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneNotHalf(FfxFloat16 x) +{ + return FFX_BROADCAST_FLOAT16(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneNotHalf(FfxFloat16x2 x) +{ + return FFX_BROADCAST_FLOAT16X2(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneNotHalf(FfxFloat16x3 x) +{ + return FFX_BROADCAST_FLOAT16X3(1.0) - x; +} + +/// Conditional free logic signed NOT operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the AND OR operator. +/// +/// @returns +/// Result of the AND OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneNotHalf(FfxFloat16x4 x) +{ + return FFX_BROADCAST_FLOAT16X4(1.0) - x; +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneOrHalf(FfxFloat16 x, FfxFloat16 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneOrHalf(FfxFloat16x2 x, FfxFloat16x2 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneOrHalf(FfxFloat16x3 x, FfxFloat16x3 y) +{ + return max(x, y); +} + +/// Conditional free logic OR operation using two half-precision FfxFloat32 values. +/// +/// @param [in] x The first value to be fed into the OR operator. +/// @param [in] y The second value to be fed into the OR operator. +/// +/// @returns +/// Result of the OR operation. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneOrHalf(FfxFloat16x4 x, FfxFloat16x4 y) +{ + return max(x, y); +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneSelectHalf(FfxFloat16 x, FfxFloat16 y, FfxFloat16 z) +{ + FfxFloat16 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneSelectHalf(FfxFloat16x2 x, FfxFloat16x2 y, FfxFloat16x2 z) +{ + FfxFloat16x2 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneSelectHalf(FfxFloat16x3 x, FfxFloat16x3 y, FfxFloat16x3 z) +{ + FfxFloat16x3 r = (-x) * z + z; + return x * y + r; +} + +/// Choose between two half-precision FfxFloat32 values if the first paramter is greater than zero. +/// +/// @param [in] x The value to compare against zero. +/// @param [in] y The value to return if the comparision is greater than zero. +/// @param [in] z The value to return if the comparision is less than or equal to zero. +/// +/// @returns +/// The selected value. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneSelectHalf(FfxFloat16x4 x, FfxFloat16x4 y, FfxFloat16x4 z) +{ + FfxFloat16x4 r = (-x) * z + z; + return x * y + r; +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxZeroOneIsSignedHalf(FfxFloat16 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxZeroOneIsSignedHalf(FfxFloat16x2 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X2(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxZeroOneIsSignedHalf(FfxFloat16x3 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X3(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Given a half-precision value, returns 1.0 if less than zero and 0.0 if not. +/// +/// @param [in] x The value to be compared. +/// +/// @returns +/// Result of the sign value. +/// +/// @ingroup GPUCore +FfxFloat16x4 ffxZeroOneIsSignedHalf(FfxFloat16x4 x) +{ + return ffxSaturate(x * FFX_BROADCAST_FLOAT16X4(FFX_NEGATIVE_INFINITY_HALF)); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] c The color to convert to Rec. 709. +/// +/// @returns +/// The color in Rec.709 space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxRec709FromLinearHalf(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.099, -0.099); + return clamp(j.x, c * j.y, pow(c, j.z) * k.x + k.y); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] c The color to convert to Rec. 709. +/// +/// @returns +/// The color in Rec.709 space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxRec709FromLinearHalf(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.099, -0.099); + return clamp(j.xx, c * j.yy, pow(c, j.zz) * k.xx + k.yy); +} + +/// Compute a Rec.709 color space. +/// +/// Rec.709 is used for some HDTVs. +/// +/// Both Rec.709 and sRGB have a linear segment which as spec'ed would intersect the curved segment 2 times. +/// (a.) For 8-bit sRGB, steps {0 to 10.3} are in the linear region (4% of the encoding range). +/// (b.) For 8-bit 709, steps {0 to 20.7} are in the linear region (8% of the encoding range). +/// +/// @param [in] c The color to convert to Rec. 709. +/// +/// @returns +/// The color in Rec.709 space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxRec709FromLinearHalf(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.018 * 4.5, 4.5, 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.099, -0.099); + return clamp(j.xxx, c * j.yyy, pow(c, j.zzz) * k.xxx + k.yyy); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGammaHalf. +/// +/// @param [in] c The value to convert to gamma space from linear. +/// @param [in] rcpX The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxGammaFromLinearHalf(FfxFloat16 c, FfxFloat16 rcpX) +{ + return pow(c, FFX_BROADCAST_FLOAT16(rcpX)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGammaHalf. +/// +/// @param [in] c The value to convert to gamma space from linear. +/// @param [in] rcpX The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxGammaFromLinearHalf(FfxFloat16x2 c, FfxFloat16 rcpX) +{ + return pow(c, FFX_BROADCAST_FLOAT16X2(rcpX)); +} + +/// Compute a gamma value from a linear value. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// Note: 'rcpX' is '1/x', where the 'x' is what would be used in ffxLinearFromGammaHalf. +/// +/// @param [in] c The value to convert to gamma space from linear. +/// @param [in] rcpX The reciprocal of power value used for the gamma curve. +/// +/// @returns +/// A value in gamma space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxGammaFromLinearHalf(FfxFloat16x3 c, FfxFloat16 rcpX) +{ + return pow(c, FFX_BROADCAST_FLOAT16X3(rcpX)); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] c The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSrgbFromLinearHalf(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.055, -0.055); + return clamp(j.x, c * j.y, pow(c, j.z) * k.x + k.y); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] c The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSrgbFromLinearHalf(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.055, -0.055); + return clamp(j.xx, c * j.yy, pow(c, j.zz) * k.xx + k.yy); +} + +/// Compute an SRGB value from a linear value. +/// +/// @param [in] c The value to convert to SRGB from linear. +/// +/// @returns +/// A value in SRGB space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSrgbFromLinearHalf(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.0031308 * 12.92, 12.92, 1.0 / 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.055, -0.055); + return clamp(j.xxx, c * j.yyy, pow(c, j.zzz) * k.xxx + k.yyy); +} + +/// Compute the square root of a value. +/// +/// @param [in] c The value to compute the square root for. +/// +/// @returns +/// A square root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxSquareRootHalf(FfxFloat16 c) +{ + return sqrt(c); +} + +/// Compute the square root of a value. +/// +/// @param [in] c The value to compute the square root for. +/// +/// @returns +/// A square root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxSquareRootHalf(FfxFloat16x2 c) +{ + return sqrt(c); +} + +/// Compute the square root of a value. +/// +/// @param [in] c The value to compute the square root for. +/// +/// @returns +/// A square root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxSquareRootHalf(FfxFloat16x3 c) +{ + return sqrt(c); +} + +/// Compute the cube root of a value. +/// +/// @param [in] c The value to compute the cube root for. +/// +/// @returns +/// A cube root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16 ffxCubeRootHalf(FfxFloat16 c) +{ + return pow(c, FFX_BROADCAST_FLOAT16(1.0 / 3.0)); +} + +/// Compute the cube root of a value. +/// +/// @param [in] c The value to compute the cube root for. +/// +/// @returns +/// A cube root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxCubeRootHalf(FfxFloat16x2 c) +{ + return pow(c, FFX_BROADCAST_FLOAT16X2(1.0 / 3.0)); +} + +/// Compute the cube root of a value. +/// +/// @param [in] c The value to compute the cube root for. +/// +/// @returns +/// A cube root of the input value. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxCubeRootHalf(FfxFloat16x3 c) +{ + return pow(c, FFX_BROADCAST_FLOAT16X3(1.0 / 3.0)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] c The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxLinearFromRec709Half(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.x), c * j.y, pow(c * k.x + k.y, j.z)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] c The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxLinearFromRec709Half(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xx), c * j.yy, pow(c * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a REC.709 value. +/// +/// @param [in] c The value to convert to linear from REC.709. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxLinearFromRec709Half(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.081 / 4.5, 1.0 / 4.5, 1.0 / 0.45); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.099, 0.099 / 1.099); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xxx), c * j.yyy, pow(c * k.xxx + k.yyy, j.zzz)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in gamma space. +/// @param [in] x The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxLinearFromGammaHalf(FfxFloat16 c, FfxFloat16 x) +{ + return pow(c, FFX_BROADCAST_FLOAT16(x)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in gamma space. +/// @param [in] x The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxLinearFromGammaHalf(FfxFloat16x2 c, FfxFloat16 x) +{ + return pow(c, FFX_BROADCAST_FLOAT16X2(x)); +} + +/// Compute a linear value from a value in a gamma space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in gamma space. +/// @param [in] x The power value used for the gamma curve. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxLinearFromGammaHalf(FfxFloat16x3 c, FfxFloat16 x) +{ + return pow(c, FFX_BROADCAST_FLOAT16X3(x)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16 ffxLinearFromSrgbHalf(FfxFloat16 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.x), c * j.y, pow(c * k.x + k.y, j.z)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x2 ffxLinearFromSrgbHalf(FfxFloat16x2 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xx), c * j.yy, pow(c * k.xx + k.yy, j.zz)); +} + +/// Compute a linear value from a value in a SRGB space. +/// +/// Typically 2.2 for some PC displays, or 2.4-2.5 for CRTs, or 2.2 FreeSync2 native. +/// +/// @param [in] c The value to convert to linear in SRGB space. +/// +/// @returns +/// A value in linear space. +/// +/// @ingroup GPUCore +FfxFloat16x3 ffxLinearFromSrgbHalf(FfxFloat16x3 c) +{ + FfxFloat16x3 j = FfxFloat16x3(0.04045, 1.0 / 12.92, 2.4); + FfxFloat16x2 k = FfxFloat16x2(1.0 / 1.055, 0.055 / 1.055); + return ffxZeroOneSelectHalf(ffxZeroOneIsSignedHalf(c - j.xxx), c * j.yyy, pow(c * k.xxx + k.yyy, j.zzz)); +} + +/// A remapping of 64x1 to 8x8 imposing rotated 2x2 pixel quads in quad linear. +/// +/// Remap illustration: +/// +/// 543210 +/// ~~~~~~ +/// ..xxx. +/// yy...y +/// +/// @param [in] a The input 1D coordinates to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxRemapForQuadHalf(FfxUInt32 a) +{ + return FfxUInt16x2(ffxBitfieldExtract(a, 1u, 3u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), a, 1u)); +} + +/// A helper function performing a remap 64x1 to 8x8 remapping which is necessary for 2D wave reductions. +/// +/// The 64-wide lane indices to 8x8 remapping is performed as follows: +/// +/// 00 01 08 09 10 11 18 19 +/// 02 03 0a 0b 12 13 1a 1b +/// 04 05 0c 0d 14 15 1c 1d +/// 06 07 0e 0f 16 17 1e 1f +/// 20 21 28 29 30 31 38 39 +/// 22 23 2a 2b 32 33 3a 3b +/// 24 25 2c 2d 34 35 3c 3d +/// 26 27 2e 2f 36 37 3e 3f +/// +/// @param [in] a The input 1D coordinate to remap. +/// +/// @returns +/// The remapped 2D coordinates. +/// +/// @ingroup GPUCore +FfxUInt16x2 ffxRemapForWaveReductionHalf(FfxUInt32 a) +{ + return FfxUInt16x2(ffxBitfieldInsertMask(ffxBitfieldExtract(a, 2u, 3u), a, 1u), ffxBitfieldInsertMask(ffxBitfieldExtract(a, 3u, 3u), ffxBitfieldExtract(a, 1u, 2u), 2u)); +} + +#endif // FFX_HALF diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h new file mode 100644 index 000000000..12147b9a7 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/ffx_core_portability.h @@ -0,0 +1,46 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void ffxOpAAddOneF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32 b) +{ + d = a + ffxBroadcast3(b); +} + +void ffxOpACpyF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a) +{ + d = a; +} + +void ffxOpAMulF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32x3 b) +{ + d = a * b; +} + +void ffxOpAMulOneF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a, FfxFloat32 b) +{ + d = a * b; +} + +void ffxOpARcpF3(FFX_PARAMETER_OUT FfxFloat32x3 d, FfxFloat32x3 a) +{ + d = ffxReciprocal(a); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt new file mode 100644 index 000000000..9652cb0dd --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/CMakeCompileFrameinterpolationShaders.txt @@ -0,0 +1,55 @@ +# This file is part of the FidelityFX SDK. +# +# Copyright (C) 2024 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files(the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions : +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +set(FRAMEINTERPOLATION_BASE_ARGS + -DFFX_FRAMEINTERPOLATION_OPTION_UPSAMPLE_SAMPLERS_USE_DATA_HALF=0 + -DFFX_FRAMEINTERPOLATION_OPTION_ACCUMULATE_SAMPLERS_USE_DATA_HALF=0 + -DFFX_FRAMEINTERPOLATION_OPTION_REPROJECT_SAMPLERS_USE_DATA_HALF=1 + -DFFX_FRAMEINTERPOLATION_OPTION_POSTPROCESSLOCKSTATUS_SAMPLERS_USE_DATA_HALF=0 + # Upsample uses lanczos approximation + -DFFX_FRAMEINTERPOLATION_OPTION_UPSAMPLE_USE_LANCZOS_TYPE=2 + -reflection -deps=gcc -DFFX_GPU=1) + +set(FRAMEINTERPOLATION_PERMUTATION_ARGS + -DFFX_FRAMEINTERPOLATION_OPTION_LOW_RES_MOTION_VECTORS={0,1} + -DFFX_FRAMEINTERPOLATION_OPTION_JITTER_MOTION_VECTORS={0,1} + -DFFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH={0,1}) + +set(FRAMEINTERPOLATION_INCLUDE_ARGS + "${FFX_GPU_PATH}" + "${FFX_GPU_PATH}/frameinterpolation") + +if (NOT FRAMEINTERPOLATION_SHADER_EXT) + set(FRAMEINTERPOLATION_SHADER_EXT *) +endif() + +file(GLOB FRAMEINTERPOLATION_SHADERS + "shaders/frameinterpolation/*.${FRAMEINTERPOLATION_SHADER_EXT}") + +# compile all the shaders +compile_shaders_with_depfile( + "${FFX_SC_EXECUTABLE}" + "${FRAMEINTERPOLATION_BASE_ARGS}" "${FRAMEINTERPOLATION_API_BASE_ARGS}" "${FRAMEINTERPOLATION_PERMUTATION_ARGS}" "${FRAMEINTERPOLATION_INCLUDE_ARGS}" + "${FRAMEINTERPOLATION_SHADERS}" "${FFX_PASS_SHADER_OUTPUT_PATH}" FRAMEINTERPOLATION_PERMUTATION_OUTPUTS) + +# add the header files they generate to the main list of dependencies +add_shader_output("${FRAMEINTERPOLATION_PERMUTATION_OUTPUTS}") diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h new file mode 100644 index 000000000..ccf2e23b8 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation.h @@ -0,0 +1,187 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_H +#define FFX_FRAMEINTERPOLATION_H + +struct InterpolationSourceColor +{ + FfxFloat32x3 fRaw; + FfxFloat32x3 fLinear; + FfxFloat32 fBilinearWeightSum; +}; + +InterpolationSourceColor NewInterpolationSourceColor() +{ + InterpolationSourceColor c; + c.fRaw = FfxFloat32x3(0.0, 0.0, 0.0); + c.fLinear = FfxFloat32x3(0.0, 0.0, 0.0); + c.fBilinearWeightSum = 0.0; + return c; +} + +InterpolationSourceColor SampleTextureBilinear(FfxBoolean isCurrent, FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxInt32x2 texSize) +{ + InterpolationSourceColor result = NewInterpolationSourceColor(); + + FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, texSize); + + FfxFloat32x3 fColor = FfxFloat32x3(0.0, 0.0, 0.0); + FfxFloat32 fWeightSum = 0.0f; + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsInRect(iSamplePos, InterpolationRectBase(), InterpolationRectSize())) + { + FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (isCurrent) + fColor += LoadCurrentBackbuffer(iSamplePos).rgb * fWeight; + else + fColor += LoadPreviousBackbuffer(iSamplePos).rgb * fWeight; + fWeightSum += fWeight; + } + } + + //normalize colors + fColor = (fWeightSum != 0.0f) ? fColor / fWeightSum : FfxFloat32x3(0.0f, 0.0f, 0.0f); + + result.fRaw = fColor; + result.fLinear = RawRGBToLinear(fColor); + result.fBilinearWeightSum = fWeightSum; + + return result; +} + +void updateInPaintingWeight(inout FfxFloat32 fInPaintingWeight, FfxFloat32 fFactor) +{ + fInPaintingWeight = ffxSaturate(ffxMax(fInPaintingWeight, fFactor)); +} + +void computeInterpolatedColor(FfxUInt32x2 iPxPos, out FfxFloat32x3 fInterpolatedColor, inout FfxFloat32 fInPaintingWeight) +{ + const FfxFloat32x2 fUvInInterpolationRect = (FfxFloat32x2(iPxPos - InterpolationRectBase()) + 0.5f) / InterpolationRectSize(); + const FfxFloat32x2 fUvInScreenSpace = (FfxFloat32x2(iPxPos) + 0.5f) / DisplaySize(); + const FfxFloat32x2 fLrUvInInterpolationRect = fUvInInterpolationRect * (FfxFloat32x2(RenderSize()) / GetMaxRenderSize()); + + const FfxFloat32x2 fUvLetterBoxScale = FfxFloat32x2(InterpolationRectSize()) / DisplaySize(); + + // game MV are top left aligned, the function scales them to render res UV + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fUvInInterpolationRect, gameMv); + + // OF is done on the back buffers which already have black bars + VectorFieldEntry ofMv; + SampleOpticalFlowMotionVectorField(fUvInScreenSpace, ofMv); + + // Binarize disucclusion factor + FfxFloat32x2 fDisocclusionFactor = FfxFloat32x2(FFX_EQUAL(ffxSaturate(SampleDisocclusionMask(fLrUvInInterpolationRect).xy), FfxFloat32x2(1.0, 1.0))); + + InterpolationSourceColor fPrevColorGame = SampleTextureBilinear(false, fUvInScreenSpace, +gameMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); // Get in previous frame buffer, the color of interpolated pixel + InterpolationSourceColor fCurrColorGame = SampleTextureBilinear(true, fUvInScreenSpace, -gameMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); // Get color in current framebuffer, of color of interpolated pixel + + InterpolationSourceColor fPrevColorOF = SampleTextureBilinear(false, fUvInScreenSpace, +ofMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); + InterpolationSourceColor fCurrColorOF = SampleTextureBilinear(true, fUvInScreenSpace, -ofMv.fMotionVector * fUvLetterBoxScale, DisplaySize()); + + FfxFloat32 fDisoccludedFactor = 0.0f; + + // Disocclusion logic + { + fDisocclusionFactor.x *= FfxFloat32(!gameMv.bPosOutside); // fDisocclusionFactor.x of 1 means the pos of interpolated pixel is within bounds of previous frame. + fDisocclusionFactor.y *= FfxFloat32(!gameMv.bNegOutside); // fDisocclusionFactor.y of 1 means the pos of interpolated pixel is within bounds of current frame + + // Inpaint in bi-directional disocclusion areas + updateInPaintingWeight(fInPaintingWeight, FfxFloat32(length(fDisocclusionFactor) <= FFX_FRAMEINTERPOLATION_EPSILON)); + + FfxFloat32 t = 0.5f; + t += 0.5f * (1 - (fDisocclusionFactor.x)); + t -= 0.5f * (1 - (fDisocclusionFactor.y)); + // Say if fDisocclusionFactor.x is 1 and fDisocclusionFactor.y = 0, then t will be 0. fInterpolatedColor will be entirely from fPrevColorGame + fInterpolatedColor = ffxLerp(fPrevColorGame.fRaw, fCurrColorGame.fRaw, ffxSaturate(t)); + fDisoccludedFactor = ffxSaturate(1 - ffxMin(fDisocclusionFactor.x, fDisocclusionFactor.y)); + + if (fPrevColorGame.fBilinearWeightSum == 0.0f) + { + fInterpolatedColor = fCurrColorGame.fRaw; + } + else if (fCurrColorGame.fBilinearWeightSum == 0.0f) + { + fInterpolatedColor = fPrevColorGame.fRaw; + } + if (fPrevColorGame.fBilinearWeightSum == 0 && fCurrColorGame.fBilinearWeightSum == 0) + { + fInPaintingWeight = 1.0f; + } + } + + { + + FfxFloat32 ofT = 0.5f; + + if (fPrevColorOF.fBilinearWeightSum > 0 && fCurrColorOF.fBilinearWeightSum > 0) + { + ofT = 0.5f; + } + else if (fPrevColorOF.fBilinearWeightSum > 0) + { + ofT = 0; + } else { + ofT = 1; + } + + const FfxFloat32x3 ofColor = ffxLerp(fPrevColorOF.fRaw, fCurrColorOF.fRaw, ofT); + + FfxFloat32 fOF_Sim = NormalizedDot3(fPrevColorOF.fRaw, fCurrColorOF.fRaw); + FfxFloat32 fGame_Sim = NormalizedDot3(fPrevColorGame.fRaw, fCurrColorGame.fRaw); + + fGame_Sim = ffxLerp(ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, fGame_Sim), 1.0f, ffxSaturate(fDisoccludedFactor)); + FfxFloat32 fGameMvBias = ffxPow(ffxSaturate(fGame_Sim / ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, fOF_Sim)), 1.0f); + + const FfxFloat32 fFrameIndexFactor = FfxFloat32(FrameIndexSinceLastReset() < 10); + fGameMvBias = ffxLerp(fGameMvBias, 1.0f, fFrameIndexFactor); + + fInterpolatedColor = ffxLerp(ofColor, fInterpolatedColor, ffxSaturate(fGameMvBias)); + } +} + +void computeFrameinterpolation(FfxInt32x2 iPxPos) +{ + FfxFloat32x3 fColor = FfxFloat32x3(0, 0, 0); + FfxFloat32 fInPaintingWeight = 0.0f; + + if (IsInRect(iPxPos, InterpolationRectBase(), InterpolationRectSize()) == false || FrameIndexSinceLastReset() == 0) + { + // if we just reset or we are out of the interpolation rect, copy the current back buffer and don't interpolate + fColor = LoadCurrentBackbuffer(iPxPos); + } + else + { + computeInterpolatedColor(iPxPos, fColor, fInPaintingWeight); + } + + StoreFrameinterpolationOutput(FfxInt32x2(iPxPos), FfxFloat32x4(fColor, fInPaintingWeight)); +} + +#endif // FFX_FRAMEINTERPOLATION_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h new file mode 100644 index 000000000..20c5c2967 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h @@ -0,0 +1,758 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "ffx_frameinterpolation_resources.h" +#include "ffx_core.h" + +#define COUNTER_SPD 0 +#define COUNTER_FRAME_INDEX_SINCE_LAST_RESET 1 + + /////////////////////////////////////////////// + // declare CBs and CB accessors +/////////////////////////////////////////////// +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION, std140) uniform cbFI_t + { + FfxInt32x2 renderSize; + FfxInt32x2 displaySize; + + FfxFloat32x2 displaySizeRcp; + FfxFloat32 cameraNear; + FfxFloat32 cameraFar; + + FfxInt32x2 upscalerTargetSize; + FfxInt32 Mode; + FfxInt32 reset; + + FfxFloat32x4 fDeviceToViewDepth; + + FfxFloat32 deltaTime; + FfxInt32 HUDLessAttachedFactor; + FfxInt32x2 distortionFieldSize; + + FfxFloat32x2 opticalFlowScale; + FfxInt32 opticalFlowBlockSize; + FfxUInt32 dispatchFlags; + + FfxInt32x2 maxRenderSize; + FfxInt32 opticalFlowHalfResMode; + FfxInt32 NumInstances; + + FfxInt32x2 interpolationRectBase; + FfxInt32x2 interpolationRectSize; + + FfxFloat32x3 debugBarColor; + FfxUInt32 backBufferTransferFunction; + + FfxFloat32x2 minMaxLuminance; + FfxFloat32 fTanHalfFOV; + FfxInt32 _pad1; + + FfxFloat32x2 fJitter; + FfxFloat32x2 fMotionVectorScale; + } cbFI; + + FfxFloat32x2 Jitter() + { + return cbFI.fJitter; + } + + FfxInt32x2 InterpolationRectBase() + { + return cbFI.interpolationRectBase; + } + + FfxInt32x2 InterpolationRectSize() + { + return cbFI.interpolationRectSize; + } + + FfxFloat32x2 MotionVectorScale() + { + return cbFI.fMotionVectorScale; + } + + FfxInt32x2 RenderSize() + { + return cbFI.renderSize; + } + + FfxInt32x2 DisplaySize() + { + return cbFI.displaySize; + } + + FfxBoolean Reset() + { + return cbFI.reset == 1; + } + + FfxFloat32x4 DeviceToViewSpaceTransformFactors() + { + return cbFI.fDeviceToViewDepth; + } + + FfxInt32x2 GetOpticalFlowSize() + { + FfxInt32x2 iOpticalFlowSize = FfxInt32x2((1.0 / cbFI.opticalFlowScale) / FfxFloat32x2(cbFI.opticalFlowBlockSize.xx)); + + return iOpticalFlowSize; + } + + FfxInt32x2 GetOpticalFlowSize2() + { + return GetOpticalFlowSize() * 1; + } + + FfxFloat32x2 GetOpticalFlowScale() + { + return cbFI.opticalFlowScale; + } + + FfxInt32 GetOpticalFlowBlockSize() + { + return cbFI.opticalFlowBlockSize; + } + + FfxInt32 GetHUDLessAttachedFactor() + { + return cbFI.HUDLessAttachedFactor; + } + + FfxInt32x2 GetDistortionFieldSize() + { + return cbFI.distortionFieldSize; + } + + FfxUInt32 GetDispatchFlags() + { + return cbFI.dispatchFlags; + } + + FfxInt32x2 GetMaxRenderSize() + { + return cbFI.maxRenderSize; + } + + FfxInt32 GetOpticalFlowHalfResMode() + { + return cbFI.opticalFlowHalfResMode; + } + + FfxFloat32x3 GetDebugBarColor() + { + return cbFI.debugBarColor; + } + + FfxFloat32 TanHalfFoV() + { + return cbFI.fTanHalfFOV; + } + + FfxUInt32 BackBufferTransferFunction() + { + return cbFI.backBufferTransferFunction; + } + + FfxFloat32 MinLuminance() + { + return cbFI.minMaxLuminance[0]; + } + + FfxFloat32 MaxLuminance() + { + return cbFI.minMaxLuminance[1]; + } + +#endif // defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID, std140) uniform cbInpaintingPyramid_t + { + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + } cbInpaintingPyramid; + + FfxUInt32 NumMips() + { + return cbInpaintingPyramid.mips; + } + FfxUInt32 NumWorkGroups() + { + return cbInpaintingPyramid.numWorkGroups; + } + FfxUInt32x2 WorkGroupOffset() + { + return cbInpaintingPyramid.workGroupOffset; + } + +#endif // defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + + + /////////////////////////////////////////////// + // declare samplers +/////////////////////////////////////////////// + + +layout (set = 0, binding = 1000) uniform sampler s_LinearClamp; + + /////////////////////////////////////////////// + // declare SRVs and SRV accessors +/////////////////////////////////////////////// + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE) uniform texture2D r_previous_interpolation_source; + + FfxFloat32x3 LoadPreviousBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_previous_interpolation_source, iPxPos, 0).rgb; + } + FfxFloat32x3 SamplePreviousBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_previous_interpolation_source, s_LinearClamp), fUv, 0.0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE) uniform texture2D r_current_interpolation_source; + + FfxFloat32x3 LoadCurrentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_current_interpolation_source, iPxPos, 0).rgb; + } + FfxFloat32x3 SampleCurrentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_current_interpolation_source, s_LinearClamp), fUv, 0.0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS) uniform texture2D r_dilated_motion_vectors; + + FfxFloat32x2 LoadDilatedMotionVector(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_dilated_motion_vectors, iPxPos, 0).xy; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH) uniform texture2D r_dilated_depth; + + FfxFloat32 LoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_dilated_depth, iPxPos, 0).x; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME) uniform utexture2D r_reconstructed_depth_previous_frame; + + FfxFloat32 LoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return ffxAsFloat(texelFetch(r_reconstructed_depth_previous_frame, iPxInput, 0).x); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME) uniform utexture2D r_reconstructed_depth_interpolated_frame; + + FfxFloat32 LoadEstimatedInterpolationFrameDepth(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return ffxAsFloat(texelFetch(r_reconstructed_depth_interpolated_frame, iPxInput, 0).x); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK) uniform texture2D r_disocclusion_mask; + + FfxFloat32x4 LoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_disocclusion_mask, iPxPos, 0); + } + FfxFloat32x4 SampleDisocclusionMask(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_disocclusion_mask, s_LinearClamp), fUv, 0); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) uniform utexture2D r_game_motion_vector_field_x; + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) uniform utexture2D r_game_motion_vector_field_y; + + FfxUInt32x2 LoadGameFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = texelFetch(r_game_motion_vector_field_x, iPxSample, 0).x; + FfxUInt32 packedY = texelFetch(r_game_motion_vector_field_y, iPxSample, 0).x; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) uniform utexture2D r_optical_flow_motion_vector_field_x; + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) uniform utexture2D r_optical_flow_motion_vector_field_y; + + FfxUInt32x2 LoadOpticalFlowFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = texelFetch(r_optical_flow_motion_vector_field_x, iPxSample, 0).x; + FfxUInt32 packedY = texelFetch(r_optical_flow_motion_vector_field_y, iPxSample, 0).x; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW) uniform itexture2D r_optical_flow; + + #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + FfxFloat32x2 LoadOpticalFlow(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow, iPxPos, 0).xy * GetOpticalFlowScale(); + } + #endif +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED) uniform texture2D r_optical_flow_upsampled; + + FfxFloat32x2 LoadOpticalFlowUpsampled(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_upsampled, iPxPos, 0).xy; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE) uniform utexture2D r_optical_flow_confidence; + + FfxFloat32 LoadOpticalFlowConfidence(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_confidence, iPxPos, 0).y; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION) uniform utexture2D r_optical_flow_global_motion; + + FfxUInt32 LoadOpticalFlowGlobalMotion(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_global_motion, iPxPos, 0).x; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION) uniform utexture2D r_optical_flow_scd; + + FfxUInt32 LoadOpticalFlowSceneChangeDetection(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_scd, iPxPos, 0).x; + } + + FfxBoolean HasSceneChanged() + { + #define SCD_OUTPUT_HISTORY_BITS_SLOT 1 + //if (FrameIndex() <= 5) // threshold according to original OpenCL code + //{ + // return 1.0; + //} + //else + { + // Report that the scene is changed if the change was detected in any of the + // 4 previous frames (0xfu - covers 4 history bits). + return ((texelFetch(r_optical_flow_scd, FfxInt32x2(SCD_OUTPUT_HISTORY_BITS_SLOT, 0), 0).x) & 0xfu) != 0; + } + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG) uniform texture2D r_optical_flow_debug; + + FfxFloat32x4 LoadOpticalFlowDebug(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return texelFetch(r_optical_flow_debug, iPxPos, 0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT) uniform texture2D r_output; + + FfxFloat32x4 LoadFrameInterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return texelFetch(r_output, iPxInput, 0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID) uniform texture2D r_inpainting_pyramid; + + FfxFloat32x4 LoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32 mipLevel, FFX_PARAMETER_IN FfxUInt32x2 iPxInput) + { + return texelFetch(r_inpainting_pyramid, FfxInt32x2(iPxInput), mipLevel); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER) uniform texture2D r_present_backbuffer; + + FfxFloat32x4 LoadPresentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return texelFetch(r_present_backbuffer, iPxInput, 0); + } + FfxFloat32x4 SamplePresentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_present_backbuffer, s_LinearClamp), fUv, 0.0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS) readonly buffer FrameInterpolationCounters_t + { + FfxUInt32 data[]; + } r_counters; + + FfxUInt32 LoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return r_counters.data[iPxPos]; + } + + FfxUInt32 FrameIndexSinceLastReset() + { + return LoadCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET); + } +#endif + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH) uniform texture2D r_input_depth; + + FfxFloat32 LoadInputDepth(FfxInt32x2 iPxPos) + { + return texelFetch(r_input_depth, iPxPos, 0).x; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS) + layout (set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS) uniform texture2D r_input_motion_vectors; + + FfxFloat32x2 LoadInputMotionVector(FfxInt32x2 iPxDilatedMotionVectorPos) + { + FfxFloat32x2 fSrcMotionVector = texelFetch(r_input_motion_vectors, iPxDilatedMotionVectorPos, 0).xy; + + FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale(); + + #if FFX_FRAMEINTERPOLATION_OPTION_JITTERED_MOTION_VECTORS + fUvMotionVector -= MotionVectorJitterCancellation(); + #endif + + return fUvMotionVector; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD) + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD) uniform texture2D r_input_distortion_field; + FfxFloat32x2 SampleDistortionField(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return textureLod(sampler2D(r_input_distortion_field, s_LinearClamp), fUv, 0.0).xy; + } +#endif + +/////////////////////////////////////////////// +// declare UAVs and UAV accessors +/////////////////////////////////////////////// +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT /* app controlled format */) uniform image2D rw_output; + + FfxFloat32x4 RWLoadFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_output, iPxPos); + } + + void StoreFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 val) + { + imageStore(rw_output, iPxPos, val); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS, rg16f) uniform image2D rw_dilated_motion_vectors; + + FfxFloat32x2 RWLoadDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_dilated_motion_vectors, iPxPos).xy; + } + + void StoreDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + imageStore(rw_dilated_motion_vectors, iPxPos, FfxFloat32x4(val, 0.0, 0.0)); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH, r32f) uniform image2D rw_dilated_depth; + + FfxFloat32 RWLoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_dilated_depth, iPxPos).x; + } + + void StoreDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 val) + { + imageStore(rw_dilated_depth, iPxPos, FfxFloat32x4(val, 0.0, 0.0, 0.0)); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME, r32ui) uniform uimage2D rw_reconstructed_depth_previous_frame; + + FfxFloat32 RWLoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(imageLoad(rw_reconstructed_depth_previous_frame, iPxPos).x); + } + + void UpdateReconstructedDepthPreviousFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + imageAtomicMax(rw_reconstructed_depth_previous_frame, iPxSample, uDepth); +#else + imageAtomicMin(rw_reconstructed_depth_previous_frame, iPxSample, uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME, r32ui) uniform uimage2D rw_reconstructed_depth_interpolated_frame; + + FfxFloat32 RWLoadReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(imageLoad(rw_reconstructed_depth_interpolated_frame, iPxPos).x); + } + + void StoreReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 value) + { + FfxUInt32 uDepth = ffxAsUInt32(value); + imageStore(rw_reconstructed_depth_interpolated_frame, iPxPos, FfxUInt32x4(uDepth, 0, 0, 0)); + } + + void UpdateReconstructedDepthInterpolatedFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + imageAtomicMax(rw_reconstructed_depth_interpolated_frame, iPxSample, uDepth); +#else + imageAtomicMin(rw_reconstructed_depth_interpolated_frame, iPxSample, uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK, rg8) uniform image2D rw_disocclusion_mask; + + FfxFloat32x2 RWLoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_disocclusion_mask, iPxPos).xy; + } + + void StoreDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + imageStore(rw_disocclusion_mask, iPxPos, FfxFloat32x4(val, 0.0, 0.0)); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y) + + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X, r32ui) uniform uimage2D rw_game_motion_vector_field_x; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y, r32ui) uniform uimage2D rw_game_motion_vector_field_y; + + FfxUInt32 RWLoadGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_game_motion_vector_field_x, iPxPos).x; + } + + void StoreGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_game_motion_vector_field_x, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + + FfxUInt32 RWLoadGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_game_motion_vector_field_y, iPxPos).x; + } + + void StoreGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_game_motion_vector_field_y, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + + void UpdateGameMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + imageAtomicMax(rw_game_motion_vector_field_x, iPxPos, packedVector.x); + imageAtomicMax(rw_game_motion_vector_field_y, iPxPos, packedVector.y); + } + + FfxUInt32 UpdateGameMotionVectorFieldEx(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + FfxUInt32 uPreviousValueX = imageAtomicMax(rw_game_motion_vector_field_x, iPxPos, packedVector.x); + FfxUInt32 uPreviousValueY = imageAtomicMax(rw_game_motion_vector_field_y, iPxPos, packedVector.y); + + const FfxUInt32 uExistingVectorFieldEntry = ffxMax(uPreviousValueX, uPreviousValueY); + + return uExistingVectorFieldEntry; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X, r32ui) uniform uimage2D rw_optical_flow_motion_vector_field_x; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y, r32ui) uniform uimage2D rw_optical_flow_motion_vector_field_y; + + FfxUInt32 RWLoadOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_optical_flow_motion_vector_field_x, iPxPos).x; + } + void StoreOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_optical_flow_motion_vector_field_x, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + FfxUInt32 RWLoadOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return imageLoad(rw_optical_flow_motion_vector_field_y, iPxPos).x; + } + void StoreOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + imageStore(rw_optical_flow_motion_vector_field_y, iPxPos, FfxUInt32x4(val, 0, 0, 0)); + } + void UpdateOpticalflowMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + imageAtomicMax(rw_optical_flow_motion_vector_field_x, iPxPos, packedVector.x); + imageAtomicMax(rw_optical_flow_motion_vector_field_y, iPxPos, packedVector.y); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS) coherent buffer FrameInterpolationRWCounters_t + { + FfxUInt32 data[]; + } rw_counters; + + FfxUInt32 RWLoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return rw_counters.data[iPxPos]; + } + + void StoreCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_IN FfxUInt32 counter) + { + rw_counters.data[iPxPos] = counter; + } + void AtomicIncreaseCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_OUT FfxUInt32 oldVal) + { + oldVal = atomicAdd(rw_counters.data[iPxPos], 1); + } +#endif + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12) + + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0, rgba16f) uniform image2D rw_inpainting_pyramid0; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1, rgba16f) uniform image2D rw_inpainting_pyramid1; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2, rgba16f) uniform image2D rw_inpainting_pyramid2; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3, rgba16f) uniform image2D rw_inpainting_pyramid3; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4, rgba16f) uniform image2D rw_inpainting_pyramid4; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5, rgba16f) coherent uniform image2D rw_inpainting_pyramid5; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6, rgba16f) uniform image2D rw_inpainting_pyramid6; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7, rgba16f) uniform image2D rw_inpainting_pyramid7; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8, rgba16f) uniform image2D rw_inpainting_pyramid8; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9, rgba16f) uniform image2D rw_inpainting_pyramid9; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10, rgba16f) uniform image2D rw_inpainting_pyramid10; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11, rgba16f) uniform image2D rw_inpainting_pyramid11; + layout(set = 0, binding = FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12, rgba16f) uniform image2D rw_inpainting_pyramid12; + + + FfxFloat32x4 RWLoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 index) + { + #define LOAD(idx) \ + if (index == idx) \ + { \ + return imageLoad(rw_inpainting_pyramid##idx, iPxPos); \ + } + LOAD(0); + LOAD(1); + LOAD(2); + LOAD(3); + LOAD(4); + LOAD(5); + LOAD(6); + LOAD(7); + LOAD(8); + LOAD(9); + LOAD(10); + LOAD(11); + LOAD(12); + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + + #undef LOAD + } + + void StoreInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 outValue, FFX_PARAMETER_IN FfxUInt32 index) + { + #define STORE(idx) \ + if (index == idx) \ + { \ + imageStore(rw_inpainting_pyramid##idx, iPxPos, outValue); \ + } + + STORE(0); + STORE(1); + STORE(2); + STORE(3); + STORE(4); + STORE(5); + STORE(6); + STORE(7); + STORE(8); + STORE(9); + STORE(10); + STORE(11); + STORE(12); + + #undef STORE + } +#endif diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h new file mode 100644 index 000000000..a58743d2f --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_callbacks_hlsl.h @@ -0,0 +1,814 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "ffx_frameinterpolation_resources.h" + +#if defined(FFX_GPU) +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic push +#pragma dxc diagnostic ignored "-Wambig-lit-shift" +#endif //__hlsl_dx_compiler +#include "ffx_core.h" +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic pop +#endif //__hlsl_dx_compiler +#endif // #if defined(FFX_GPU) + +#if defined(FFX_GPU) + +#define COUNTER_SPD 0 +#define COUNTER_FRAME_INDEX_SINCE_LAST_RESET 1 + + /////////////////////////////////////////////// + // declare CBs and CB accessors +/////////////////////////////////////////////// +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + cbuffer cbFI : FFX_DECLARE_CB(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + { + FfxInt32x2 renderSize; + FfxInt32x2 displaySize; + + FfxFloat32x2 displaySizeRcp; + FfxFloat32 cameraNear; + FfxFloat32 cameraFar; + + FfxInt32x2 upscalerTargetSize; + FfxInt32 Mode; + FfxInt32 reset; + + FfxFloat32x4 fDeviceToViewDepth; + + FfxFloat32 deltaTime; + FfxInt32 HUDLessAttachedFactor; + FfxInt32x2 distortionFieldSize; + + FfxFloat32x2 opticalFlowScale; + FfxInt32 opticalFlowBlockSize; + FfxUInt32 dispatchFlags; + + FfxInt32x2 maxRenderSize; + FfxInt32 opticalFlowHalfResMode; + FfxInt32 NumInstances; + + FfxInt32x2 interpolationRectBase; + FfxInt32x2 interpolationRectSize; + + FfxFloat32x3 debugBarColor; + FfxUInt32 backBufferTransferFunction; + + FfxFloat32x2 minMaxLuminance; + FfxFloat32 fTanHalfFOV; + FfxInt32 _pad1; + + FfxFloat32x2 fJitter; + FfxFloat32x2 fMotionVectorScale; + } + + const FfxFloat32x2 Jitter() + { + return fJitter; + } + + const FfxFloat32x2 MotionVectorScale() + { + return fMotionVectorScale; + } + + const FfxInt32x2 InterpolationRectBase() + { + return interpolationRectBase; + } + + const FfxInt32x2 InterpolationRectSize() + { + return interpolationRectSize; + } + + const FfxInt32x2 RenderSize() + { + return renderSize; + } + + const FfxInt32x2 DisplaySize() + { + return displaySize; + } + + const FfxBoolean Reset() + { + return reset == 1; + } + + FfxFloat32x4 DeviceToViewSpaceTransformFactors() + { + return fDeviceToViewDepth; + } + + FfxInt32x2 GetOpticalFlowSize() + { + FfxInt32x2 iOpticalFlowSize = (1.0f / opticalFlowScale) / FfxFloat32x2(opticalFlowBlockSize.xx); + + return iOpticalFlowSize; + } + + FfxInt32x2 GetOpticalFlowSize2() + { + return GetOpticalFlowSize() * 1; + } + + FfxFloat32x2 GetOpticalFlowScale() + { + return opticalFlowScale; + } + + FfxInt32 GetOpticalFlowBlockSize() + { + return opticalFlowBlockSize; + } + + FfxInt32 GetHUDLessAttachedFactor() + { + return HUDLessAttachedFactor; + } + + FfxInt32x2 GetDistortionFieldSize() + { + return distortionFieldSize; + } + + FfxUInt32 GetDispatchFlags() + { + return dispatchFlags; + } + + FfxInt32x2 GetMaxRenderSize() + { + return maxRenderSize; + } + + FfxInt32 GetOpticalFlowHalfResMode() + { + return opticalFlowHalfResMode; + } + + FfxFloat32x3 GetDebugBarColor() + { + return debugBarColor; + } + + FfxFloat32 TanHalfFoV() + { + return fTanHalfFOV; + } + + FfxUInt32 BackBufferTransferFunction() + { + return backBufferTransferFunction; + } + + FfxFloat32 MinLuminance() + { + return minMaxLuminance[0]; + } + + FfxFloat32 MaxLuminance() + { + return minMaxLuminance[1]; + } + +#endif // #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + cbuffer cbInpaintingPyramid : FFX_DECLARE_CB(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + { + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + } + + FfxUInt32 NumMips() + { + return mips; + } + FfxUInt32 NumWorkGroups() + { + return numWorkGroups; + } + FfxUInt32x2 WorkGroupOffset() + { + return workGroupOffset; + } +#endif // #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID) + +#define FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(p) FFX_FRAMEINTERPOLATION_ROOTSIG_STR(p) +#define FFX_FRAMEINTERPOLATION_ROOTSIG_STR(p) #p +#define FFX_FRAMEINTERPOLATION_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "CBV(b0), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] + +#define FFX_FRAMEINTERPOLATION_INPAINTING_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_FRAMEINTERPOLATION_ROOTSIG_STRINGIFY(FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT) ")), " \ + "CBV(b0), " \ + "CBV(b1), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] + +#if defined(FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG) +#define FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG_CONTENT FFX_FRAMEINTERPOLATION_ROOTSIG +#define FFX_FRAMEINTERPOLATION_EMBED_INPAINTING_ROOTSIG_CONTENT FFX_FRAMEINTERPOLATION_INPAINTING_ROOTSIG +#else +#define FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG_CONTENT +#define FFX_FRAMEINTERPOLATION_EMBED_INPAINTING_ROOTSIG_CONTENT +#endif // #if FFX_FRAMEINTERPOLATION_EMBED_ROOTSIG + +/////////////////////////////////////////////// +// declare samplers +/////////////////////////////////////////////// + +SamplerState s_LinearClamp : register(s0); + +/////////////////////////////////////////////// +// declare SRVs and SRV accessors +/////////////////////////////////////////////// + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE + Texture2D r_previous_interpolation_source : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE); + + FfxFloat32x3 LoadPreviousBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_previous_interpolation_source[iPxPos].rgb; + } + FfxFloat32x3 SamplePreviousBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_previous_interpolation_source.SampleLevel(s_LinearClamp, fUv, 0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE + Texture2D r_current_interpolation_source : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE); + + FfxFloat32x3 LoadCurrentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_current_interpolation_source[iPxPos].rgb; + } + FfxFloat32x3 SampleCurrentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_current_interpolation_source.SampleLevel(s_LinearClamp, fUv, 0).xyz; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS + Texture2D r_dilated_motion_vectors : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS); + + FfxFloat32x2 LoadDilatedMotionVector(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_dilated_motion_vectors[iPxPos].xy; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH + Texture2D r_dilated_depth : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH); + + FfxFloat32 LoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_dilated_depth[iPxPos].x; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + Texture2D r_reconstructed_depth_previous_frame : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME); + + FfxFloat32 LoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return asfloat(r_reconstructed_depth_previous_frame[iPxInput]); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + Texture2D r_reconstructed_depth_interpolated_frame : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME); + + FfxFloat32 LoadEstimatedInterpolationFrameDepth(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return asfloat(r_reconstructed_depth_interpolated_frame[iPxInput]); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK + Texture2D r_disocclusion_mask : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK); + + FfxFloat32x4 LoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_disocclusion_mask[iPxPos]; + } + FfxFloat32x4 SampleDisocclusionMask(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_disocclusion_mask.SampleLevel(s_LinearClamp, fUv, 0); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) + Texture2D r_game_motion_vector_field_x : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X); + Texture2D r_game_motion_vector_field_y : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y); + + FfxUInt32x2 LoadGameFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = r_game_motion_vector_field_x[iPxSample]; + FfxUInt32 packedY = r_game_motion_vector_field_y[iPxSample]; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + Texture2D r_optical_flow_motion_vector_field_x : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X); + Texture2D r_optical_flow_motion_vector_field_y : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y); + + FfxUInt32x2 LoadOpticalFlowFieldMv(FFX_PARAMETER_IN FfxInt32x2 iPxSample) + { + FfxUInt32 packedX = r_optical_flow_motion_vector_field_x[iPxSample]; + FfxUInt32 packedY = r_optical_flow_motion_vector_field_y[iPxSample]; + + return FfxUInt32x2(packedX, packedY); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW + Texture2D r_optical_flow : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW); + + #if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) + FfxFloat32x2 LoadOpticalFlow(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow[iPxPos] * GetOpticalFlowScale(); + } + #endif +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED + Texture2D r_optical_flow_upsampled : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_UPSAMPLED); + + FfxFloat32x2 LoadOpticalFlowUpsampled(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_upsampled[iPxPos]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE + Texture2D r_optical_flow_confidence : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE); + + FfxFloat32 LoadOpticalFlowConfidence(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_confidence[iPxPos].y; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION + Texture2D r_optical_flow_global_motion : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION); + + FfxUInt32 LoadOpticalFlowGlobalMotion(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_global_motion[iPxPos]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION + Texture2D r_optical_flow_scd : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION); + + FfxUInt32 LoadOpticalFlowSceneChangeDetection(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_scd[iPxPos]; + } + + FfxBoolean HasSceneChanged() + { + #define SCD_OUTPUT_HISTORY_BITS_SLOT 1 + //if (FrameIndex() <= 5) // threshold according to original OpenCL code + //{ + // return 1.0; + //} + //else + { + // Report that the scene is changed if the change was detected in any of the + // 4 previous frames (0xfu - covers 4 history bits). + return (r_optical_flow_scd[FfxInt32x2(SCD_OUTPUT_HISTORY_BITS_SLOT, 0)] & 0xfu) != 0; + } + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG + Texture2D r_optical_flow_debug : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_DEBUG); + + FfxFloat32x4 LoadOpticalFlowDebug(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return r_optical_flow_debug[iPxPos]; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_MASK) && defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT) + Texture2D r_output : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT); + Texture2D r_inpainting_mask : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_MASK); + + FfxFloat32x4 LoadFrameInterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return FfxFloat32x4(r_output[iPxInput], r_inpainting_mask[iPxInput]); + } +#elif defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT) + Texture2D r_output : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT); + FfxFloat32x4 LoadFrameInterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return r_output[iPxInput]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID + Texture2D r_inpainting_pyramid : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID); + + FfxFloat32x4 LoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32 mipLevel, FFX_PARAMETER_IN FfxUInt32x2 iPxInput) + { + return r_inpainting_pyramid.mips[mipLevel][iPxInput]; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER + Texture2D r_present_backbuffer : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER); + + FfxFloat32x4 LoadPresentBackbuffer(FFX_PARAMETER_IN FfxInt32x2 iPxInput) + { + return r_present_backbuffer[iPxInput]; + } + FfxFloat32x4 SamplePresentBackbuffer(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_present_backbuffer.SampleLevel(s_LinearClamp, fUv, 0); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS + StructuredBuffer r_counters : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS); + + FfxUInt32 LoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return r_counters[iPxPos]; + } + + const FfxUInt32 FrameIndexSinceLastReset() + { + return LoadCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET); + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH) +Texture2D r_input_depth : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH); +FfxFloat32 LoadInputDepth(FfxInt32x2 iPxPos) +{ + return r_input_depth[iPxPos]; +} +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS) +Texture2D r_input_motion_vectors : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS); +FfxFloat32x2 LoadInputMotionVector(FfxInt32x2 iPxDilatedMotionVectorPos) +{ + FfxFloat32x2 fSrcMotionVector = r_input_motion_vectors[iPxDilatedMotionVectorPos].xy; + + FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale(); + +#if FFX_FRAMEINTERPOLATION_OPTION_JITTERED_MOTION_VECTORS + fUvMotionVector -= MotionVectorJitterCancellation(); +#endif + + return fUvMotionVector; +} +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD) + Texture2D r_input_distortion_field : FFX_DECLARE_SRV(FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD); + FfxFloat32x2 SampleDistortionField(FFX_PARAMETER_IN FfxFloat32x2 fUv) + { + return r_input_distortion_field.SampleLevel(s_LinearClamp, fUv, 0); + } +#endif + +/////////////////////////////////////////////// +// declare UAVs and UAV accessors +/////////////////////////////////////////////// +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_MASK) && defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT) + RWTexture2D rw_output : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT); + RWTexture2D rw_inpainting_mask : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_MASK); + + FfxFloat32x4 RWLoadFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return FfxFloat32x4(rw_output[iPxPos], rw_inpainting_mask[iPxPos]); + } + + void StoreFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 val) + { + rw_output[iPxPos] = val.rgb; + rw_inpainting_mask[iPxPos] = val.a; + } + +#elif defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT) + RWTexture2D rw_output : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT); + + FfxFloat32x4 RWLoadFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_output[iPxPos]; + } + + void StoreFrameinterpolationOutput(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 val) + { + rw_output[iPxPos] = val; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS + RWTexture2D rw_dilated_motion_vectors : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS); + + FfxFloat32x2 RWLoadDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_dilated_motion_vectors[iPxPos]; + } + + void StoreDilatedMotionVectors(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + rw_dilated_motion_vectors[iPxPos] = val; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH + RWTexture2D rw_dilated_depth : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH); + + FfxFloat32 RWLoadDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_dilated_depth[iPxPos]; + } + + void StoreDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 val) + { + rw_dilated_depth[iPxPos] = val; + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME + RWTexture2D rw_reconstructed_depth_previous_frame : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME); + + FfxFloat32 RWLoadReconstructedDepthPreviousFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(rw_reconstructed_depth_previous_frame[iPxPos]); + } + + void UpdateReconstructedDepthPreviousFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + InterlockedMax(rw_reconstructed_depth_previous_frame[iPxSample], uDepth); +#else + InterlockedMin(rw_reconstructed_depth_previous_frame[iPxSample], uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME + RWTexture2D rw_reconstructed_depth_interpolated_frame : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME); + + FfxFloat32 RWLoadReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return ffxAsFloat(rw_reconstructed_depth_interpolated_frame[iPxPos]); + } + + void StoreReconstructedDepthInterpolatedFrame(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 value) + { + FfxUInt32 uDepth = ffxAsUInt32(value); + rw_reconstructed_depth_interpolated_frame[iPxPos] = uDepth; + } + + void UpdateReconstructedDepthInterpolatedFrame(FfxInt32x2 iPxSample, FfxFloat32 fDepth) + { + FfxUInt32 uDepth = ffxAsUInt32(fDepth); + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + InterlockedMax(rw_reconstructed_depth_interpolated_frame[iPxSample], uDepth); +#else + InterlockedMin(rw_reconstructed_depth_interpolated_frame[iPxSample], uDepth); // min for standard, max for inverted depth +#endif + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK + RWTexture2D rw_disocclusion_mask : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK); + + FfxFloat32x2 RWLoadDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_disocclusion_mask[iPxPos]; + } + + void StoreDisocclusionMask(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 val) + { + rw_disocclusion_mask[iPxPos] = val; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y) + + RWTexture2D rw_game_motion_vector_field_x : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X); + RWTexture2D rw_game_motion_vector_field_y : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y); + + FfxUInt32 RWLoadGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_game_motion_vector_field_x[iPxPos]; + } + + void StoreGameMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_game_motion_vector_field_x[iPxPos] = val; + } + + FfxUInt32 RWLoadGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_game_motion_vector_field_y[iPxPos]; + } + + void StoreGameMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_game_motion_vector_field_y[iPxPos] = val; + } + + void UpdateGameMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + InterlockedMax(rw_game_motion_vector_field_x[iPxPos], packedVector.x); + InterlockedMax(rw_game_motion_vector_field_y[iPxPos], packedVector.y); + } + + FfxUInt32 UpdateGameMotionVectorFieldEx(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + FfxUInt32 uPreviousValueX = 0; + FfxUInt32 uPreviousValueY = 0; + InterlockedMax(rw_game_motion_vector_field_x[iPxPos], packedVector.x, uPreviousValueX); + InterlockedMax(rw_game_motion_vector_field_y[iPxPos], packedVector.y, uPreviousValueY); + + const FfxUInt32 uExistingVectorFieldEntry = ffxMax(uPreviousValueX, uPreviousValueY); + + return uExistingVectorFieldEntry; + } +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) + + RWTexture2D rw_optical_flow_motion_vector_field_x : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X); + RWTexture2D rw_optical_flow_motion_vector_field_y : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y); + + FfxUInt32 RWLoadOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_optical_flow_motion_vector_field_x[iPxPos]; + } + void StoreOpticalflowMotionVectorFieldX(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_optical_flow_motion_vector_field_x[iPxPos] = val; + } + FfxUInt32 RWLoadOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos) + { + return rw_optical_flow_motion_vector_field_y[iPxPos]; + } + void StoreOpticalflowMotionVectorFieldY(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 val) + { + rw_optical_flow_motion_vector_field_y[iPxPos] = val; + } + void UpdateOpticalflowMotionVectorField(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32x2 packedVector) + { + InterlockedMax(rw_optical_flow_motion_vector_field_x[iPxPos], packedVector.x); + InterlockedMax(rw_optical_flow_motion_vector_field_y[iPxPos], packedVector.y); + } +#endif + +#ifdef FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS + globallycoherent RWStructuredBuffer rw_counters : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS); + + FfxUInt32 RWLoadCounter(FFX_PARAMETER_IN FfxInt32 iPxPos) + { + return rw_counters[iPxPos]; + } + + void StoreCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_IN FfxUInt32 counter) + { + rw_counters[iPxPos] = counter; + } + void AtomicIncreaseCounter(FFX_PARAMETER_IN FfxInt32 iPxPos, FFX_PARAMETER_OUT FfxUInt32 oldVal) + { + InterlockedAdd(rw_counters[iPxPos], 1, oldVal); + } +#endif + + +#if defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12) + + RWTexture2D rw_inpainting_pyramid0 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0); + RWTexture2D rw_inpainting_pyramid1 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1); + RWTexture2D rw_inpainting_pyramid2 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2); + RWTexture2D rw_inpainting_pyramid3 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3); + RWTexture2D rw_inpainting_pyramid4 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4); + globallycoherent RWTexture2D rw_inpainting_pyramid5 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5); + RWTexture2D rw_inpainting_pyramid6 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6); + RWTexture2D rw_inpainting_pyramid7 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7); + RWTexture2D rw_inpainting_pyramid8 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8); + RWTexture2D rw_inpainting_pyramid9 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9); + RWTexture2D rw_inpainting_pyramid10 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10); + RWTexture2D rw_inpainting_pyramid11 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11); + RWTexture2D rw_inpainting_pyramid12 : FFX_DECLARE_UAV(FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12); + + + FfxFloat32x4 RWLoadInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 index) + { + #define LOAD(idx) \ + if (index == idx) \ + { \ + return rw_inpainting_pyramid##idx[iPxPos]; \ + } + LOAD(0); + LOAD(1); + LOAD(2); + LOAD(3); + LOAD(4); + LOAD(5); + LOAD(6); + LOAD(7); + LOAD(8); + LOAD(9); + LOAD(10); + LOAD(11); + LOAD(12); + return 0; + + #undef LOAD + } + + void StoreInpaintingPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 outValue, FFX_PARAMETER_IN FfxUInt32 index) + { + #define STORE(idx) \ + if (index == idx) \ + { \ + rw_inpainting_pyramid##idx[iPxPos] = outValue; \ + } + + STORE(0); + STORE(1); + STORE(2); + STORE(3); + STORE(4); + STORE(5); + STORE(6); + STORE(7); + STORE(8); + STORE(9); + STORE(10); + STORE(11); + STORE(12); + + #undef STORE + } +#endif + +#endif // #if defined(FFX_GPU) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h new file mode 100644 index 000000000..8206bf43b --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_common.h @@ -0,0 +1,445 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if !defined(FFX_FRAMEINTERPOLATION_COMMON_H) +#define FFX_FRAMEINTERPOLATION_COMMON_H + +#define FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_TEAR_LINES (1 << 0) +#define FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_RESET_INDICATORS (1 << 1) +#define FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_VIEW (1 << 2) + +FFX_STATIC const FfxFloat32 FFX_FRAMEINTERPOLATION_EPSILON = 1e-03f; +FFX_STATIC const FfxFloat32 FFX_FRAMEINTERPOLATION_FLT_MAX = 3.402823466e+38f; +FFX_STATIC const FfxFloat32 FFX_FRAMEINTERPOLATION_FLT_MIN = 1.175494351e-38f; + +FFX_STATIC const FfxFloat32 fReconstructedDepthBilinearWeightThreshold = FFX_FRAMEINTERPOLATION_EPSILON; + +FfxFloat32 RGBToLuma(FfxFloat32x3 fLinearRgb) +{ + return dot(fLinearRgb, FfxFloat32x3(0.2126f, 0.7152f, 0.0722f)); +} + +FfxFloat32 LinearRec2020ToLuminance(FfxFloat32x3 linearRec2020RGB) +{ + FfxFloat32 fY = 0.2627 * linearRec2020RGB.x + 0.678 * linearRec2020RGB.y + 0.0593 * linearRec2020RGB.z; + return fY; +} + +FfxFloat32x3 ffxscRGBToLinear(FfxFloat32x3 value, FfxFloat32 minLuminance, FfxFloat32 maxLuminance) +{ + FfxFloat32x3 p = value - ffxBroadcast3(minLuminance / 80.0f); + return p / ffxBroadcast3((maxLuminance - minLuminance) / 80.0f); +} + +FfxFloat32x3 RawRGBToLinear(FfxFloat32x3 fRawRgb) +{ + FfxFloat32x3 fLinearRgb; + + switch (BackBufferTransferFunction()) + { + case 0: + fLinearRgb = ffxLinearFromSrgb(fRawRgb); + break; + case 1: + fLinearRgb = ffxLinearFromPQ(fRawRgb) * (10000.0f / MaxLuminance()); + break; + case 2: + fLinearRgb = ffxscRGBToLinear(fRawRgb, MinLuminance(), MaxLuminance()); + break; + } + + return fLinearRgb; +} + +FfxFloat32 RawRGBToLuminance(FfxFloat32x3 fRawRgb) +{ + FfxFloat32 fLuminance = 0.0f; + + switch (BackBufferTransferFunction()) + { + case 0: + fLuminance = RGBToLuma(RawRGBToLinear(fRawRgb)); + break; + case 1: + fLuminance = LinearRec2020ToLuminance(RawRGBToLinear(fRawRgb)); + break; + case 2: + fLuminance = RGBToLuma(RawRGBToLinear(fRawRgb)); + break; + } + + return fLuminance; +} + +FfxFloat32 RawRGBToPerceivedLuma(FfxFloat32x3 fRawRgb) +{ + FfxFloat32 fLuminance = RawRGBToLuminance(fRawRgb); + + FfxFloat32 fPercievedLuminance = 0; + if (fLuminance <= 216.0f / 24389.0f) + { + fPercievedLuminance = fLuminance * (24389.0f / 27.0f); + } + else + { + fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; + } + + return fPercievedLuminance * 0.01f; +} + +struct BilinearSamplingData +{ + FfxInt32x2 iOffsets[4]; + FfxFloat32 fWeights[4]; + FfxInt32x2 iBasePos; +}; + +BilinearSamplingData GetBilinearSamplingData(FfxFloat32x2 fUv, FfxInt32x2 iSize) +{ + BilinearSamplingData data; + + FfxFloat32x2 fPxSample = (fUv * iSize) - FfxFloat32x2(0.5f, 0.5f); + data.iBasePos = FfxInt32x2(floor(fPxSample)); + FfxFloat32x2 fPxFrac = ffxFract(fPxSample); + + data.iOffsets[0] = FfxInt32x2(0, 0); + data.iOffsets[1] = FfxInt32x2(1, 0); + data.iOffsets[2] = FfxInt32x2(0, 1); + data.iOffsets[3] = FfxInt32x2(1, 1); + + data.fWeights[0] = (1 - fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[1] = (fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[2] = (1 - fPxFrac.x) * (fPxFrac.y); + data.fWeights[3] = (fPxFrac.x) * (fPxFrac.y); + + return data; +} + +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) +FfxFloat32 ConvertFromDeviceDepthToViewSpace(FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 deviceToViewDepth = DeviceToViewSpaceTransformFactors(); + return deviceToViewDepth[1] / (fDeviceDepth - deviceToViewDepth[0]); +} + +FfxFloat32x2 ComputeNdc(FfxFloat32x2 fPxPos, FfxInt32x2 iSize) +{ + return fPxPos / FfxFloat32x2(iSize) * FfxFloat32x2(2.0f, -2.0f) + FfxFloat32x2(-1.0f, 1.0f); +} + +FfxFloat32x3 GetViewSpacePosition(FfxInt32x2 iViewportPos, FfxInt32x2 iViewportSize, FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 fDeviceToViewDepth = DeviceToViewSpaceTransformFactors(); + + const FfxFloat32 Z = ConvertFromDeviceDepthToViewSpace(fDeviceDepth); + + const FfxFloat32x2 fNdcPos = ComputeNdc(iViewportPos, iViewportSize); + const FfxFloat32 X = fDeviceToViewDepth[2] * fNdcPos.x * Z; + const FfxFloat32 Y = fDeviceToViewDepth[3] * fNdcPos.y * Z; + + return FfxFloat32x3(X, Y, Z); +} +#endif + +FfxBoolean IsOnScreen(FfxInt32x2 pos, FfxInt32x2 size) +{ + return all(FFX_LESS_THAN(FfxUInt32x2(pos), FfxUInt32x2(size))); +} + +FfxBoolean IsUvInside(FfxFloat32x2 fUv) +{ + return (fUv.x > 0.0f && fUv.x < 1.0f) && (fUv.y > 0.0f && fUv.y < 1.0f); +} + +FfxBoolean IsInRect(FfxInt32x2 pos, FfxInt32x2 iRectCorner, FfxInt32x2 iRectSize) +{ + return (pos.x >= iRectCorner.x && pos.x < (iRectSize.x + iRectCorner.x) && pos.y >= iRectCorner.y && pos.y < (iRectSize.y + iRectCorner.y)); +} + +FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1) +{ + const FfxFloat32 m = ffxMax(v0, v1); + return m != 0 ? ffxMin(v0, v1) / m : 0; +} + +FfxFloat32 NormalizedDot3(const FfxFloat32x3 v0, const FfxFloat32x3 v1) +{ + FfxFloat32 fMaxLength = ffxMax(length(v0), length(v1)); + + return fMaxLength > 0.0f ? dot(v0 / fMaxLength, v1 / fMaxLength) : 1.0f; +} + +FfxFloat32 NormalizedDot2(const FfxFloat32x2 v0, const FfxFloat32x2 v1) +{ + FfxFloat32 fMaxLength = ffxMax(length(v0), length(v1)); + + return fMaxLength > 0.0f ? dot(v0 / fMaxLength, v1 / fMaxLength) : 1.0f; +} + +FfxFloat32 CalculateStaticContentFactor(FfxFloat32x3 fCurrentInterpolationSource, FfxFloat32x3 fPresentColor) +{ + const FfxFloat32x3 fFactor = ffxSaturate(FfxFloat32x3( + ffxSaturate((1.0f - MinDividedByMax(fCurrentInterpolationSource.r, fPresentColor.r)) / 0.1f), + ffxSaturate((1.0f - MinDividedByMax(fCurrentInterpolationSource.g, fPresentColor.g)) / 0.1f), + ffxSaturate((1.0f - MinDividedByMax(fCurrentInterpolationSource.b, fPresentColor.b)) / 0.1f) + )); + + return max(fFactor.x, max(fFactor.y, fFactor.z)); +} + +// +// MOTION VECTOR FIELD +// + +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_ENTRY_BIT_COUNT = 32; + +// Make sure all bit counts add up to MOTION_VECTOR_FIELD_ENTRY_BIT_COUNT +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_VECTOR_COEFFICIENT_BIT_COUNT = 16; +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_PRIORITY_LOW_BIT_COUNT = 5; +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_PRIORITY_HIGH_BIT_COUNT = 10; +FFX_STATIC const FfxUInt32 MOTION_VECTOR_PRIMARY_VECTOR_INDICATION_BIT_COUNT = 1; + +FFX_STATIC const FfxUInt32 MOTION_VECTOR_FIELD_PRIMARY_VECTOR_INDICATION_BIT = (1U << (MOTION_VECTOR_FIELD_ENTRY_BIT_COUNT - 1)); + +FFX_STATIC const FfxUInt32 PRIORITY_LOW_MAX = (1U << MOTION_VECTOR_FIELD_PRIORITY_LOW_BIT_COUNT) - 1; +FFX_STATIC const FfxUInt32 PRIORITY_HIGH_MAX = (1U << MOTION_VECTOR_FIELD_PRIORITY_HIGH_BIT_COUNT) - 1; + +FFX_STATIC const FfxUInt32 PRIORITY_LOW_OFFSET = MOTION_VECTOR_FIELD_VECTOR_COEFFICIENT_BIT_COUNT; +FFX_STATIC const FfxUInt32 PRIORITY_HIGH_OFFSET = PRIORITY_LOW_OFFSET + MOTION_VECTOR_FIELD_PRIORITY_LOW_BIT_COUNT; +FFX_STATIC const FfxUInt32 PRIMARY_VECTOR_INDICATION_OFFSET = PRIORITY_HIGH_OFFSET + MOTION_VECTOR_FIELD_PRIORITY_HIGH_BIT_COUNT; + +struct VectorFieldEntry +{ + FfxFloat32x2 fMotionVector; + FfxFloat32 uHighPriorityFactor; + FfxFloat32 uLowPriorityFactor; + FfxBoolean bValid; + FfxBoolean bPrimary; + FfxBoolean bSecondary; + FfxBoolean bInPainted; + FfxFloat32 fVelocity; + FfxBoolean bNegOutside; + FfxBoolean bPosOutside; +}; + +VectorFieldEntry NewVectorFieldEntry() +{ + VectorFieldEntry vfe; + vfe.fMotionVector = FfxFloat32x2(0.0, 0.0); + vfe.uHighPriorityFactor = 0.0; + vfe.uLowPriorityFactor = 0.0; + vfe.bValid = false; + vfe.bPrimary = false; + vfe.bSecondary = false; + vfe.bInPainted = false; + vfe.fVelocity = 0.0; + vfe.bNegOutside = false; + vfe.bPosOutside = false; + return vfe; +} + +FfxBoolean PackedVectorFieldEntryIsPrimary(FfxUInt32 packedEntry) +{ + return ((packedEntry & MOTION_VECTOR_FIELD_PRIMARY_VECTOR_INDICATION_BIT) != 0); +} + +FfxUInt32x2 PackVectorFieldEntries(FfxBoolean bIsPrimary, FfxUInt32 uHighPriorityFactor, FfxUInt32 uLowPriorityFactor, FfxFloat32x2 fMotionVector) +{ + const FfxUInt32 uPriority = + (FfxUInt32(bIsPrimary) * MOTION_VECTOR_FIELD_PRIMARY_VECTOR_INDICATION_BIT) + | ((uHighPriorityFactor & PRIORITY_HIGH_MAX) << PRIORITY_HIGH_OFFSET) + | ((uLowPriorityFactor & PRIORITY_LOW_MAX) << PRIORITY_LOW_OFFSET); + + FfxUInt32 packedX = uPriority | ffxF32ToF16(fMotionVector.x); + FfxUInt32 packedY = uPriority | ffxF32ToF16(fMotionVector.y); + + return FfxUInt32x2(packedX, packedY); +} + +void UnpackVectorFieldEntries(FfxUInt32x2 packed, out VectorFieldEntry vfElement) +{ + vfElement.uHighPriorityFactor = FfxFloat32((packed.x >> PRIORITY_HIGH_OFFSET) & PRIORITY_HIGH_MAX) / PRIORITY_HIGH_MAX; + vfElement.uLowPriorityFactor = FfxFloat32((packed.x >> PRIORITY_LOW_OFFSET) & PRIORITY_LOW_MAX) / PRIORITY_LOW_MAX; + + vfElement.bPrimary = PackedVectorFieldEntryIsPrimary(packed.x); + vfElement.bValid = (vfElement.uHighPriorityFactor > 0.0f); + vfElement.bSecondary = vfElement.bValid && !vfElement.bPrimary; + + // Reverse priority factor for secondary vectors + if (vfElement.bSecondary) + { + vfElement.uHighPriorityFactor = 1.0f - vfElement.uHighPriorityFactor; + } + + vfElement.fMotionVector.x = ffxUnpackF32(packed.x).x; + vfElement.fMotionVector.y = ffxUnpackF32(packed.y).x; + vfElement.bInPainted = false; +} + +// +// MOTION VECTOR FIELD +// + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID) +FfxFloat32x4 ComputeMvInpaintingLevel(FfxFloat32x2 fUv, const FfxInt32 iMipLevel, const FfxInt32x2 iTexSize) +{ + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv, iTexSize); + + FfxFloat32 fSum = 0.0f; + FfxFloat32x4 fColor = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + fColor.z = 0; + + const FfxFloat32 fMaxPriorityFactor = 1.0f; + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, iTexSize)) + { + FfxFloat32x4 fSample = LoadInpaintingPyramid(iMipLevel, iSamplePos); + + const FfxFloat32 fPriorityFactor = fSample.z; + const FfxFloat32 fValidMvFactor = FfxFloat32(fSample.z > 0); + const FfxFloat32 fSampleWeight = bilinearInfo.fWeights[iSampleIndex] * fValidMvFactor * fPriorityFactor; + + fSum += fSampleWeight; + fColor += fSample * fSampleWeight; + } + } + + fColor /= (fSum > 0.0f) ? fSum : 1.0f; + + return fColor; +} +#if defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y) + +void LoadInpaintedGameFieldMv(FfxFloat32x2 fUv, out VectorFieldEntry vfElement) +{ + FfxInt32x2 iPxSample = FfxInt32x2(fUv * RenderSize()); + FfxUInt32x2 packedGameFieldMv = LoadGameFieldMv(iPxSample); + UnpackVectorFieldEntries(packedGameFieldMv, vfElement); + + if (!vfElement.bValid) + { + //FfxFloat32x2 fUv = (FfxFloat32x2(iPxSample) + 0.5f) / RenderSize(); + FfxInt32x2 iTexSize = RenderSize(); + + FfxFloat32x4 fInPaintedVector = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + for (FfxInt32 iMipLevel = 0; iMipLevel < 11 && (fInPaintedVector.w == 0.0f); iMipLevel++) + { + iTexSize /= 2; + + fInPaintedVector = ComputeMvInpaintingLevel(fUv, iMipLevel, iTexSize); + } + + vfElement.fMotionVector = fInPaintedVector.xy; + vfElement.uHighPriorityFactor = fInPaintedVector.z; + vfElement.uLowPriorityFactor = fInPaintedVector.w; + vfElement.bInPainted = true; + } + + vfElement.bNegOutside = !IsUvInside(fUv - vfElement.fMotionVector); + vfElement.bPosOutside = !IsUvInside(fUv + vfElement.fMotionVector); + vfElement.fVelocity = length(vfElement.fMotionVector); +} +#endif +#endif + +#if defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y) && \ + defined(FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION) +void SampleOpticalFlowMotionVectorField(FfxFloat32x2 fUv, out VectorFieldEntry vfElement) +{ + const FfxFloat32 scaleFactor = 1.0f; + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv, FfxInt32x2(GetOpticalFlowSize2() * scaleFactor)); + + vfElement = NewVectorFieldEntry(); + + FfxFloat32 fWeightSum = 0.0f; + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, FfxInt32x2(GetOpticalFlowSize2() * scaleFactor))) + { + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + VectorFieldEntry fOfVectorSample = NewVectorFieldEntry(); + FfxInt32x2 packedOpticalFlowMv = FfxInt32x2(LoadOpticalFlowFieldMv(iSamplePos)); + UnpackVectorFieldEntries(packedOpticalFlowMv, fOfVectorSample); + + vfElement.fMotionVector += fOfVectorSample.fMotionVector * fWeight; + vfElement.uHighPriorityFactor += fOfVectorSample.uHighPriorityFactor * fWeight; + vfElement.uLowPriorityFactor += fOfVectorSample.uLowPriorityFactor * fWeight; + + fWeightSum += fWeight; + } + } + + if (fWeightSum > 0.0f) + { + vfElement.fMotionVector /= fWeightSum; + vfElement.uHighPriorityFactor /= fWeightSum; + vfElement.uLowPriorityFactor /= fWeightSum; + } + + vfElement.bNegOutside = !IsUvInside(fUv - vfElement.fMotionVector); + vfElement.bPosOutside = !IsUvInside(fUv + vfElement.fMotionVector); + vfElement.fVelocity = length(vfElement.fMotionVector); +} +#endif + +FfxFloat32x3 Tonemap(FfxFloat32x3 fRgb) +{ + return fRgb / (ffxMax(ffxMax(0.f, fRgb.r), ffxMax(fRgb.g, fRgb.b)) + 1.f).xxx; +} + +FfxFloat32x3 InverseTonemap(FfxFloat32x3 fRgb) +{ + return fRgb / ffxMax(FFX_TONEMAP_EPSILON, 1.f - ffxMax(fRgb.r, ffxMax(fRgb.g, fRgb.b))).xxx; +} + +FfxInt32x2 ComputeHrPosFromLrPos(FfxInt32x2 iPxLrPos) +{ + FfxFloat32x2 fSrcJitteredPos = FfxFloat32x2(iPxLrPos) + 0.5f - Jitter(); + FfxFloat32x2 fLrPosInHr = (fSrcJitteredPos / RenderSize()) * DisplaySize(); + FfxInt32x2 iPxHrPos = FfxInt32x2(floor(fLrPosInHr)); + return iPxHrPos; +} +#if FFX_HALF +FFX_MIN16_I2 ComputeHrPosFromLrPos(FFX_MIN16_I2 iPxLrPos) +{ + FFX_MIN16_F2 fSrcJitteredPos = FFX_MIN16_F2(iPxLrPos) + FFX_MIN16_F(0.5f) - FFX_MIN16_F2(Jitter()); + FFX_MIN16_F2 fLrPosInHr = (fSrcJitteredPos / FFX_MIN16_F2(RenderSize())) * FFX_MIN16_F2(DisplaySize()); + FFX_MIN16_I2 iPxHrPos = FFX_MIN16_I2(floor(fLrPosInHr)); + return iPxHrPos; +} +#endif + +#endif //!defined(FFX_FRAMEINTERPOLATION_COMMON_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h new file mode 100644 index 000000000..75b3e1e2c --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h @@ -0,0 +1,121 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_COMPUTE_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_H +#define FFX_FRAMEINTERPOLATION_COMPUTE_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_H + +#include "ffx_frameinterpolation_common.h" +//-------------------------------------------------------------------------------------- +// Buffer definitions - global atomic counter +//-------------------------------------------------------------------------------------- + +FFX_GROUPSHARED FfxUInt32 spdCounter; +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FfxFloat32x4 SpdLoadSourceImage(FfxInt32x2 tex, FfxUInt32 slice) +{ + VectorFieldEntry gameMv; + FfxUInt32x2 packedGameFieldMv = LoadGameFieldMv(tex); + UnpackVectorFieldEntries(packedGameFieldMv, gameMv); + + return FfxFloat32x4(gameMv.fMotionVector, gameMv.uHighPriorityFactor, gameMv.uLowPriorityFactor) * FfxFloat32(DisplaySize().x > 0); +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return RWLoadInpaintingPyramid(tex, 5); +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + StoreInpaintingPyramid(pix, outValue, index); +} + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + AtomicIncreaseCounter(COUNTER_SPD, spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + StoreCounter(COUNTER_SPD, 0); +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} + +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + FfxFloat32x4 vec = FfxFloat32x4(0,0,0,0); + + FfxFloat32 fWeightSum = 0.0f; +#define ADD(SAMPLE) { \ + FfxFloat32 fWeight = FfxFloat32(SAMPLE.z > 0.0f); \ + vec += SAMPLE * fWeight; \ + fWeightSum += fWeight; \ + } + + ADD(v0); + ADD(v1); + ADD(v2); + ADD(v3); + + vec /= (fWeightSum > FFX_FRAMEINTERPOLATION_EPSILON) ? fWeightSum : 1.0f; + + return vec; +} + +#include "spd/ffx_spd.h" + +void computeFrameinterpolationGameVectorFieldInpaintingPyramid(FfxInt32x3 iGroupId, FfxInt32 iLocalIndex) +{ + SpdDownsample( + FfxUInt32x2(iGroupId.xy), + FfxUInt32(iLocalIndex), + FfxUInt32(NumMips()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(iGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +} + +#endif // FFX_FRAMEINTERPOLATION_COMPUTE_GAME_VECTOR_FIELD_INPAINTING_PYRAMID_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h new file mode 100644 index 000000000..da2b6728a --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h @@ -0,0 +1,120 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_COMPUTE_INPAINTING_PYRAMID_H +#define FFX_FRAMEINTERPOLATION_COMPUTE_INPAINTING_PYRAMID_H + +//-------------------------------------------------------------------------------------- +// Buffer definitions - global atomic counter +//-------------------------------------------------------------------------------------- + +FFX_GROUPSHARED FfxUInt32 spdCounter; +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FfxFloat32x4 SpdLoadSourceImage(FfxInt32x2 tex, FfxUInt32 slice) +{ + FfxFloat32x4 fColor = LoadFrameInterpolationOutput(tex) * FfxFloat32(DisplaySize().x > 0); + + // reverse sample weights + fColor.w = ffxSaturate(1.0f - fColor.w); + + + if (tex.x < InterpolationRectBase().x || tex.x >= (InterpolationRectSize().x + InterpolationRectBase().x) || tex.y < InterpolationRectBase().y || + tex.y >= (InterpolationRectSize().y + InterpolationRectBase().y)) + { + fColor.w = 0.0f; // don't take contributions from outside of the interpolation rect + } + + return fColor; +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return RWLoadInpaintingPyramid(tex, 5); +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + StoreInpaintingPyramid(pix, outValue, index); +} + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + AtomicIncreaseCounter(COUNTER_SPD, spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + StoreCounter(COUNTER_SPD, 0); +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} + +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + FfxFloat32x4 w = FfxFloat32x4(v0.w, v1.w, v2.w, v3.w); + + FfxFloat32 sum = (w[0] + w[1] + w[2] + w[3]); + + if (sum == 0.0f) { + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + } + + return (v0 * w[0] + v1 * w[1] + v2 * w[2] + v3 * w[3]) / sum; +} + +#include "spd/ffx_spd.h" + +void computeFrameinterpolationInpaintingPyramid(FfxInt32x3 iGroupId, FfxInt32 iLocalIndex) +{ + SpdDownsample( + FfxUInt32x2(iGroupId.xy), + FfxUInt32(iLocalIndex), + FfxUInt32(NumMips()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(iGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +} + +#endif // FFX_FRAMEINTERPOLATION_COMPUTE_INPAINTING_PYRAMID_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h new file mode 100644 index 000000000..bcd3a52a7 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_debug_view.h @@ -0,0 +1,172 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_DEBUG_VIEW_H +#define FFX_FRAMEINTERPOLATION_DEBUG_VIEW_H + +struct FfxFrameInterpolationDebugViewport +{ + FfxInt32x2 offset; + FfxInt32x2 size; +}; + +// Macro to cull and draw debug viewport +#define DRAW_VIEWPORT(function, pos, vp) \ + { \ + if (pointIsInsideViewport(pos, vp)) \ + { \ + function(pos, vp); \ + } \ + } + +FfxFloat32x2 getTransformedUv(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = (FfxFloat32x2(iPxPos - vp.offset) + 0.5f) / vp.size; + + return fUv; +} + +FfxFloat32x4 getMotionVectorColor(FfxFloat32x2 fMotionVector) +{ + return FfxFloat32x4(0.5f + fMotionVector * DisplaySize() * 0.1f, 0.5f, 1.0f); +} + +FfxFloat32x4 getUnusedIndicationColor(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxInt32x2 basePos = iPxPos - vp.offset; + + FfxFloat32 ar = FfxFloat32(vp.size.x) / FfxFloat32(vp.size.y); + + return FfxFloat32x4(basePos.x == FfxInt32(basePos.y * ar), 0, 0, 1); +} + +void drawGameMotionVectorFieldVectors(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fUv, gameMv); + + StoreFrameinterpolationOutput(iPxPos, getMotionVectorColor(gameMv.fMotionVector)); +} + +void drawGameMotionVectorFieldDepthPriority(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fUv, gameMv); + + StoreFrameinterpolationOutput(iPxPos, FfxFloat32x4(0, gameMv.uHighPriorityFactor, 0, 1)); +} + +void drawOpticalFlowMotionVectorField(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + VectorFieldEntry ofMv; + SampleOpticalFlowMotionVectorField(fUv, ofMv); + + StoreFrameinterpolationOutput(iPxPos, getMotionVectorColor(ofMv.fMotionVector)); +} + +void drawDisocclusionMask(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x2 fLrUv = fUv * (FfxFloat32x2(RenderSize()) / GetMaxRenderSize()); + + FfxFloat32x2 fDisocclusionFactor = ffxSaturate(SampleDisocclusionMask(fLrUv).xy); + + StoreFrameinterpolationOutput(iPxPos, FfxFloat32x4(fDisocclusionFactor, 0, 1)); +} + +FfxFloat32x4 getDistortionField(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x2 fDistortionFieldUv = abs(SampleDistortionField(fUv).xy); + + return FfxFloat32x4(fDistortionFieldUv * 10.0f, 0.0f, 1.0f); +} + +void drawPresentBackbuffer(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x4 fPresentColor = getDistortionField(iPxPos, vp); + + if (GetHUDLessAttachedFactor() == 1) + { + fPresentColor = SamplePresentBackbuffer(fUv); + } + + StoreFrameinterpolationOutput(iPxPos, fPresentColor); +} + +void drawCurrentInterpolationSource(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxFloat32x2 fUv = getTransformedUv(iPxPos, vp); + + FfxFloat32x4 fCurrentBackBuffer = FfxFloat32x4(SampleCurrentBackbuffer(fUv), 1.0f); + + StoreFrameinterpolationOutput(iPxPos, fCurrentBackBuffer); +} + +FfxBoolean pointIsInsideViewport(FfxInt32x2 iPxPos, FfxFrameInterpolationDebugViewport vp) +{ + FfxInt32x2 extent = vp.offset + vp.size; + + return (iPxPos.x >= vp.offset.x && iPxPos.x < extent.x) && (iPxPos.y >= vp.offset.y && iPxPos.y < extent.y); +} + +void computeDebugView(FfxInt32x2 iPxPos) +{ +#define VIEWPORT_GRID_SIZE_X 3 +#define VIEWPORT_GRID_SIZE_Y 3 + + FfxFloat32x2 fViewportScale = FfxFloat32x2(1.0f / VIEWPORT_GRID_SIZE_X, 1.0f / VIEWPORT_GRID_SIZE_Y); + FfxInt32x2 iViewportSize = FfxInt32x2(DisplaySize() * fViewportScale); + + // compute grid [y][x] for easier placement of viewports + FfxFrameInterpolationDebugViewport vp[VIEWPORT_GRID_SIZE_Y][VIEWPORT_GRID_SIZE_X]; + for (FfxInt32 y = 0; y < VIEWPORT_GRID_SIZE_Y; y++) + { + for (FfxInt32 x = 0; x < VIEWPORT_GRID_SIZE_X; x++) + { + vp[y][x].offset = iViewportSize * FfxInt32x2(x, y); + vp[y][x].size = iViewportSize; + } + } + + // top row + DRAW_VIEWPORT(drawGameMotionVectorFieldVectors, iPxPos, vp[0][0]); + DRAW_VIEWPORT(drawGameMotionVectorFieldDepthPriority, iPxPos, vp[0][1]); + DRAW_VIEWPORT(drawOpticalFlowMotionVectorField, iPxPos, vp[0][2]); + + // bottom row + DRAW_VIEWPORT(drawDisocclusionMask, iPxPos, vp[2][0]); + DRAW_VIEWPORT(drawCurrentInterpolationSource, iPxPos, vp[2][1]); + DRAW_VIEWPORT(drawPresentBackbuffer, iPxPos, vp[2][2]); +} + +#endif // FFX_FRAMEINTERPOLATION_DEBUG_VIEW_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h new file mode 100644 index 000000000..03adc96f3 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h @@ -0,0 +1,146 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_DISOCCLUSION_MASK_H +#define FFX_FRAMEINTERPOLATION_DISOCCLUSION_MASK_H + +FFX_STATIC const FfxFloat32 DepthClipBaseScale = 1.0f; + +FfxFloat32 ComputeSampleDepthClip(FfxInt32x2 iPxSamplePos, FfxFloat32 fPreviousDepth, FfxFloat32 fPreviousDepthBilinearWeight, FfxFloat32 fCurrentDepthViewSpace) +{ + FfxFloat32 fPrevNearestDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fPreviousDepth); + + // Depth separation logic ref: See "Minimum Triangle Separation for Correct Z-Buffer Occlusion" + // Intention: worst case of formula in Figure4 combined with Ksep factor in Section 4 + const FfxFloat32 fHalfViewportWidth = RenderSize().x * 0.5f; + FfxFloat32 fDepthThreshold = ffxMax(fCurrentDepthViewSpace, fPrevNearestDepthViewSpace); + + // WARNING: Ksep only works with reversed-z with infinite projection. + const FfxFloat32 Ksep = 1.37e-05f; + FfxFloat32 fRequiredDepthSeparation = Ksep * fDepthThreshold * TanHalfFoV() * fHalfViewportWidth; + FfxFloat32 fDepthDiff = fCurrentDepthViewSpace - fPrevNearestDepthViewSpace; + + FfxFloat32 fDepthClipFactor = (fDepthDiff > 0) ? ffxSaturate(fRequiredDepthSeparation / fDepthDiff) : 1.0f; + + return fPreviousDepthBilinearWeight * fDepthClipFactor * ffxLerp(1.0f, DepthClipBaseScale, ffxSaturate(fDepthDiff * fDepthDiff)); +} + +FfxFloat32 LoadEstimatedDepth(FfxUInt32 estimatedIndex, FfxInt32x2 iSamplePos) +{ + const FfxFloat32x2 fUv = FfxFloat32x2(iSamplePos + 0.5f) / RenderSize(); + const FfxFloat32x2 fDistortionFieldUv = SampleDistortionField(fUv); + FfxInt32x2 iDistortionPixelOffset = FfxInt32x2(fDistortionFieldUv.xy * RenderSize()); + + if (estimatedIndex == 0) + { + return LoadReconstructedDepthPreviousFrame(iSamplePos + iDistortionPixelOffset); + } + else if (estimatedIndex == 1) + { + return LoadDilatedDepth(iSamplePos + iDistortionPixelOffset); + } + + return 0; +} + +FfxFloat32 ComputeDepthClip(FfxUInt32 estimatedIndex, FfxFloat32x2 fUvSample, FfxFloat32 fCurrentDepthSample) +{ + FfxFloat32 fCurrentDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fCurrentDepthSample); + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUvSample, RenderSize()); + + FfxFloat32 fDilatedSum = 0.0f; + FfxFloat32 fDepth = 0.0f; + FfxFloat32 fWeightSum = 0.0f; + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, RenderSize())) { + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + const FfxFloat32 fPrevDepthSample = LoadEstimatedDepth(estimatedIndex, iSamplePos); + const FfxFloat32 fPrevNearestDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fPrevDepthSample); + + const FfxFloat32 fDepthDiff = fCurrentDepthViewSpace - fPrevNearestDepthViewSpace; + + if (fDepthDiff > 0.0f) { + +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + const FfxFloat32 fPlaneDepth = ffxMin(fPrevDepthSample, fCurrentDepthSample); +#else + const FfxFloat32 fPlaneDepth = ffxMax(fPrevDepthSample, fCurrentDepthSample); +#endif + + const FfxFloat32x3 fCenter = GetViewSpacePosition(FfxInt32x2(RenderSize() * 0.5f), RenderSize(), fPlaneDepth); + const FfxFloat32x3 fCorner = GetViewSpacePosition(FfxInt32x2(0, 0), RenderSize(), fPlaneDepth); + + const FfxFloat32 fHalfViewportWidth = length(FfxFloat32x2(RenderSize())); + const FfxFloat32 fDepthThreshold = ffxMin(fCurrentDepthViewSpace, fPrevNearestDepthViewSpace); + + const FfxFloat32 Ksep = 1.37e-05f; + const FfxFloat32 Kfov = length(fCorner) / length(fCenter); + const FfxFloat32 fRequiredDepthSeparation = Ksep * Kfov * fHalfViewportWidth * fDepthThreshold; + + const FfxFloat32 fResolutionFactor = ffxSaturate(length(FfxFloat32x2(RenderSize())) / length(FfxFloat32x2(1920.0f, 1080.0f))); + const FfxFloat32 fPower = ffxLerp(1.0f, 3.0f, fResolutionFactor); + + fDepth += FfxFloat32((fRequiredDepthSeparation / fDepthDiff) >= 1.0f) * fWeight; + fWeightSum += fWeight; + } + } + } + } + + return (fWeightSum > 0.0f) ? ffxSaturate(1.0f - fDepth / fWeightSum) : 0.0f; +} + +void computeDisocclusionMask(FfxInt32x2 iPxPos) +{ + FfxFloat32 fDilatedDepth = LoadEstimatedInterpolationFrameDepth(iPxPos); + + FfxFloat32x2 fDepthUv = (iPxPos + 0.5f) / RenderSize(); + FfxFloat32 fCurrentDepthViewSpace = ConvertFromDeviceDepthToViewSpace(fDilatedDepth); + + VectorFieldEntry gameMv; + LoadInpaintedGameFieldMv(fDepthUv, gameMv); + + const FfxFloat32 fDepthClipInterpolatedToPrevious = 1.0f - ComputeDepthClip(0, fDepthUv + gameMv.fMotionVector, fDilatedDepth); + const FfxFloat32 fDepthClipInterpolatedToCurrent = 1.0f - ComputeDepthClip(1, fDepthUv - gameMv.fMotionVector, fDilatedDepth); + FfxFloat32x2 fDisocclusionMask = FfxFloat32x2(fDepthClipInterpolatedToPrevious, fDepthClipInterpolatedToCurrent); + + fDisocclusionMask = FfxFloat32x2(FFX_GREATER_THAN_EQUAL(fDisocclusionMask, ffxBroadcast2(FFX_FRAMEINTERPOLATION_EPSILON))); + + // Avoid false disocclusion if primary game vector pointer outside screen area + const FfxFloat32x2 fSrcMotionVector = gameMv.fMotionVector * 2.0f; + const FfxInt32x2 iSamplePosPrevious = FfxInt32x2((fDepthUv + fSrcMotionVector) * RenderSize()); + fDisocclusionMask.x = ffxSaturate(fDisocclusionMask.x + FfxFloat32(!IsOnScreen(iSamplePosPrevious, RenderSize()))); + + const FfxInt32x2 iSamplePosCurrent = FfxInt32x2((fDepthUv - fSrcMotionVector) * RenderSize()); + fDisocclusionMask.y = ffxSaturate(fDisocclusionMask.y + FfxFloat32(!IsOnScreen(iSamplePosCurrent, RenderSize()))); + + StoreDisocclusionMask(iPxPos, fDisocclusionMask); + +} + +#endif // FFX_FRAMEINTERPOLATION_DISOCCLUSION_MASK_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h new file mode 100644 index 000000000..574e3dff2 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h @@ -0,0 +1,123 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_GAME_MOTION_VECTOR_FIELD_H +#define FFX_FRAMEINTERPOLATION_GAME_MOTION_VECTOR_FIELD_H + +FfxUInt32 getPriorityFactorFromViewSpaceDepth(FfxFloat32 fViewSpaceDepthInMeters) +{ + fViewSpaceDepthInMeters = ffxPow(fViewSpaceDepthInMeters, 0.33f); + + FfxUInt32 uPriorityFactor = FfxUInt32(FfxFloat32(1 - (fViewSpaceDepthInMeters * (1.0f / (1.0f + fViewSpaceDepthInMeters)))) * PRIORITY_HIGH_MAX); + + return ffxMax(1, uPriorityFactor); +} + +void computeGameFieldMvs(FfxInt32x2 iPxPos) +{ + const FfxFloat32x2 fUvInScreenSpace = (FfxFloat32x2(iPxPos) + 0.5f) / RenderSize(); + + const FfxFloat32x2 fDistortionFieldUv = SampleDistortionField(fUvInScreenSpace); + FfxInt32x2 iDistortionPixelOffset = FfxInt32x2(fDistortionFieldUv.xy * RenderSize()); + + const FfxFloat32x2 fUvInInterpolationRectStart = FfxFloat32x2(InterpolationRectBase()) / DisplaySize(); + const FfxFloat32x2 fUvLetterBoxScale = FfxFloat32x2(InterpolationRectSize()) / DisplaySize(); + const FfxFloat32x2 fUvInInterpolationRect = fUvInInterpolationRectStart + fUvInScreenSpace * fUvLetterBoxScale; + + const FfxFloat32 fDepthSample = LoadDilatedDepth(iPxPos + iDistortionPixelOffset); + const FfxFloat32x2 fGameMotionVector = LoadDilatedMotionVector(iPxPos + iDistortionPixelOffset); + const FfxFloat32x2 fMotionVectorHalf = fGameMotionVector * 0.5f; + const FfxFloat32x2 fInterpolatedLocationUv = fUvInScreenSpace + fMotionVectorHalf; + + const FfxFloat32 fViewSpaceDepth = ConvertFromDeviceDepthToViewSpace(fDepthSample); + const FfxUInt32 uHighPriorityFactorPrimary = getPriorityFactorFromViewSpaceDepth(fViewSpaceDepth); + + // pixel position in current frame + Game Motion Vector -> pixel position in previous frame + FfxFloat32x3 prevBackbufferCol = SamplePreviousBackbuffer(fUvInInterpolationRect+ fGameMotionVector * fUvLetterBoxScale).xyz; //returns color of current frame's pixel in previous frame buffer + FfxFloat32x3 curBackbufferCol = SampleCurrentBackbuffer(fUvInInterpolationRect).xyz; // returns color of current frame's pixel in current frame buffer + FfxFloat32 prevLuma = 0.001f + RawRGBToLuminance(prevBackbufferCol); + FfxFloat32 currLuma = 0.001f + RawRGBToLuminance(curBackbufferCol); + + FfxUInt32 uLowPriorityFactor = FfxUInt32(ffxRound(ffxPow(MinDividedByMax(prevLuma, currLuma), 1.0f / 1.0f) * PRIORITY_LOW_MAX)) + * FfxUInt32(IsUvInside(fUvInInterpolationRect + fGameMotionVector * fUvLetterBoxScale)); + + // Update primary motion vectors + { + const FfxUInt32x2 packedVectorPrimary = PackVectorFieldEntries(true, uHighPriorityFactorPrimary, uLowPriorityFactor, fMotionVectorHalf); + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fInterpolatedLocationUv, RenderSize()); + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, RenderSize())) + { + UpdateGameMotionVectorField(iSamplePos, packedVectorPrimary); + } + } + } + + // Update secondary vectors + // Main purpose of secondary vectors is to improve quality of inpainted vectors + const FfxBoolean bWriteSecondaryVectors = length(fMotionVectorHalf * RenderSize()) > FFX_FRAMEINTERPOLATION_EPSILON; + if (bWriteSecondaryVectors) + { + FfxBoolean bWriteSecondary = true; + FfxUInt32 uNumPrimaryHits = 0; + const FfxFloat32 fSecondaryStepScale = length(1.0f / RenderSize()); + const FfxFloat32x2 fStepMv = normalize(fGameMotionVector); + const FfxFloat32 fBreakDist = ffxMin(length(fMotionVectorHalf), length(FfxFloat32x2(0.5f, 0.5f))); + + for (FfxFloat32 fMvScale = fSecondaryStepScale; fMvScale <= fBreakDist && bWriteSecondary; fMvScale += fSecondaryStepScale) + { + const FfxFloat32x2 fSecondaryLocationUv = fInterpolatedLocationUv - fStepMv * fMvScale; + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fSecondaryLocationUv, RenderSize()); + + // Reverse depth prio for secondary vectors + FfxUInt32 uHighPriorityFactorSecondary = ffxMax(1, PRIORITY_HIGH_MAX - uHighPriorityFactorPrimary); + + const FfxFloat32x2 fToCenter = normalize(FfxFloat32x2(0.5f, 0.5f) - fSecondaryLocationUv); + uLowPriorityFactor = FfxUInt32(ffxMax(0.0f, dot(fToCenter, fStepMv)) * PRIORITY_LOW_MAX); + const FfxUInt32x2 packedVectorSecondary = PackVectorFieldEntries(false, uHighPriorityFactorSecondary, uLowPriorityFactor, fMotionVectorHalf); + + // Only write secondary mvs to single bilinear location + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 1; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + bWriteSecondary = bWriteSecondary && IsOnScreen(iSamplePos, RenderSize()); + + if (bWriteSecondary) + { + const FfxUInt32 uExistingVectorFieldEntry = UpdateGameMotionVectorFieldEx(iSamplePos, packedVectorSecondary); + + uNumPrimaryHits += FfxUInt32(PackedVectorFieldEntryIsPrimary(uExistingVectorFieldEntry)); + bWriteSecondary = bWriteSecondary && (uNumPrimaryHits <= 3); + } + } + } + } +} + +#endif // FFX_FRAMEINTERPOLATION_GAME_MOTION_VECTOR_FIELD_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h new file mode 100644 index 000000000..7ad3630e0 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_inpainting.h @@ -0,0 +1,150 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_INPAINTING_H +#define FFX_FRAMEINTERPOLATION_INPAINTING_H + +FfxFloat32x4 ComputeInpaintingLevel(FfxFloat32x2 fUv, const FfxInt32 iMipLevel, const FfxInt32x2 iTexSize) +{ + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv, iTexSize); + + FfxFloat32x4 fColor = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, iTexSize)) { + + FfxFloat32x4 fSample = LoadInpaintingPyramid(iMipLevel, iSamplePos); + + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex] * FfxFloat32(fSample.w > 0.0f); + + fColor += FfxFloat32x4(fSample.rgb * fWeight, fWeight); + } + } + + return fColor; +} + +FfxFloat32x3 ComputeInpainting(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 fUv = (iPxPos + 0.5f) / (DisplaySize()); + + FfxFloat32x4 fColor = FfxFloat32x4(0.0, 0.0, 0.0, 0.0); + FfxFloat32 fWeightSum = 0.0f; + FfxInt32x2 iTexSize = DisplaySize(); + + for (FfxInt32 iMipLevel = 0; iMipLevel < 10; iMipLevel++) { + + iTexSize /= 2; + + FfxFloat32x4 fMipColor = ComputeInpaintingLevel(fUv, iMipLevel, iTexSize); + + if (fMipColor.w > 0.0f) { + const FfxFloat32x3 fNormalizedMipColor = fMipColor.rgb / fMipColor.w; + const FfxFloat32 fMipWeight = ffxPow(1.0f - iMipLevel / 10.0f, 3.0f) * fMipColor.w; + + fColor += FfxFloat32x4(fNormalizedMipColor, 1.0f) * fMipWeight; + } + } + + return fColor.rgb / fColor.w; +} + +void drawDebugTearLines(FfxInt32x2 iPxPos, inout FfxFloat32x3 fColor, inout FfxBoolean bWriteColor) +{ + if (iPxPos.x < 16) + { + fColor.g = 1.f; + bWriteColor = true; + } + else if (iPxPos.x > DisplaySize().x - 16) + { + fColor += GetDebugBarColor(); + bWriteColor = true; + } + +} + +void drawDebugResetIndicators(FfxInt32x2 iPxPos, inout FfxFloat32x3 fColor, inout FfxBoolean bWriteColor) +{ + if (iPxPos.y < 32 && Reset()) + { + fColor.r = 1.f; + bWriteColor = true; + } + else if (iPxPos.y > 32 && iPxPos.y < 64 && HasSceneChanged()) + { + fColor.b = 1.f; + bWriteColor = true; + } +} + +void computeInpainting(FfxInt32x2 iPxPos) +{ + FfxBoolean bWriteColor = false; + FfxFloat32x4 fInterpolatedColor = RWLoadFrameinterpolationOutput(iPxPos); + + const FfxFloat32 fInPaintingWeight = fInterpolatedColor.w; + if (fInPaintingWeight > FFX_FRAMEINTERPOLATION_EPSILON) + { + fInterpolatedColor.rgb = ffxLerp(fInterpolatedColor.rgb, ComputeInpainting(iPxPos) * FfxFloat32(DisplaySize().x > 0), fInPaintingWeight); + bWriteColor = true; + } + + if (GetHUDLessAttachedFactor() == 1) + { + const FfxFloat32x3 fCurrentInterpolationSource = LoadCurrentBackbuffer(iPxPos).rgb; + const FfxFloat32x3 fPresentColor = LoadPresentBackbuffer(iPxPos).rgb; + + if (any(FFX_GREATER_THAN(abs(fCurrentInterpolationSource - fPresentColor), FfxFloat32x3(0.0, 0.0, 0.0)))) + { + const FfxFloat32 fStaticFactor = CalculateStaticContentFactor(RawRGBToLinear(fCurrentInterpolationSource), RawRGBToLinear(fPresentColor)); + + if (fStaticFactor > FFX_FRAMEINTERPOLATION_EPSILON) + { + fInterpolatedColor.rgb = ffxLerp(fInterpolatedColor.rgb, fPresentColor, fStaticFactor); + bWriteColor = true; + } + } + } + + if ((GetDispatchFlags() & FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_TEAR_LINES) != 0) + { + drawDebugTearLines(iPxPos, fInterpolatedColor.rgb, bWriteColor); + } + + if ((GetDispatchFlags() & FFX_FRAMEINTERPOLATION_DISPATCH_DRAW_DEBUG_RESET_INDICATORS) != 0) + { + drawDebugResetIndicators(iPxPos, fInterpolatedColor.rgb, bWriteColor); + } + + if (bWriteColor) + { + StoreFrameinterpolationOutput(iPxPos, FfxFloat32x4(fInterpolatedColor.rgb, 1.0f)); + } + +} + +#endif // FFX_FRAMEINTERPOLATION_INPAINTING_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h new file mode 100644 index 000000000..843213260 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h @@ -0,0 +1,123 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_OPTICAL_FLOW_VECTOR_FIELD_H +#define FFX_FRAMEINTERPOLATION_OPTICAL_FLOW_VECTOR_FIELD_H + +void computeOpticalFlowFieldMvs(FfxUInt32x2 dtID, FfxFloat32x2 fOpticalFlowVector) +{ + FfxFloat32x2 fUv = FfxFloat32x2(FfxFloat32x2(dtID)+0.5f) / GetOpticalFlowSize2(); + + const FfxFloat32 scaleFactor = 1.0f; + FfxFloat32x2 fMotionVectorHalf = fOpticalFlowVector * 0.5f; + + // pixel position in current frame + fOpticalFlowVector-> pixel position in previous frame + FfxFloat32x3 prevBackbufferCol = SamplePreviousBackbuffer(fUv + fOpticalFlowVector).xyz; // returns previous backbuffer color of current frame pixel position in previous frame + FfxFloat32x3 curBackbufferCol = SampleCurrentBackbuffer(fUv).xyz; // returns current backbuffer color at current frame pixel position + + FfxFloat32 prevLuma = 0.001f + RawRGBToLuminance(prevBackbufferCol); + FfxFloat32 currLuma = 0.001f + RawRGBToLuminance(curBackbufferCol); + + FfxFloat32 fVelocity = length(fOpticalFlowVector * InterpolationRectSize()); + FfxUInt32 uHighPriorityFactor = FfxUInt32(fVelocity > 1.0f) * FfxUInt32(ffxSaturate(fVelocity / length(InterpolationRectSize() * 0.05f)) * PRIORITY_HIGH_MAX); + + if(uHighPriorityFactor > 0) { + FfxUInt32 uLowPriorityFactor = FfxUInt32(ffxRound(ffxPow(MinDividedByMax(prevLuma, currLuma), 1.0f / 1.0f) * PRIORITY_LOW_MAX)) + * FfxUInt32(IsUvInside(fUv + fOpticalFlowVector)); + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + + const FfxUInt32x2 packedVectorPrimary = PackVectorFieldEntries(true, uHighPriorityFactor, uLowPriorityFactor, fMotionVectorHalf); + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv + fMotionVectorHalf, GetOpticalFlowSize2()); + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + + if (IsOnScreen(iSamplePos, GetOpticalFlowSize2())) + { + UpdateOpticalflowMotionVectorField(iSamplePos, packedVectorPrimary); + } + } + } +} + +void computeOpticalFlowVectorField(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 fOpticalFlowVector = FfxFloat32x2(0.0, 0.0); + FfxFloat32x2 fOpticalFlowVector3x3Avg = FfxFloat32x2(0.0, 0.0); + FfxInt32 size = 1; + FfxFloat32 sw = 0.0f; + + for(FfxInt32 y = -size; y <= size; y++) { + for(FfxInt32 x = -size; x <= size; x++) { + + FfxInt32x2 samplePos = iPxPos + FfxInt32x2(x, y); + + FfxFloat32x2 vs = LoadOpticalFlow(samplePos); + FfxFloat32 fConfidenceFactor = ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, LoadOpticalFlowConfidence(samplePos)); + + + FfxFloat32 len = length(vs * InterpolationRectSize()); + FfxFloat32 len_factor = ffxMax(0.0f, 512.0f - len) * FfxFloat32(len > 1.0f); + FfxFloat32 w = len_factor; + + fOpticalFlowVector3x3Avg += vs * w; + + sw += w; + } + } + + fOpticalFlowVector3x3Avg /= sw; + + + sw = 0.0f; + for(FfxInt32 y = -size; y <= size; y++) { + for(FfxInt32 x = -size; x <= size; x++) { + + FfxInt32x2 samplePos = iPxPos + FfxInt32x2(x, y); + + FfxFloat32x2 vs = LoadOpticalFlow(samplePos); + + FfxFloat32 fConfidenceFactor = ffxMax(FFX_FRAMEINTERPOLATION_EPSILON, LoadOpticalFlowConfidence(samplePos)); + FfxFloat32 len = length(vs * InterpolationRectSize()); + FfxFloat32 len_factor = ffxMax(0.0f, 512.0f - len) * FfxFloat32(len > 1.0f); + + + FfxFloat32 w = ffxMax(0.0f, ffxPow(dot(fOpticalFlowVector3x3Avg, vs), 1.25f)) * len_factor; + + fOpticalFlowVector += vs * w; + sw += w; + } + } + + if (sw > FFX_FRAMEINTERPOLATION_EPSILON) + { + fOpticalFlowVector /= sw; + } + + computeOpticalFlowFieldMvs(iPxPos, fOpticalFlowVector); +} + +#endif // FFX_FRAMEINTERPOLATION_OPTICAL_FLOW_VECTOR_FIELD_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h new file mode 100644 index 000000000..e92a57900 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h @@ -0,0 +1,123 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_RECONSTRUCT_DILATED_VELOCITY_AND_PREVIOUS_DEPTH_H +#define FFX_FRAMEINTERPOLATION_RECONSTRUCT_DILATED_VELOCITY_AND_PREVIOUS_DEPTH_H + +void ReconstructPrevDepth(FfxInt32x2 iPxPos, FfxFloat32 fDepth, FfxFloat32x2 fMotionVector, FfxInt32x2 iPxDepthSize) +{ + fMotionVector *= FfxFloat32(length(fMotionVector * DisplaySize()) > 0.1f); + + FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5)) / iPxDepthSize; + FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, RenderSize()); + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + FfxInt32x2 iStorePos = bilinearInfo.iBasePos + iOffset; + if (IsOnScreen(iStorePos, iPxDepthSize)) { + UpdateReconstructedDepthPreviousFrame(iStorePos, fDepth); + } + } + } +} + +void FindNearestDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxInt32x2 iPxSize, FFX_PARAMETER_OUT FfxFloat32 fNearestDepth, FFX_PARAMETER_OUT FfxInt32x2 fNearestDepthCoord) +{ + const FfxInt32 iSampleCount = 9; + const FfxInt32x2 iSampleOffsets[iSampleCount] = { + FfxInt32x2(+0, +0), + FfxInt32x2(+1, +0), + FfxInt32x2(+0, +1), + FfxInt32x2(+0, -1), + FfxInt32x2(-1, +0), + FfxInt32x2(-1, +1), + FfxInt32x2(+1, +1), + FfxInt32x2(-1, -1), + FfxInt32x2(+1, -1), + }; + + // pull out the depth loads to allow SC to batch them + FfxFloat32 depth[9]; + FfxInt32 iSampleIndex = 0; + FFX_UNROLL + for (iSampleIndex = 0; iSampleIndex < iSampleCount; ++iSampleIndex) { + + FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + depth[iSampleIndex] = LoadInputDepth(iPos); + } + + // find closest depth + fNearestDepthCoord = iPxPos; + fNearestDepth = depth[0]; + FFX_UNROLL + for (iSampleIndex = 1; iSampleIndex < iSampleCount; ++iSampleIndex) { + + FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + if (IsOnScreen(iPos, iPxSize)) { + + FfxFloat32 fNdDepth = depth[iSampleIndex]; +#if FFX_FRAMEINTERPOLATION_OPTION_INVERTED_DEPTH + if (fNdDepth > fNearestDepth) { +#else + if (fNdDepth < fNearestDepth) { +#endif + fNearestDepthCoord = iPos; + fNearestDepth = fNdDepth; + } + } + } +} + +void ReconstructAndDilate(FfxInt32x2 iPxLrPos) +{ + FfxFloat32 fDilatedDepth; + FfxInt32x2 iNearestDepthCoord; + + FindNearestDepth(iPxLrPos, RenderSize(), fDilatedDepth, iNearestDepthCoord); + +#if FFX_FRAMEINTERPOLATION_OPTION_LOW_RES_MOTION_VECTORS + FfxInt32x2 iSamplePos = iPxLrPos; + FfxInt32x2 iMotionVectorPos = iNearestDepthCoord; +#else + FfxInt32x2 iSamplePos = ComputeHrPosFromLrPos(iPxLrPos); + FfxInt32x2 iMotionVectorPos = ComputeHrPosFromLrPos(iNearestDepthCoord); +#endif + + FfxFloat32x2 fDilatedMotionVector = LoadInputMotionVector(iMotionVectorPos); + + StoreDilatedDepth(iPxLrPos, fDilatedDepth); + StoreDilatedMotionVectors(iPxLrPos, fDilatedMotionVector); + + ReconstructPrevDepth(iPxLrPos, fDilatedDepth, fDilatedMotionVector, RenderSize()); +} + + +#endif //!defined( FFX_FRAMEINTERPOLATION_RECONSTRUCT_DILATED_VELOCITY_AND_PREVIOUS_DEPTH_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h new file mode 100644 index 000000000..d85f67312 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h @@ -0,0 +1,63 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_RECONSTRUCT_PREVIOUS_DEPTH_H +#define FFX_FRAMEINTERPOLATION_RECONSTRUCT_PREVIOUS_DEPTH_H + +void ReconstructPrevDepth(FfxInt32x2 iPxPos, FfxUInt32 depthTarget, FfxFloat32 fDepth, FfxFloat32x2 fMotionVector, FfxInt32x2 iPxDepthSize) +{ + const FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5)) / iPxDepthSize; + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fUv + fMotionVector, RenderSize()); + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) + { + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = bilinearInfo.iBasePos + iOffset; + const FfxFloat32 fSampleWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (fSampleWeight > fReconstructedDepthBilinearWeightThreshold) + { + if (IsOnScreen(iSamplePos, RenderSize())) + { + if (depthTarget != 0) { + UpdateReconstructedDepthInterpolatedFrame(iSamplePos, fDepth); + } + } + } + } +} + +void reconstructPreviousDepth(FfxInt32x2 iPxPos) +{ + const FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5f)) / RenderSize(); + const FfxFloat32x2 fDistortionFieldUv = SampleDistortionField(fUv); + FfxInt32x2 iDistortionPixelOffset = FfxInt32x2(fDistortionFieldUv.xy * RenderSize()); + + FfxFloat32x2 fMotionVector = LoadDilatedMotionVector(iPxPos + iDistortionPixelOffset); + FfxFloat32 fDilatedDepth = LoadDilatedDepth(iPxPos + iDistortionPixelOffset); + + ReconstructPrevDepth(iPxPos, 1, fDilatedDepth, fMotionVector * 0.5f, RenderSize()); +} + +#endif // FFX_FRAMEINTERPOLATION_RECONSTRUCT_PREVIOUS_DEPTH_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h new file mode 100644 index 000000000..5505f6d15 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_resources.h @@ -0,0 +1,95 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_RESOURCES_H +#define FFX_FRAMEINTERPOLATION_RESOURCES_H + +#if defined(FFX_CPU) || defined(FFX_GPU) +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_NULL 0 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OUTPUT 1 +//#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_BACKBUFFER 2 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_PREVIOUS_INTERPOLATION_SOURCE 3 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_CURRENT_INTERPOLATION_SOURCE 4 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEPTH 5 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_MOTION_VECTORS 6 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_2 7 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_3 8 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_4 9 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DILATED_DEPTH 10 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DILATED_MOTION_VECTORS 11 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME 12 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME 13 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DISOCCLUSION_MASK 14 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_GAME_MOTION_VECTOR_FIELD_X 15 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_GAME_MOTION_VECTOR_FIELD_Y 16 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 17 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 18 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_VECTOR 19 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_5 20 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_CONFIDENCE 21 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_GLOBAL_MOTION 22 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCENE_CHANGE_DETECTION 23 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_6 25 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_RESERVED_7 26 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEBUG_OUTPUT_0 27 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEBUG_OUTPUT_1 28 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEBUG_OUTPUT 29 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_MASK 30 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_PRESENT_BACKBUFFER 31 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNTERS 32 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID 33 // same as FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_0 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_0 33 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_1 34 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_2 35 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_3 36 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_4 37 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_5 38 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_6 39 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_7 40 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_8 41 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_9 42 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_10 43 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_11 44 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_INPAINTING_PYRAMID_MIPMAP_12 45 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DEFAULT_DISTORTION_FIELD 46 +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_DISTORTION_FIELD 47 + +#define FFX_FRAMEINTERPOLATION_RESOURCE_IDENTIFIER_COUNT 48 + +#define FFX_FRAMEINTERPOLATION_CONSTANTBUFFER_IDENTIFIER 0 +#define FFX_FRAMEINTERPOLATION_INPAINTING_PYRAMID_CONSTANTBUFFER_IDENTIFIER 1 +#define FFX_FRAMEINTERPOLATION_CONSTANTBUFFER_COUNT 2 + +#endif // #if defined(FFX_CPU) || defined(FFX_GPU) + +#endif //!defined( FFX_FRAMEINTERPOLATION_RESOURCES_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h new file mode 100644 index 000000000..60dd32377 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/frameinterpolation/ffx_frameinterpolation_setup.h @@ -0,0 +1,50 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FRAMEINTERPOLATION_SETUP_H +#define FFX_FRAMEINTERPOLATION_SETUP_H + +void setupFrameinterpolationResources(FfxInt32x2 iPxPos) +{ + // Update reset counters + StoreCounter(COUNTER_SPD, 0); + if (all(FFX_EQUAL(iPxPos, FfxInt32x2(0, 0)))) + { + if(Reset() || HasSceneChanged()) { + StoreCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET, 0); + } else { + FfxUInt32 counter = RWLoadCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET); + StoreCounter(COUNTER_FRAME_INDEX_SINCE_LAST_RESET, counter + 1); + } + } + + // Reset resources + StoreGameMotionVectorFieldX(iPxPos, 0); + StoreGameMotionVectorFieldY(iPxPos, 0); + + StoreOpticalflowMotionVectorFieldX(iPxPos, 0); + StoreOpticalflowMotionVectorFieldY(iPxPos, 0); + + StoreDisocclusionMask(iPxPos, FfxFloat32x2(0.0, 0.0)); +} + +#endif // FFX_FRAMEINTERPOLATION_SETUP_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h new file mode 100644 index 000000000..82ebf21fe --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr1/ffx_fsr1.h @@ -0,0 +1,1252 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup FfxGPUFsr1 FidelityFX FSR1 +/// FidelityFX Super Resolution 1 GPU documentation +/// +/// @ingroup FfxGPUEffects + +/// Setup required constant values for EASU (works on CPU or GPU). +/// +/// @param [out] con0 +/// @param [out] con1 +/// @param [out] con2 +/// @param [out] con3 +/// @param [in] inputViewportInPixelsX The rendered image resolution being upscaled in X dimension. +/// @param [in] inputViewportInPixelsY The rendered image resolution being upscaled in Y dimension. +/// @param [in] inputSizeInPixelsX The resolution of the resource containing the input image (useful for dynamic resolution) in X dimension. +/// @param [in] inputSizeInPixelsY The resolution of the resource containing the input image (useful for dynamic resolution) in Y dimension. +/// @param [in] outputSizeInPixelsX The display resolution which the input image gets upscaled to in X dimension. +/// @param [in] outputSizeInPixelsY The display resolution which the input image gets upscaled to in Y dimension. +/// +/// @ingroup FfxGPUFsr1 +FFX_STATIC void ffxFsrPopulateEasuConstants( + FFX_PARAMETER_INOUT FfxUInt32x4 con0, + FFX_PARAMETER_INOUT FfxUInt32x4 con1, + FFX_PARAMETER_INOUT FfxUInt32x4 con2, + FFX_PARAMETER_INOUT FfxUInt32x4 con3, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsY, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsY, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsY) +{ + // Output integer position to a pixel position in viewport. + con0[0] = ffxAsUInt32(inputViewportInPixelsX * ffxReciprocal(outputSizeInPixelsX)); + con0[1] = ffxAsUInt32(inputViewportInPixelsY * ffxReciprocal(outputSizeInPixelsY)); + con0[2] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsX * ffxReciprocal(outputSizeInPixelsX) - FfxFloat32(0.5)); + con0[3] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsY * ffxReciprocal(outputSizeInPixelsY) - FfxFloat32(0.5)); + + // Viewport pixel position to normalized image space. + // This is used to get upper-left of 'F' tap. + con1[0] = ffxAsUInt32(ffxReciprocal(inputSizeInPixelsX)); + con1[1] = ffxAsUInt32(ffxReciprocal(inputSizeInPixelsY)); + + // Centers of gather4, first offset from upper-left of 'F'. + // +---+---+ + // | | | + // +--(0)--+ + // | b | c | + // +---F---+---+---+ + // | e | f | g | h | + // +--(1)--+--(2)--+ + // | i | j | k | l | + // +---+---+---+---+ + // | n | o | + // +--(3)--+ + // | | | + // +---+---+ + con1[2] = ffxAsUInt32(FfxFloat32(1.0) * ffxReciprocal(inputSizeInPixelsX)); + con1[3] = ffxAsUInt32(FfxFloat32(-1.0) * ffxReciprocal(inputSizeInPixelsY)); + + // These are from (0) instead of 'F'. + con2[0] = ffxAsUInt32(FfxFloat32(-1.0) * ffxReciprocal(inputSizeInPixelsX)); + con2[1] = ffxAsUInt32(FfxFloat32(2.0) * ffxReciprocal(inputSizeInPixelsY)); + con2[2] = ffxAsUInt32(FfxFloat32(1.0) * ffxReciprocal(inputSizeInPixelsX)); + con2[3] = ffxAsUInt32(FfxFloat32(2.0) * ffxReciprocal(inputSizeInPixelsY)); + con3[0] = ffxAsUInt32(FfxFloat32(0.0) * ffxReciprocal(inputSizeInPixelsX)); + con3[1] = ffxAsUInt32(FfxFloat32(4.0) * ffxReciprocal(inputSizeInPixelsY)); + con3[2] = con3[3] = 0; +} + +/// Setup required constant values for EASU (works on CPU or GPU). +/// +/// @param [out] con0 +/// @param [out] con1 +/// @param [out] con2 +/// @param [out] con3 +/// @param [in] inputViewportInPixelsX The resolution of the input in the X dimension. +/// @param [in] inputViewportInPixelsY The resolution of the input in the Y dimension. +/// @param [in] inputSizeInPixelsX The input size in pixels in the X dimension. +/// @param [in] inputSizeInPixelsY The input size in pixels in the Y dimension. +/// @param [in] outputSizeInPixelsX The output size in pixels in the X dimension. +/// @param [in] outputSizeInPixelsY The output size in pixels in the Y dimension. +/// @param [in] inputOffsetInPixelsX The input image offset in the X dimension into the resource containing it (useful for dynamic resolution). +/// @param [in] inputOffsetInPixelsY The input image offset in the Y dimension into the resource containing it (useful for dynamic resolution). +/// +/// @ingroup FfxGPUFsr1 +FFX_STATIC void ffxFsrPopulateEasuConstantsOffset( + FFX_PARAMETER_INOUT FfxUInt32x4 con0, + FFX_PARAMETER_INOUT FfxUInt32x4 con1, + FFX_PARAMETER_INOUT FfxUInt32x4 con2, + FFX_PARAMETER_INOUT FfxUInt32x4 con3, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputViewportInPixelsY, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputSizeInPixelsY, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsX, + FFX_PARAMETER_IN FfxFloat32 outputSizeInPixelsY, + FFX_PARAMETER_IN FfxFloat32 inputOffsetInPixelsX, + FFX_PARAMETER_IN FfxFloat32 inputOffsetInPixelsY) +{ + ffxFsrPopulateEasuConstants( + con0, + con1, + con2, + con3, + inputViewportInPixelsX, + inputViewportInPixelsY, + inputSizeInPixelsX, + inputSizeInPixelsY, + outputSizeInPixelsX, + outputSizeInPixelsY); + + // override + con0[2] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsX * ffxReciprocal(outputSizeInPixelsX) - FfxFloat32(0.5) + inputOffsetInPixelsX); + con0[3] = ffxAsUInt32(FfxFloat32(0.5) * inputViewportInPixelsY * ffxReciprocal(outputSizeInPixelsY) - FfxFloat32(0.5) + inputOffsetInPixelsY); +} + +#if defined(FFX_GPU) && defined(FFX_FSR_EASU_FLOAT) +// Input callback prototypes, need to be implemented by calling shader +FfxFloat32x4 FsrEasuRF(FfxFloat32x2 p); +FfxFloat32x4 FsrEasuGF(FfxFloat32x2 p); +FfxFloat32x4 FsrEasuBF(FfxFloat32x2 p); + +// Filtering for a given tap for the scalar. +void fsrEasuTapFloat( + FFX_PARAMETER_INOUT FfxFloat32x3 accumulatedColor, // Accumulated color, with negative lobe. + FFX_PARAMETER_INOUT FfxFloat32 accumulatedWeight, // Accumulated weight. + FFX_PARAMETER_IN FfxFloat32x2 pixelOffset, // Pixel offset from resolve position to tap. + FFX_PARAMETER_IN FfxFloat32x2 gradientDirection, // Gradient direction. + FFX_PARAMETER_IN FfxFloat32x2 length, // Length. + FFX_PARAMETER_IN FfxFloat32 negativeLobeStrength, // Negative lobe strength. + FFX_PARAMETER_IN FfxFloat32 clippingPoint, // Clipping point. + FFX_PARAMETER_IN FfxFloat32x3 color) // Tap color. +{ + // Rotate offset by direction. + FfxFloat32x2 rotatedOffset; + rotatedOffset.x = (pixelOffset.x * (gradientDirection.x)) + (pixelOffset.y * gradientDirection.y); + rotatedOffset.y = (pixelOffset.x * (-gradientDirection.y)) + (pixelOffset.y * gradientDirection.x); + + // Anisotropy. + rotatedOffset *= length; + + // Compute distance^2. + FfxFloat32 distanceSquared = rotatedOffset.x * rotatedOffset.x + rotatedOffset.y * rotatedOffset.y; + + // Limit to the window as at corner, 2 taps can easily be outside. + distanceSquared = ffxMin(distanceSquared, clippingPoint); + + // Approximation of lancos2 without sin() or rcp(), or sqrt() to get x. + // (25/16 * (2/5 * x^2 - 1)^2 - (25/16 - 1)) * (1/4 * x^2 - 1)^2 + // |_______________________________________| |_______________| + // base window + // The general form of the 'base' is, + // (a*(b*x^2-1)^2-(a-1)) + // Where 'a=1/(2*b-b^2)' and 'b' moves around the negative lobe. + FfxFloat32 weightB = FfxFloat32(2.0 / 5.0) * distanceSquared + FfxFloat32(-1.0); + FfxFloat32 weightA = negativeLobeStrength * distanceSquared + FfxFloat32(-1.0); + weightB *= weightB; + weightA *= weightA; + weightB = FfxFloat32(25.0 / 16.0) * weightB + FfxFloat32(-(25.0 / 16.0 - 1.0)); + FfxFloat32 weight = weightB * weightA; + + // Do weighted average. + accumulatedColor += color * weight; + accumulatedWeight += weight; +} + +// Accumulate direction and length. +void fsrEasuSetFloat( + FFX_PARAMETER_INOUT FfxFloat32x2 direction, + FFX_PARAMETER_INOUT FfxFloat32 length, + FFX_PARAMETER_IN FfxFloat32x2 pp, + FFX_PARAMETER_IN FfxBoolean biS, + FFX_PARAMETER_IN FfxBoolean biT, + FFX_PARAMETER_IN FfxBoolean biU, + FFX_PARAMETER_IN FfxBoolean biV, + FFX_PARAMETER_IN FfxFloat32 lA, + FFX_PARAMETER_IN FfxFloat32 lB, + FFX_PARAMETER_IN FfxFloat32 lC, + FFX_PARAMETER_IN FfxFloat32 lD, + FFX_PARAMETER_IN FfxFloat32 lE) +{ + // Compute bilinear weight, branches factor out as predicates are compiler time immediates. + // s t + // u v + FfxFloat32 weight = FfxFloat32(0.0); + if (biS) + weight = (FfxFloat32(1.0) - pp.x) * (FfxFloat32(1.0) - pp.y); + if (biT) + weight = pp.x * (FfxFloat32(1.0) - pp.y); + if (biU) + weight = (FfxFloat32(1.0) - pp.x) * pp.y; + if (biV) + weight = pp.x * pp.y; + + // Direction is the '+' diff. + // a + // b c d + // e + // Then takes magnitude from abs average of both sides of 'c'. + // Length converts gradient reversal to 0, smoothly to non-reversal at 1, shaped, then adding horz and vert terms. + FfxFloat32 dc = lD - lC; + FfxFloat32 cb = lC - lB; + FfxFloat32 lengthX = max(abs(dc), abs(cb)); + lengthX = ffxApproximateReciprocal(lengthX); + FfxFloat32 directionX = lD - lB; + direction.x += directionX * weight; + lengthX = ffxSaturate(abs(directionX) * lengthX); + lengthX *= lengthX; + length += lengthX * weight; + + // Repeat for the y axis. + FfxFloat32 ec = lE - lC; + FfxFloat32 ca = lC - lA; + FfxFloat32 lengthY = max(abs(ec), abs(ca)); + lengthY = ffxApproximateReciprocal(lengthY); + FfxFloat32 directionY = lE - lA; + direction.y += directionY * weight; + lengthY = ffxSaturate(abs(directionY) * lengthY); + lengthY *= lengthY; + length += lengthY * weight; +} + +/// Apply edge-aware spatial upsampling using 32bit floating point precision calculations. +/// +/// @param [out] outPixel The computed color of a pixel. +/// @param [in] integerPosition Integer pixel position within the output. +/// @param [in] con0 The first constant value generated by ffxFsrPopulateEasuConstants. +/// @param [in] con1 The second constant value generated by ffxFsrPopulateEasuConstants. +/// @param [in] con2 The third constant value generated by ffxFsrPopulateEasuConstants. +/// @param [in] con3 The fourth constant value generated by ffxFsrPopulateEasuConstants. +/// +/// @ingroup FSR +void ffxFsrEasuFloat( + FFX_PARAMETER_OUT FfxFloat32x3 pix, + FFX_PARAMETER_IN FfxUInt32x2 ip, + FFX_PARAMETER_IN FfxUInt32x4 con0, + FFX_PARAMETER_IN FfxUInt32x4 con1, + FFX_PARAMETER_IN FfxUInt32x4 con2, + FFX_PARAMETER_IN FfxUInt32x4 con3) +{ + // Get position of 'f'. + FfxFloat32x2 pp = FfxFloat32x2(ip) * ffxAsFloat(con0.xy) + ffxAsFloat(con0.zw); + FfxFloat32x2 fp = floor(pp); + pp -= fp; + + // 12-tap kernel. + // b c + // e f g h + // i j k l + // n o + // Gather 4 ordering. + // a b + // r g + // For packed FP16, need either {rg} or {ab} so using the following setup for gather in all versions, + // a b <- unused (z) + // r g + // a b a b + // r g r g + // a b + // r g <- unused (z) + // Allowing dead-code removal to remove the 'z's. + FfxFloat32x2 p0 = fp * ffxAsFloat(con1.xy) + ffxAsFloat(con1.zw); + + // These are from p0 to avoid pulling two constants on pre-Navi hardware. + FfxFloat32x2 p1 = p0 + ffxAsFloat(con2.xy); + FfxFloat32x2 p2 = p0 + ffxAsFloat(con2.zw); + FfxFloat32x2 p3 = p0 + ffxAsFloat(con3.xy); + FfxFloat32x4 bczzR = FsrEasuRF(p0); + FfxFloat32x4 bczzG = FsrEasuGF(p0); + FfxFloat32x4 bczzB = FsrEasuBF(p0); + FfxFloat32x4 ijfeR = FsrEasuRF(p1); + FfxFloat32x4 ijfeG = FsrEasuGF(p1); + FfxFloat32x4 ijfeB = FsrEasuBF(p1); + FfxFloat32x4 klhgR = FsrEasuRF(p2); + FfxFloat32x4 klhgG = FsrEasuGF(p2); + FfxFloat32x4 klhgB = FsrEasuBF(p2); + FfxFloat32x4 zzonR = FsrEasuRF(p3); + FfxFloat32x4 zzonG = FsrEasuGF(p3); + FfxFloat32x4 zzonB = FsrEasuBF(p3); + + // Simplest multi-channel approximate luma possible (luma times 2, in 2 FMA/MAD). + FfxFloat32x4 bczzL = bczzB * ffxBroadcast4(0.5) + (bczzR * ffxBroadcast4(0.5) + bczzG); + FfxFloat32x4 ijfeL = ijfeB * ffxBroadcast4(0.5) + (ijfeR * ffxBroadcast4(0.5) + ijfeG); + FfxFloat32x4 klhgL = klhgB * ffxBroadcast4(0.5) + (klhgR * ffxBroadcast4(0.5) + klhgG); + FfxFloat32x4 zzonL = zzonB * ffxBroadcast4(0.5) + (zzonR * ffxBroadcast4(0.5) + zzonG); + + // Rename. + FfxFloat32 bL = bczzL.x; + FfxFloat32 cL = bczzL.y; + FfxFloat32 iL = ijfeL.x; + FfxFloat32 jL = ijfeL.y; + FfxFloat32 fL = ijfeL.z; + FfxFloat32 eL = ijfeL.w; + FfxFloat32 kL = klhgL.x; + FfxFloat32 lL = klhgL.y; + FfxFloat32 hL = klhgL.z; + FfxFloat32 gL = klhgL.w; + FfxFloat32 oL = zzonL.z; + FfxFloat32 nL = zzonL.w; + + // Accumulate for bilinear interpolation. + FfxFloat32x2 dir = ffxBroadcast2(0.0); + FfxFloat32 len = FfxFloat32(0.0); + fsrEasuSetFloat(dir, len, pp, FFX_TRUE, FFX_FALSE, FFX_FALSE, FFX_FALSE, bL, eL, fL, gL, jL); + fsrEasuSetFloat(dir, len, pp, FFX_FALSE, FFX_TRUE, FFX_FALSE, FFX_FALSE, cL, fL, gL, hL, kL); + fsrEasuSetFloat(dir, len, pp, FFX_FALSE, FFX_FALSE, FFX_TRUE, FFX_FALSE, fL, iL, jL, kL, nL); + fsrEasuSetFloat(dir, len, pp, FFX_FALSE, FFX_FALSE, FFX_FALSE, FFX_TRUE, gL, jL, kL, lL, oL); + + // Normalize with approximation, and cleanup close to zero. + FfxFloat32x2 dir2 = dir * dir; + FfxFloat32 dirR = dir2.x + dir2.y; + FfxBoolean zro = dirR < FfxFloat32(1.0 / 32768.0); + dirR = ffxApproximateReciprocalSquareRoot(dirR); + dirR = zro ? FfxFloat32(1.0) : dirR; + dir.x = zro ? FfxFloat32(1.0) : dir.x; + dir *= ffxBroadcast2(dirR); + + // Transform from {0 to 2} to {0 to 1} range, and shape with square. + len = len * FfxFloat32(0.5); + len *= len; + + // Stretch kernel {1.0 vert|horz, to sqrt(2.0) on diagonal}. + FfxFloat32 stretch = (dir.x * dir.x + dir.y * dir.y) * ffxApproximateReciprocal(max(abs(dir.x), abs(dir.y))); + + // Anisotropic length after rotation, + // x := 1.0 lerp to 'stretch' on edges + // y := 1.0 lerp to 2x on edges + FfxFloat32x2 len2 = FfxFloat32x2(FfxFloat32(1.0) + (stretch - FfxFloat32(1.0)) * len, FfxFloat32(1.0) + FfxFloat32(-0.5) * len); + + // Based on the amount of 'edge', + // the window shifts from +/-{sqrt(2.0) to slightly beyond 2.0}. + FfxFloat32 lob = FfxFloat32(0.5) + FfxFloat32((1.0 / 4.0 - 0.04) - 0.5) * len; + + // Set distance^2 clipping point to the end of the adjustable window. + FfxFloat32 clp = ffxApproximateReciprocal(lob); + + // Accumulation mixed with min/max of 4 nearest. + // b c + // e f g h + // i j k l + // n o + FfxFloat32x3 min4 = + ffxMin(ffxMin3(FfxFloat32x3(ijfeR.z, ijfeG.z, ijfeB.z), FfxFloat32x3(klhgR.w, klhgG.w, klhgB.w), FfxFloat32x3(ijfeR.y, ijfeG.y, ijfeB.y)), + FfxFloat32x3(klhgR.x, klhgG.x, klhgB.x)); + FfxFloat32x3 max4 = + max(ffxMax3(FfxFloat32x3(ijfeR.z, ijfeG.z, ijfeB.z), FfxFloat32x3(klhgR.w, klhgG.w, klhgB.w), FfxFloat32x3(ijfeR.y, ijfeG.y, ijfeB.y)), FfxFloat32x3(klhgR.x, klhgG.x, klhgB.x)); + + // Accumulation. + FfxFloat32x3 aC = ffxBroadcast3(0.0); + FfxFloat32 aW = FfxFloat32(0.0); + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, -1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(bczzR.x, bczzG.x, bczzB.x)); // b + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, -1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(bczzR.y, bczzG.y, bczzB.y)); // c + fsrEasuTapFloat(aC, aW, FfxFloat32x2(-1.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.x, ijfeG.x, ijfeB.x)); // i + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.y, ijfeG.y, ijfeB.y)); // j + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.z, ijfeG.z, ijfeB.z)); // f + fsrEasuTapFloat(aC, aW, FfxFloat32x2(-1.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(ijfeR.w, ijfeG.w, ijfeB.w)); // e + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.x, klhgG.x, klhgB.x)); // k + fsrEasuTapFloat(aC, aW, FfxFloat32x2(2.0, 1.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.y, klhgG.y, klhgB.y)); // l + fsrEasuTapFloat(aC, aW, FfxFloat32x2(2.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.z, klhgG.z, klhgB.z)); // h + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, 0.0) - pp, dir, len2, lob, clp, FfxFloat32x3(klhgR.w, klhgG.w, klhgB.w)); // g + fsrEasuTapFloat(aC, aW, FfxFloat32x2(1.0, 2.0) - pp, dir, len2, lob, clp, FfxFloat32x3(zzonR.z, zzonG.z, zzonB.z)); // o + fsrEasuTapFloat(aC, aW, FfxFloat32x2(0.0, 2.0) - pp, dir, len2, lob, clp, FfxFloat32x3(zzonR.w, zzonG.w, zzonB.w)); // n + + // Normalize and dering. + pix = ffxMin(max4, max(min4, aC * ffxBroadcast3(ffxReciprocal(aW)))); +} +#endif // #if defined(FFX_GPU) && defined(FFX_FSR_EASU_FLOAT) + +#if defined(FFX_GPU) && FFX_HALF == 1 && defined(FFX_FSR_EASU_HALF) +// Input callback prototypes, need to be implemented by calling shader +FfxFloat16x4 FsrEasuRH(FfxFloat32x2 p); +FfxFloat16x4 FsrEasuGH(FfxFloat32x2 p); +FfxFloat16x4 FsrEasuBH(FfxFloat32x2 p); + +// This runs 2 taps in parallel. +void FsrEasuTapH( + FFX_PARAMETER_INOUT FfxFloat16x2 aCR, + FFX_PARAMETER_INOUT FfxFloat16x2 aCG, + FFX_PARAMETER_INOUT FfxFloat16x2 aCB, + FFX_PARAMETER_INOUT FfxFloat16x2 aW, + FFX_PARAMETER_IN FfxFloat16x2 offX, + FFX_PARAMETER_IN FfxFloat16x2 offY, + FFX_PARAMETER_IN FfxFloat16x2 dir, + FFX_PARAMETER_IN FfxFloat16x2 len, + FFX_PARAMETER_IN FfxFloat16 lob, + FFX_PARAMETER_IN FfxFloat16 clp, + FFX_PARAMETER_IN FfxFloat16x2 cR, + FFX_PARAMETER_IN FfxFloat16x2 cG, + FFX_PARAMETER_IN FfxFloat16x2 cB) +{ + FfxFloat16x2 vX, vY; + vX = offX * dir.xx + offY * dir.yy; + vY = offX * (-dir.yy) + offY * dir.xx; + vX *= len.x; + vY *= len.y; + FfxFloat16x2 d2 = vX * vX + vY * vY; + d2 = min(d2, FFX_BROADCAST_FLOAT16X2(clp)); + FfxFloat16x2 wB = FFX_BROADCAST_FLOAT16X2(2.0 / 5.0) * d2 + FFX_BROADCAST_FLOAT16X2(-1.0); + FfxFloat16x2 wA = FFX_BROADCAST_FLOAT16X2(lob) * d2 + FFX_BROADCAST_FLOAT16X2(-1.0); + wB *= wB; + wA *= wA; + wB = FFX_BROADCAST_FLOAT16X2(25.0 / 16.0) * wB + FFX_BROADCAST_FLOAT16X2(-(25.0 / 16.0 - 1.0)); + FfxFloat16x2 w = wB * wA; + aCR += cR * w; + aCG += cG * w; + aCB += cB * w; + aW += w; +} + +// This runs 2 taps in parallel. +void FsrEasuSetH( + FFX_PARAMETER_INOUT FfxFloat16x2 dirPX, + FFX_PARAMETER_INOUT FfxFloat16x2 dirPY, + FFX_PARAMETER_INOUT FfxFloat16x2 lenP, + FFX_PARAMETER_IN FfxFloat16x2 pp, + FFX_PARAMETER_IN FfxBoolean biST, + FFX_PARAMETER_IN FfxBoolean biUV, + FFX_PARAMETER_IN FfxFloat16x2 lA, + FFX_PARAMETER_IN FfxFloat16x2 lB, + FFX_PARAMETER_IN FfxFloat16x2 lC, + FFX_PARAMETER_IN FfxFloat16x2 lD, + FFX_PARAMETER_IN FfxFloat16x2 lE) +{ + FfxFloat16x2 w = FFX_BROADCAST_FLOAT16X2(0.0); + + if (biST) + w = (FfxFloat16x2(1.0, 0.0) + FfxFloat16x2(-pp.x, pp.x)) * FFX_BROADCAST_FLOAT16X2(FFX_BROADCAST_FLOAT16(1.0) - pp.y); + + if (biUV) + w = (FfxFloat16x2(1.0, 0.0) + FfxFloat16x2(-pp.x, pp.x)) * FFX_BROADCAST_FLOAT16X2(pp.y); + + // ABS is not free in the packed FP16 path. + FfxFloat16x2 dc = lD - lC; + FfxFloat16x2 cb = lC - lB; + FfxFloat16x2 lenX = max(abs(dc), abs(cb)); + lenX = ffxReciprocalHalf(lenX); + + FfxFloat16x2 dirX = lD - lB; + dirPX += dirX * w; + lenX = ffxSaturate(abs(dirX) * lenX); + lenX *= lenX; + lenP += lenX * w; + FfxFloat16x2 ec = lE - lC; + FfxFloat16x2 ca = lC - lA; + FfxFloat16x2 lenY = max(abs(ec), abs(ca)); + lenY = ffxReciprocalHalf(lenY); + FfxFloat16x2 dirY = lE - lA; + dirPY += dirY * w; + lenY = ffxSaturate(abs(dirY) * lenY); + lenY *= lenY; + lenP += lenY * w; +} + +void FsrEasuH( + FFX_PARAMETER_OUT FfxFloat16x3 pix, + FFX_PARAMETER_IN FfxUInt32x2 ip, + FFX_PARAMETER_IN FfxUInt32x4 con0, + FFX_PARAMETER_IN FfxUInt32x4 con1, + FFX_PARAMETER_IN FfxUInt32x4 con2, + FFX_PARAMETER_IN FfxUInt32x4 con3) +{ + FfxFloat32x2 pp = FfxFloat32x2(ip) * ffxAsFloat(con0.xy) + ffxAsFloat(con0.zw); + FfxFloat32x2 fp = floor(pp); + pp -= fp; + FfxFloat16x2 ppp = FfxFloat16x2(pp); + + FfxFloat32x2 p0 = fp * ffxAsFloat(con1.xy) + ffxAsFloat(con1.zw); + FfxFloat32x2 p1 = p0 + ffxAsFloat(con2.xy); + FfxFloat32x2 p2 = p0 + ffxAsFloat(con2.zw); + FfxFloat32x2 p3 = p0 + ffxAsFloat(con3.xy); + FfxFloat16x4 bczzR = FsrEasuRH(p0); + FfxFloat16x4 bczzG = FsrEasuGH(p0); + FfxFloat16x4 bczzB = FsrEasuBH(p0); + FfxFloat16x4 ijfeR = FsrEasuRH(p1); + FfxFloat16x4 ijfeG = FsrEasuGH(p1); + FfxFloat16x4 ijfeB = FsrEasuBH(p1); + FfxFloat16x4 klhgR = FsrEasuRH(p2); + FfxFloat16x4 klhgG = FsrEasuGH(p2); + FfxFloat16x4 klhgB = FsrEasuBH(p2); + FfxFloat16x4 zzonR = FsrEasuRH(p3); + FfxFloat16x4 zzonG = FsrEasuGH(p3); + FfxFloat16x4 zzonB = FsrEasuBH(p3); + + FfxFloat16x4 bczzL = bczzB * FFX_BROADCAST_FLOAT16X4(0.5) + (bczzR * FFX_BROADCAST_FLOAT16X4(0.5) + bczzG); + FfxFloat16x4 ijfeL = ijfeB * FFX_BROADCAST_FLOAT16X4(0.5) + (ijfeR * FFX_BROADCAST_FLOAT16X4(0.5) + ijfeG); + FfxFloat16x4 klhgL = klhgB * FFX_BROADCAST_FLOAT16X4(0.5) + (klhgR * FFX_BROADCAST_FLOAT16X4(0.5) + klhgG); + FfxFloat16x4 zzonL = zzonB * FFX_BROADCAST_FLOAT16X4(0.5) + (zzonR * FFX_BROADCAST_FLOAT16X4(0.5) + zzonG); + FfxFloat16 bL = bczzL.x; + FfxFloat16 cL = bczzL.y; + FfxFloat16 iL = ijfeL.x; + FfxFloat16 jL = ijfeL.y; + FfxFloat16 fL = ijfeL.z; + FfxFloat16 eL = ijfeL.w; + FfxFloat16 kL = klhgL.x; + FfxFloat16 lL = klhgL.y; + FfxFloat16 hL = klhgL.z; + FfxFloat16 gL = klhgL.w; + FfxFloat16 oL = zzonL.z; + FfxFloat16 nL = zzonL.w; + + // This part is different, accumulating 2 taps in parallel. + FfxFloat16x2 dirPX = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 dirPY = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 lenP = FFX_BROADCAST_FLOAT16X2(0.0); + FsrEasuSetH(dirPX, + dirPY, + lenP, + ppp, + FfxBoolean(true), + FfxBoolean(false), + FfxFloat16x2(bL, cL), + FfxFloat16x2(eL, fL), + FfxFloat16x2(fL, gL), + FfxFloat16x2(gL, hL), + FfxFloat16x2(jL, kL)); + FsrEasuSetH(dirPX, + dirPY, + lenP, + ppp, + FfxBoolean(false), + FfxBoolean(true), + FfxFloat16x2(fL, gL), + FfxFloat16x2(iL, jL), + FfxFloat16x2(jL, kL), + FfxFloat16x2(kL, lL), + FfxFloat16x2(nL, oL)); + FfxFloat16x2 dir = FfxFloat16x2(dirPX.r + dirPX.g, dirPY.r + dirPY.g); + FfxFloat16 len = lenP.r + lenP.g; + + FfxFloat16x2 dir2 = dir * dir; + FfxFloat16 dirR = dir2.x + dir2.y; + FfxUInt32 zro = FfxUInt32(dirR < FFX_BROADCAST_FLOAT16(1.0 / 32768.0)); + dirR = ffxApproximateReciprocalSquareRootHalf(dirR); + dirR = (zro > 0) ? FFX_BROADCAST_FLOAT16(1.0) : dirR; + dir.x = (zro > 0) ? FFX_BROADCAST_FLOAT16(1.0) : dir.x; + dir *= FFX_BROADCAST_FLOAT16X2(dirR); + len = len * FFX_BROADCAST_FLOAT16(0.5); + len *= len; + FfxFloat16 stretch = (dir.x * dir.x + dir.y * dir.y) * ffxApproximateReciprocalHalf(max(abs(dir.x), abs(dir.y))); + FfxFloat16x2 len2 = + FfxFloat16x2(FFX_BROADCAST_FLOAT16(1.0) + (stretch - FFX_BROADCAST_FLOAT16(1.0)) * len, FFX_BROADCAST_FLOAT16(1.0) + FFX_BROADCAST_FLOAT16(-0.5) * len); + FfxFloat16 lob = FFX_BROADCAST_FLOAT16(0.5) + FFX_BROADCAST_FLOAT16((1.0 / 4.0 - 0.04) - 0.5) * len; + FfxFloat16 clp = ffxApproximateReciprocalHalf(lob); + + // FP16 is different, using packed trick to do min and max in same operation. + FfxFloat16x2 bothR = + max(max(FfxFloat16x2(-ijfeR.z, ijfeR.z), FfxFloat16x2(-klhgR.w, klhgR.w)), max(FfxFloat16x2(-ijfeR.y, ijfeR.y), FfxFloat16x2(-klhgR.x, klhgR.x))); + FfxFloat16x2 bothG = + max(max(FfxFloat16x2(-ijfeG.z, ijfeG.z), FfxFloat16x2(-klhgG.w, klhgG.w)), max(FfxFloat16x2(-ijfeG.y, ijfeG.y), FfxFloat16x2(-klhgG.x, klhgG.x))); + FfxFloat16x2 bothB = + max(max(FfxFloat16x2(-ijfeB.z, ijfeB.z), FfxFloat16x2(-klhgB.w, klhgB.w)), max(FfxFloat16x2(-ijfeB.y, ijfeB.y), FfxFloat16x2(-klhgB.x, klhgB.x))); + + // This part is different for FP16, working pairs of taps at a time. + FfxFloat16x2 pR = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 pG = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 pB = FFX_BROADCAST_FLOAT16X2(0.0); + FfxFloat16x2 pW = FFX_BROADCAST_FLOAT16X2(0.0); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(0.0, 1.0) - ppp.xx, FfxFloat16x2(-1.0, -1.0) - ppp.yy, dir, len2, lob, clp, bczzR.xy, bczzG.xy, bczzB.xy); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(-1.0, 0.0) - ppp.xx, FfxFloat16x2(1.0, 1.0) - ppp.yy, dir, len2, lob, clp, ijfeR.xy, ijfeG.xy, ijfeB.xy); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(0.0, -1.0) - ppp.xx, FfxFloat16x2(0.0, 0.0) - ppp.yy, dir, len2, lob, clp, ijfeR.zw, ijfeG.zw, ijfeB.zw); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(1.0, 2.0) - ppp.xx, FfxFloat16x2(1.0, 1.0) - ppp.yy, dir, len2, lob, clp, klhgR.xy, klhgG.xy, klhgB.xy); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(2.0, 1.0) - ppp.xx, FfxFloat16x2(0.0, 0.0) - ppp.yy, dir, len2, lob, clp, klhgR.zw, klhgG.zw, klhgB.zw); + FsrEasuTapH(pR, pG, pB, pW, FfxFloat16x2(1.0, 0.0) - ppp.xx, FfxFloat16x2(2.0, 2.0) - ppp.yy, dir, len2, lob, clp, zzonR.zw, zzonG.zw, zzonB.zw); + FfxFloat16x3 aC = FfxFloat16x3(pR.x + pR.y, pG.x + pG.y, pB.x + pB.y); + FfxFloat16 aW = pW.x + pW.y; + + // Slightly different for FP16 version due to combined min and max. + pix = min(FfxFloat16x3(bothR.y, bothG.y, bothB.y), max(-FfxFloat16x3(bothR.x, bothG.x, bothB.x), aC * FFX_BROADCAST_FLOAT16X3(ffxReciprocalHalf(aW)))); +} +#endif // #if defined(FFX_GPU) && defined(FFX_HALF) && defined(FFX_FSR_EASU_HALF) + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [RCAS] ROBUST CONTRAST ADAPTIVE SHARPENING +// +//------------------------------------------------------------------------------------------------------------------------------ +// CAS uses a simplified mechanism to convert local contrast into a variable amount of sharpness. +// RCAS uses a more exact mechanism, solving for the maximum local sharpness possible before clipping. +// RCAS also has a built in process to limit sharpening of what it detects as possible noise. +// RCAS sharper does not support scaling, as it should be applied after EASU scaling. +// Pass EASU output straight into RCAS, no color conversions necessary. +//------------------------------------------------------------------------------------------------------------------------------ +// RCAS is based on the following logic. +// RCAS uses a 5 tap filter in a cross pattern (same as CAS), +// w n +// w 1 w for taps w m e +// w s +// Where 'w' is the negative lobe weight. +// output = (w*(n+e+w+s)+m)/(4*w+1) +// RCAS solves for 'w' by seeing where the signal might clip out of the {0 to 1} input range, +// 0 == (w*(n+e+w+s)+m)/(4*w+1) -> w = -m/(n+e+w+s) +// 1 == (w*(n+e+w+s)+m)/(4*w+1) -> w = (1-m)/(n+e+w+s-4*1) +// Then chooses the 'w' which results in no clipping, limits 'w', and multiplies by the 'sharp' amount. +// This solution above has issues with MSAA input as the steps along the gradient cause edge detection issues. +// So RCAS uses 4x the maximum and 4x the minimum (depending on equation)in place of the individual taps. +// As well as switching from 'm' to either the minimum or maximum (depending on side), to help in energy conservation. +// This stabilizes RCAS. +// RCAS does a simple highpass which is normalized against the local contrast then shaped, +// 0.25 +// 0.25 -1 0.25 +// 0.25 +// This is used as a noise detection filter, to reduce the effect of RCAS on grain, and focus on real edges. +// +// GLSL example for the required callbacks : +// +// FfxFloat16x4 FsrRcasLoadH(FfxInt16x2 p){return FfxFloat16x4(imageLoad(imgSrc,FfxInt32x2(p)));} +// void FsrRcasInputH(inout FfxFloat16 r,inout FfxFloat16 g,inout FfxFloat16 b) +// { +// //do any simple input color conversions here or leave empty if none needed +// } +// +// FsrRcasCon need to be called from the CPU or GPU to set up constants. +// Including a GPU example here, the 'con' value would be stored out to a constant buffer. +// +// FfxUInt32x4 con; +// FsrRcasCon(con, +// 0.0); // The scale is {0.0 := maximum sharpness, to N>0, where N is the number of stops (halving) of the reduction of sharpness}. +// --------------- +// RCAS sharpening supports a CAS-like pass-through alpha via, +// #define FSR_RCAS_PASSTHROUGH_ALPHA 1 +// RCAS also supports a define to enable a more expensive path to avoid some sharpening of noise. +// Would suggest it is better to apply film grain after RCAS sharpening (and after scaling) instead of using this define, +// #define FSR_RCAS_DENOISE 1 +//============================================================================================================================== +// This is set at the limit of providing unnatural results for sharpening. +#define FSR_RCAS_LIMIT (0.25-(1.0/16.0)) +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// CONSTANT SETUP +//============================================================================================================================== +// Call to setup required constant values (works on CPU or GPU). + FFX_STATIC void FsrRcasCon(FfxUInt32x4 con, + // The scale is {0.0 := maximum, to N>0, where N is the number of stops (halving) of the reduction of sharpness}. + FfxFloat32 sharpness) + { + // Transform from stops to linear value. + sharpness = exp2(-sharpness); + FfxFloat32x2 hSharp = {sharpness, sharpness}; + con[0] = ffxAsUInt32(sharpness); + con[1] = ffxPackHalf2x16(hSharp); + con[2] = 0; + con[3] = 0; + } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// NON-PACKED 32-BIT VERSION +//============================================================================================================================== +#if defined(FFX_GPU)&&defined(FSR_RCAS_F) + // Input callback prototypes that need to be implemented by calling shader + FfxFloat32x4 FsrRcasLoadF(FfxInt32x2 p); + void FsrRcasInputF(inout FfxFloat32 r,inout FfxFloat32 g,inout FfxFloat32 b); +//------------------------------------------------------------------------------------------------------------------------------ + void FsrRcasF(out FfxFloat32 pixR, // Output values, non-vector so port between RcasFilter() and RcasFilterH() is easy. + out FfxFloat32 pixG, + out FfxFloat32 pixB, +#ifdef FSR_RCAS_PASSTHROUGH_ALPHA + out FfxFloat32 pixA, +#endif + FfxUInt32x2 ip, // Integer pixel position in output. + FfxUInt32x4 con) + { // Constant generated by RcasSetup(). + // Algorithm uses minimal 3x3 pixel neighborhood. + // b + // d e f + // h + FfxInt32x2 sp = FfxInt32x2(ip); + FfxFloat32x3 b = FsrRcasLoadF(sp + FfxInt32x2(0, -1)).rgb; + FfxFloat32x3 d = FsrRcasLoadF(sp + FfxInt32x2(-1, 0)).rgb; +#ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat32x4 ee = FsrRcasLoadF(sp); + FfxFloat32x3 e = ee.rgb; + pixA = ee.a; +#else + FfxFloat32x3 e = FsrRcasLoadF(sp).rgb; +#endif + FfxFloat32x3 f = FsrRcasLoadF(sp + FfxInt32x2(1, 0)).rgb; + FfxFloat32x3 h = FsrRcasLoadF(sp + FfxInt32x2(0, 1)).rgb; + // Rename (32-bit) or regroup (16-bit). + FfxFloat32 bR = b.r; + FfxFloat32 bG = b.g; + FfxFloat32 bB = b.b; + FfxFloat32 dR = d.r; + FfxFloat32 dG = d.g; + FfxFloat32 dB = d.b; + FfxFloat32 eR = e.r; + FfxFloat32 eG = e.g; + FfxFloat32 eB = e.b; + FfxFloat32 fR = f.r; + FfxFloat32 fG = f.g; + FfxFloat32 fB = f.b; + FfxFloat32 hR = h.r; + FfxFloat32 hG = h.g; + FfxFloat32 hB = h.b; + // Run optional input transform. + FsrRcasInputF(bR, bG, bB); + FsrRcasInputF(dR, dG, dB); + FsrRcasInputF(eR, eG, eB); + FsrRcasInputF(fR, fG, fB); + FsrRcasInputF(hR, hG, hB); + // Luma times 2. + FfxFloat32 bL = bB * FfxFloat32(0.5) + (bR * FfxFloat32(0.5) + bG); + FfxFloat32 dL = dB * FfxFloat32(0.5) + (dR * FfxFloat32(0.5) + dG); + FfxFloat32 eL = eB * FfxFloat32(0.5) + (eR * FfxFloat32(0.5) + eG); + FfxFloat32 fL = fB * FfxFloat32(0.5) + (fR * FfxFloat32(0.5) + fG); + FfxFloat32 hL = hB * FfxFloat32(0.5) + (hR * FfxFloat32(0.5) + hG); + // Noise detection. + FfxFloat32 nz = FfxFloat32(0.25) * bL + FfxFloat32(0.25) * dL + FfxFloat32(0.25) * fL + FfxFloat32(0.25) * hL - eL; + nz = ffxSaturate(abs(nz) * ffxApproximateReciprocalMedium(ffxMax3(ffxMax3(bL, dL, eL), fL, hL) - ffxMin3(ffxMin3(bL, dL, eL), fL, hL))); + nz = FfxFloat32(-0.5) * nz + FfxFloat32(1.0); + // Min and max of ring. + FfxFloat32 mn4R = ffxMin(ffxMin3(bR, dR, fR), hR); + FfxFloat32 mn4G = ffxMin(ffxMin3(bG, dG, fG), hG); + FfxFloat32 mn4B = ffxMin(ffxMin3(bB, dB, fB), hB); + FfxFloat32 mx4R = max(ffxMax3(bR, dR, fR), hR); + FfxFloat32 mx4G = max(ffxMax3(bG, dG, fG), hG); + FfxFloat32 mx4B = max(ffxMax3(bB, dB, fB), hB); + // Immediate constants for peak range. + FfxFloat32x2 peakC = FfxFloat32x2(1.0, -1.0 * 4.0); + // Limiters, these need to be high precision RCPs. + FfxFloat32 hitMinR = mn4R * ffxReciprocal(FfxFloat32(4.0) * mx4R); + FfxFloat32 hitMinG = mn4G * ffxReciprocal(FfxFloat32(4.0) * mx4G); + FfxFloat32 hitMinB = mn4B * ffxReciprocal(FfxFloat32(4.0) * mx4B); + FfxFloat32 hitMaxR = (peakC.x - mx4R) * ffxReciprocal(FfxFloat32(4.0) * mn4R + peakC.y); + FfxFloat32 hitMaxG = (peakC.x - mx4G) * ffxReciprocal(FfxFloat32(4.0) * mn4G + peakC.y); + FfxFloat32 hitMaxB = (peakC.x - mx4B) * ffxReciprocal(FfxFloat32(4.0) * mn4B + peakC.y); + FfxFloat32 lobeR = max(-hitMinR, hitMaxR); + FfxFloat32 lobeG = max(-hitMinG, hitMaxG); + FfxFloat32 lobeB = max(-hitMinB, hitMaxB); + FfxFloat32 lobe = max(FfxFloat32(-FSR_RCAS_LIMIT), ffxMin(ffxMax3(lobeR, lobeG, lobeB), FfxFloat32(0.0))) * ffxAsFloat + (con.x); + // Apply noise removal. +#ifdef FSR_RCAS_DENOISE + lobe *= nz; +#endif + // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes. + FfxFloat32 rcpL = ffxApproximateReciprocalMedium(FfxFloat32(4.0) * lobe + FfxFloat32(1.0)); + pixR = (lobe * bR + lobe * dR + lobe * hR + lobe * fR + eR) * rcpL; + pixG = (lobe * bG + lobe * dG + lobe * hG + lobe * fG + eG) * rcpL; + pixB = (lobe * bB + lobe * dB + lobe * hB + lobe * fB + eB) * rcpL; + return; + } +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// NON-PACKED 16-BIT VERSION +//============================================================================================================================== +#if defined(FFX_GPU) && FFX_HALF == 1 && defined(FSR_RCAS_H) + // Input callback prototypes that need to be implemented by calling shader + FfxFloat16x4 FsrRcasLoadH(FfxInt16x2 p); + void FsrRcasInputH(inout FfxFloat16 r,inout FfxFloat16 g,inout FfxFloat16 b); +//------------------------------------------------------------------------------------------------------------------------------ + void FsrRcasH( + out FfxFloat16 pixR, // Output values, non-vector so port between RcasFilter() and RcasFilterH() is easy. + out FfxFloat16 pixG, + out FfxFloat16 pixB, + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + out FfxFloat16 pixA, + #endif + FfxUInt32x2 ip, // Integer pixel position in output. + FfxUInt32x4 con){ // Constant generated by RcasSetup(). + // Sharpening algorithm uses minimal 3x3 pixel neighborhood. + // b + // d e f + // h + FfxInt16x2 sp=FfxInt16x2(ip); + FfxFloat16x3 b=FsrRcasLoadH(sp+FfxInt16x2( 0,-1)).rgb; + FfxFloat16x3 d=FsrRcasLoadH(sp+FfxInt16x2(-1, 0)).rgb; + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat16x4 ee=FsrRcasLoadH(sp); + FfxFloat16x3 e=ee.rgb;pixA=ee.a; + #else + FfxFloat16x3 e=FsrRcasLoadH(sp).rgb; + #endif + FfxFloat16x3 f=FsrRcasLoadH(sp+FfxInt16x2( 1, 0)).rgb; + FfxFloat16x3 h=FsrRcasLoadH(sp+FfxInt16x2( 0, 1)).rgb; + // Rename (32-bit) or regroup (16-bit). + FfxFloat16 bR=b.r; + FfxFloat16 bG=b.g; + FfxFloat16 bB=b.b; + FfxFloat16 dR=d.r; + FfxFloat16 dG=d.g; + FfxFloat16 dB=d.b; + FfxFloat16 eR=e.r; + FfxFloat16 eG=e.g; + FfxFloat16 eB=e.b; + FfxFloat16 fR=f.r; + FfxFloat16 fG=f.g; + FfxFloat16 fB=f.b; + FfxFloat16 hR=h.r; + FfxFloat16 hG=h.g; + FfxFloat16 hB=h.b; + // Run optional input transform. + FsrRcasInputH(bR,bG,bB); + FsrRcasInputH(dR,dG,dB); + FsrRcasInputH(eR,eG,eB); + FsrRcasInputH(fR,fG,fB); + FsrRcasInputH(hR,hG,hB); + // Luma times 2. + FfxFloat16 bL=bB*FFX_BROADCAST_FLOAT16(0.5)+(bR*FFX_BROADCAST_FLOAT16(0.5)+bG); + FfxFloat16 dL=dB*FFX_BROADCAST_FLOAT16(0.5)+(dR*FFX_BROADCAST_FLOAT16(0.5)+dG); + FfxFloat16 eL=eB*FFX_BROADCAST_FLOAT16(0.5)+(eR*FFX_BROADCAST_FLOAT16(0.5)+eG); + FfxFloat16 fL=fB*FFX_BROADCAST_FLOAT16(0.5)+(fR*FFX_BROADCAST_FLOAT16(0.5)+fG); + FfxFloat16 hL=hB*FFX_BROADCAST_FLOAT16(0.5)+(hR*FFX_BROADCAST_FLOAT16(0.5)+hG); + // Noise detection. + FfxFloat16 nz=FFX_BROADCAST_FLOAT16(0.25)*bL+FFX_BROADCAST_FLOAT16(0.25)*dL+FFX_BROADCAST_FLOAT16(0.25)*fL+FFX_BROADCAST_FLOAT16(0.25)*hL-eL; + nz=ffxSaturate(abs(nz)*ffxApproximateReciprocalMediumHalf(ffxMax3Half(ffxMax3Half(bL,dL,eL),fL,hL)-ffxMin3Half(ffxMin3Half(bL,dL,eL),fL,hL))); + nz=FFX_BROADCAST_FLOAT16(-0.5)*nz+FFX_BROADCAST_FLOAT16(1.0); + // Min and max of ring. + FfxFloat16 mn4R=min(ffxMin3Half(bR,dR,fR),hR); + FfxFloat16 mn4G=min(ffxMin3Half(bG,dG,fG),hG); + FfxFloat16 mn4B=min(ffxMin3Half(bB,dB,fB),hB); + FfxFloat16 mx4R=max(ffxMax3Half(bR,dR,fR),hR); + FfxFloat16 mx4G=max(ffxMax3Half(bG,dG,fG),hG); + FfxFloat16 mx4B=max(ffxMax3Half(bB,dB,fB),hB); + // Immediate constants for peak range. + FfxFloat16x2 peakC=FfxFloat16x2(1.0,-1.0*4.0); + // Limiters, these need to be high precision RCPs. + FfxFloat16 hitMinR=mn4R*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mx4R); + FfxFloat16 hitMinG=mn4G*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mx4G); + FfxFloat16 hitMinB=mn4B*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mx4B); + FfxFloat16 hitMaxR=(peakC.x-mx4R)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mn4R+peakC.y); + FfxFloat16 hitMaxG=(peakC.x-mx4G)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mn4G+peakC.y); + FfxFloat16 hitMaxB=(peakC.x-mx4B)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16(4.0)*mn4B+peakC.y); + FfxFloat16 lobeR=max(-hitMinR,hitMaxR); + FfxFloat16 lobeG=max(-hitMinG,hitMaxG); + FfxFloat16 lobeB=max(-hitMinB,hitMaxB); + FfxFloat16 lobe=max(FFX_BROADCAST_FLOAT16(-FSR_RCAS_LIMIT),min(ffxMax3Half(lobeR,lobeG,lobeB),FFX_BROADCAST_FLOAT16(0.0)))*FFX_UINT32_TO_FLOAT16X2(con.y).x; + // Apply noise removal. + #ifdef FSR_RCAS_DENOISE + lobe*=nz; + #endif + // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes. + FfxFloat16 rcpL=ffxApproximateReciprocalMediumHalf(FFX_BROADCAST_FLOAT16(4.0)*lobe+FFX_BROADCAST_FLOAT16(1.0)); + pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL; + pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL; + pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL; +} +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// PACKED 16-BIT VERSION +//============================================================================================================================== +#if defined(FFX_GPU)&& FFX_HALF == 1 && defined(FSR_RCAS_HX2) + // Input callback prototypes that need to be implemented by the calling shader + FfxFloat16x4 FsrRcasLoadHx2(FfxInt16x2 p); + void FsrRcasInputHx2(inout FfxFloat16x2 r,inout FfxFloat16x2 g,inout FfxFloat16x2 b); +//------------------------------------------------------------------------------------------------------------------------------ + // Can be used to convert from packed Structures of Arrays to Arrays of Structures for store. + void FsrRcasDepackHx2(out FfxFloat16x4 pix0,out FfxFloat16x4 pix1,FfxFloat16x2 pixR,FfxFloat16x2 pixG,FfxFloat16x2 pixB){ + #ifdef FFX_HLSL + // Invoke a slower path for DX only, since it won't allow uninitialized values. + pix0.a=pix1.a=0.0; + #endif + pix0.rgb=FfxFloat16x3(pixR.x,pixG.x,pixB.x); + pix1.rgb=FfxFloat16x3(pixR.y,pixG.y,pixB.y);} +//------------------------------------------------------------------------------------------------------------------------------ + void FsrRcasHx2( + // Output values are for 2 8x8 tiles in a 16x8 region. + // pix.x = left 8x8 tile + // pix.y = right 8x8 tile + // This enables later processing to easily be packed as well. + out FfxFloat16x2 pixR, + out FfxFloat16x2 pixG, + out FfxFloat16x2 pixB, + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + out FfxFloat16x2 pixA, + #endif + FfxUInt32x2 ip, // Integer pixel position in output. + FfxUInt32x4 con){ // Constant generated by RcasSetup(). + // No scaling algorithm uses minimal 3x3 pixel neighborhood. + FfxInt16x2 sp0=FfxInt16x2(ip); + FfxFloat16x3 b0=FsrRcasLoadHx2(sp0+FfxInt16x2( 0,-1)).rgb; + FfxFloat16x3 d0=FsrRcasLoadHx2(sp0+FfxInt16x2(-1, 0)).rgb; + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat16x4 ee0=FsrRcasLoadHx2(sp0); + FfxFloat16x3 e0=ee0.rgb;pixA.r=ee0.a; + #else + FfxFloat16x3 e0=FsrRcasLoadHx2(sp0).rgb; + #endif + FfxFloat16x3 f0=FsrRcasLoadHx2(sp0+FfxInt16x2( 1, 0)).rgb; + FfxFloat16x3 h0=FsrRcasLoadHx2(sp0+FfxInt16x2( 0, 1)).rgb; + FfxInt16x2 sp1=sp0+FfxInt16x2(8,0); + FfxFloat16x3 b1=FsrRcasLoadHx2(sp1+FfxInt16x2( 0,-1)).rgb; + FfxFloat16x3 d1=FsrRcasLoadHx2(sp1+FfxInt16x2(-1, 0)).rgb; + #ifdef FSR_RCAS_PASSTHROUGH_ALPHA + FfxFloat16x4 ee1=FsrRcasLoadHx2(sp1); + FfxFloat16x3 e1=ee1.rgb;pixA.g=ee1.a; + #else + FfxFloat16x3 e1=FsrRcasLoadHx2(sp1).rgb; + #endif + FfxFloat16x3 f1=FsrRcasLoadHx2(sp1+FfxInt16x2( 1, 0)).rgb; + FfxFloat16x3 h1=FsrRcasLoadHx2(sp1+FfxInt16x2( 0, 1)).rgb; + // Arrays of Structures to Structures of Arrays conversion. + FfxFloat16x2 bR=FfxFloat16x2(b0.r,b1.r); + FfxFloat16x2 bG=FfxFloat16x2(b0.g,b1.g); + FfxFloat16x2 bB=FfxFloat16x2(b0.b,b1.b); + FfxFloat16x2 dR=FfxFloat16x2(d0.r,d1.r); + FfxFloat16x2 dG=FfxFloat16x2(d0.g,d1.g); + FfxFloat16x2 dB=FfxFloat16x2(d0.b,d1.b); + FfxFloat16x2 eR=FfxFloat16x2(e0.r,e1.r); + FfxFloat16x2 eG=FfxFloat16x2(e0.g,e1.g); + FfxFloat16x2 eB=FfxFloat16x2(e0.b,e1.b); + FfxFloat16x2 fR=FfxFloat16x2(f0.r,f1.r); + FfxFloat16x2 fG=FfxFloat16x2(f0.g,f1.g); + FfxFloat16x2 fB=FfxFloat16x2(f0.b,f1.b); + FfxFloat16x2 hR=FfxFloat16x2(h0.r,h1.r); + FfxFloat16x2 hG=FfxFloat16x2(h0.g,h1.g); + FfxFloat16x2 hB=FfxFloat16x2(h0.b,h1.b); + // Run optional input transform. + FsrRcasInputHx2(bR,bG,bB); + FsrRcasInputHx2(dR,dG,dB); + FsrRcasInputHx2(eR,eG,eB); + FsrRcasInputHx2(fR,fG,fB); + FsrRcasInputHx2(hR,hG,hB); + // Luma times 2. + FfxFloat16x2 bL=bB*FFX_BROADCAST_FLOAT16X2(0.5)+(bR*FFX_BROADCAST_FLOAT16X2(0.5)+bG); + FfxFloat16x2 dL=dB*FFX_BROADCAST_FLOAT16X2(0.5)+(dR*FFX_BROADCAST_FLOAT16X2(0.5)+dG); + FfxFloat16x2 eL=eB*FFX_BROADCAST_FLOAT16X2(0.5)+(eR*FFX_BROADCAST_FLOAT16X2(0.5)+eG); + FfxFloat16x2 fL=fB*FFX_BROADCAST_FLOAT16X2(0.5)+(fR*FFX_BROADCAST_FLOAT16X2(0.5)+fG); + FfxFloat16x2 hL=hB*FFX_BROADCAST_FLOAT16X2(0.5)+(hR*FFX_BROADCAST_FLOAT16X2(0.5)+hG); + // Noise detection. + FfxFloat16x2 nz=FFX_BROADCAST_FLOAT16X2(0.25)*bL+FFX_BROADCAST_FLOAT16X2(0.25)*dL+FFX_BROADCAST_FLOAT16X2(0.25)*fL+FFX_BROADCAST_FLOAT16X2(0.25)*hL-eL; + nz=ffxSaturate(abs(nz)*ffxApproximateReciprocalMediumHalf(ffxMax3Half(ffxMax3Half(bL,dL,eL),fL,hL)-ffxMin3Half(ffxMin3Half(bL,dL,eL),fL,hL))); + nz=FFX_BROADCAST_FLOAT16X2(-0.5)*nz+FFX_BROADCAST_FLOAT16X2(1.0); + // Min and max of ring. + FfxFloat16x2 mn4R=min(ffxMin3Half(bR,dR,fR),hR); + FfxFloat16x2 mn4G=min(ffxMin3Half(bG,dG,fG),hG); + FfxFloat16x2 mn4B=min(ffxMin3Half(bB,dB,fB),hB); + FfxFloat16x2 mx4R=max(ffxMax3Half(bR,dR,fR),hR); + FfxFloat16x2 mx4G=max(ffxMax3Half(bG,dG,fG),hG); + FfxFloat16x2 mx4B=max(ffxMax3Half(bB,dB,fB),hB); + // Immediate constants for peak range. + FfxFloat16x2 peakC=FfxFloat16x2(1.0,-1.0*4.0); + // Limiters, these need to be high precision RCPs. + FfxFloat16x2 hitMinR=mn4R*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mx4R); + FfxFloat16x2 hitMinG=mn4G*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mx4G); + FfxFloat16x2 hitMinB=mn4B*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mx4B); + FfxFloat16x2 hitMaxR=(peakC.x-mx4R)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mn4R+peakC.y); + FfxFloat16x2 hitMaxG=(peakC.x-mx4G)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mn4G+peakC.y); + FfxFloat16x2 hitMaxB=(peakC.x-mx4B)*ffxReciprocalHalf(FFX_BROADCAST_FLOAT16X2(4.0)*mn4B+peakC.y); + FfxFloat16x2 lobeR=max(-hitMinR,hitMaxR); + FfxFloat16x2 lobeG=max(-hitMinG,hitMaxG); + FfxFloat16x2 lobeB=max(-hitMinB,hitMaxB); + FfxFloat16x2 lobe=max(FFX_BROADCAST_FLOAT16X2(-FSR_RCAS_LIMIT),min(ffxMax3Half(lobeR,lobeG,lobeB),FFX_BROADCAST_FLOAT16X2(0.0)))*FFX_BROADCAST_FLOAT16X2(FFX_UINT32_TO_FLOAT16X2(con.y).x); + // Apply noise removal. + #ifdef FSR_RCAS_DENOISE + lobe*=nz; + #endif + // Resolve, which needs the medium precision rcp approximation to avoid visible tonality changes. + FfxFloat16x2 rcpL=ffxApproximateReciprocalMediumHalf(FFX_BROADCAST_FLOAT16X2(4.0)*lobe+FFX_BROADCAST_FLOAT16X2(1.0)); + pixR=(lobe*bR+lobe*dR+lobe*hR+lobe*fR+eR)*rcpL; + pixG=(lobe*bG+lobe*dG+lobe*hG+lobe*fG+eG)*rcpL; + pixB=(lobe*bB+lobe*dB+lobe*hB+lobe*fB+eB)*rcpL;} +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [LFGA] LINEAR FILM GRAIN APPLICATOR +// +//------------------------------------------------------------------------------------------------------------------------------ +// Adding output-resolution film grain after scaling is a good way to mask both rendering and scaling artifacts. +// Suggest using tiled blue noise as film grain input, with peak noise frequency set for a specific look and feel. +// The 'Lfga*()' functions provide a convenient way to introduce grain. +// These functions limit grain based on distance to signal limits. +// This is done so that the grain is temporally energy preserving, and thus won't modify image tonality. +// Grain application should be done in a linear colorspace. +// The grain should be temporally changing, but have a temporal sum per pixel that adds to zero (non-biased). +//------------------------------------------------------------------------------------------------------------------------------ +// Usage, +// FsrLfga*( +// color, // In/out linear colorspace color {0 to 1} ranged. +// grain, // Per pixel grain texture value {-0.5 to 0.5} ranged, input is 3-channel to support colored grain. +// amount); // Amount of grain (0 to 1} ranged. +//------------------------------------------------------------------------------------------------------------------------------ +// Example if grain texture is monochrome: 'FsrLfgaF(color,ffxBroadcast3(grain),amount)' +//============================================================================================================================== +#if defined(FFX_GPU) + // Maximum grain is the minimum distance to the signal limit. + void FsrLfgaF(inout FfxFloat32x3 c, FfxFloat32x3 t, FfxFloat32 a) + { + c += (t * ffxBroadcast3(a)) * ffxMin(ffxBroadcast3(1.0) - c, c); + } +#endif +//============================================================================================================================== +#if defined(FFX_GPU)&& FFX_HALF == 1 + // Half precision version (slower). + void FsrLfgaH(inout FfxFloat16x3 c, FfxFloat16x3 t, FfxFloat16 a) + { + c += (t * FFX_BROADCAST_FLOAT16X3(a)) * min(FFX_BROADCAST_FLOAT16X3(1.0) - c, c); + } + //------------------------------------------------------------------------------------------------------------------------------ + // Packed half precision version (faster). + void FsrLfgaHx2(inout FfxFloat16x2 cR,inout FfxFloat16x2 cG,inout FfxFloat16x2 cB,FfxFloat16x2 tR,FfxFloat16x2 tG,FfxFloat16x2 tB,FfxFloat16 a){ + cR+=(tR*FFX_BROADCAST_FLOAT16X2(a))*min(FFX_BROADCAST_FLOAT16X2(1.0)-cR,cR);cG+=(tG*FFX_BROADCAST_FLOAT16X2(a))*min(FFX_BROADCAST_FLOAT16X2(1.0)-cG,cG);cB+=(tB*FFX_BROADCAST_FLOAT16X2(a))*min(FFX_BROADCAST_FLOAT16X2(1.0)-cB,cB);} +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [SRTM] SIMPLE REVERSIBLE TONE-MAPPER +// +//------------------------------------------------------------------------------------------------------------------------------ +// This provides a way to take linear HDR color {0 to FP16_MAX} and convert it into a temporary {0 to 1} ranged post-tonemapped linear. +// The tonemapper preserves RGB ratio, which helps maintain HDR color bleed during filtering. +//------------------------------------------------------------------------------------------------------------------------------ +// Reversible tonemapper usage, +// FsrSrtm*(color); // {0 to FP16_MAX} converted to {0 to 1}. +// FsrSrtmInv*(color); // {0 to 1} converted into {0 to 32768, output peak safe for FP16}. +//============================================================================================================================== +#if defined(FFX_GPU) + void FsrSrtmF(inout FfxFloat32x3 c) + { + c *= ffxBroadcast3(ffxReciprocal(ffxMax3(c.r, c.g, c.b) + FfxFloat32(1.0))); + } + // The extra max solves the c=1.0 case (which is a /0). + void FsrSrtmInvF(inout FfxFloat32x3 c){c*=ffxBroadcast3(ffxReciprocal(max(FfxFloat32(1.0/32768.0),FfxFloat32(1.0)-ffxMax3(c.r,c.g,c.b))));} +#endif +//============================================================================================================================== +#if defined(FFX_GPU )&& FFX_HALF == 1 + void FsrSrtmH(inout FfxFloat16x3 c) + { + c *= FFX_BROADCAST_FLOAT16X3(ffxReciprocalHalf(ffxMax3Half(c.r, c.g, c.b) + FFX_BROADCAST_FLOAT16(1.0))); + } + void FsrSrtmInvH(inout FfxFloat16x3 c) + { + c *= FFX_BROADCAST_FLOAT16X3(ffxReciprocalHalf(max(FFX_BROADCAST_FLOAT16(1.0 / 32768.0), FFX_BROADCAST_FLOAT16(1.0) - ffxMax3Half(c.r, c.g, c.b)))); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrSrtmHx2(inout FfxFloat16x2 cR, inout FfxFloat16x2 cG, inout FfxFloat16x2 cB) + { + FfxFloat16x2 rcp = ffxReciprocalHalf(ffxMax3Half(cR, cG, cB) + FFX_BROADCAST_FLOAT16X2(1.0)); + cR *= rcp; + cG *= rcp; + cB *= rcp; + } + void FsrSrtmInvHx2(inout FfxFloat16x2 cR,inout FfxFloat16x2 cG,inout FfxFloat16x2 cB) + { + FfxFloat16x2 rcp=ffxReciprocalHalf(max(FFX_BROADCAST_FLOAT16X2(1.0/32768.0),FFX_BROADCAST_FLOAT16X2(1.0)-ffxMax3Half(cR,cG,cB))); + cR*=rcp; + cG*=rcp; + cB*=rcp; + } +#endif +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//_____________________________________________________________/\_______________________________________________________________ +//============================================================================================================================== +// +// FSR - [TEPD] TEMPORAL ENERGY PRESERVING DITHER +// +//------------------------------------------------------------------------------------------------------------------------------ +// Temporally energy preserving dithered {0 to 1} linear to gamma 2.0 conversion. +// Gamma 2.0 is used so that the conversion back to linear is just to square the color. +// The conversion comes in 8-bit and 10-bit modes, designed for output to 8-bit UNORM or 10:10:10:2 respectively. +// Given good non-biased temporal blue noise as dither input, +// the output dither will temporally conserve energy. +// This is done by choosing the linear nearest step point instead of perceptual nearest. +// See code below for details. +//------------------------------------------------------------------------------------------------------------------------------ +// DX SPEC RULES FOR FLOAT->UNORM 8-BIT CONVERSION +// =============================================== +// - Output is 'FfxUInt32(floor(saturate(n)*255.0+0.5))'. +// - Thus rounding is to nearest. +// - NaN gets converted to zero. +// - INF is clamped to {0.0 to 1.0}. +//============================================================================================================================== +#if defined(FFX_GPU) + // Hand tuned integer position to dither value, with more values than simple checkerboard. + // Only 32-bit has enough precision for this compddation. + // Output is {0 to <1}. + FfxFloat32 FsrTepdDitF(FfxUInt32x2 p, FfxUInt32 f) + { + FfxFloat32 x = FfxFloat32(p.x + f); + FfxFloat32 y = FfxFloat32(p.y); + // The 1.61803 golden ratio. + FfxFloat32 a = FfxFloat32((1.0 + ffxSqrt(5.0f)) / 2.0); + // Number designed to provide a good visual pattern. + FfxFloat32 b = FfxFloat32(1.0 / 3.69); + x = x * a + (y * b); + return ffxFract(x); + } + //------------------------------------------------------------------------------------------------------------------------------ + // This version is 8-bit gamma 2.0. + // The 'c' input is {0 to 1}. + // Output is {0 to 1} ready for image store. + void FsrTepdC8F(inout FfxFloat32x3 c, FfxFloat32 dit) + { + FfxFloat32x3 n = ffxSqrt(c); + n = floor(n * ffxBroadcast3(255.0)) * ffxBroadcast3(1.0 / 255.0); + FfxFloat32x3 a = n * n; + FfxFloat32x3 b = n + ffxBroadcast3(1.0 / 255.0); + b = b * b; + // Ratio of 'a' to 'b' required to produce 'c'. + // ffxApproximateReciprocal() won't work here (at least for very high dynamic ranges). + // ffxApproximateReciprocalMedium() is an IADD,FMA,MUL. + FfxFloat32x3 r = (c - b) * ffxApproximateReciprocalMedium(a - b); + // Use the ratio as a cutoff to choose 'a' or 'b'. + // ffxIsGreaterThanZero() is a MUL. + c = ffxSaturate(n + ffxIsGreaterThanZero(ffxBroadcast3(dit) - r) * ffxBroadcast3(1.0 / 255.0)); + } + //------------------------------------------------------------------------------------------------------------------------------ + // This version is 10-bit gamma 2.0. + // The 'c' input is {0 to 1}. + // Output is {0 to 1} ready for image store. + void FsrTepdC10F(inout FfxFloat32x3 c, FfxFloat32 dit) + { + FfxFloat32x3 n = ffxSqrt(c); + n = floor(n * ffxBroadcast3(1023.0)) * ffxBroadcast3(1.0 / 1023.0); + FfxFloat32x3 a = n * n; + FfxFloat32x3 b = n + ffxBroadcast3(1.0 / 1023.0); + b = b * b; + FfxFloat32x3 r = (c - b) * ffxApproximateReciprocalMedium(a - b); + c = ffxSaturate(n + ffxIsGreaterThanZero(ffxBroadcast3(dit) - r) * ffxBroadcast3(1.0 / 1023.0)); + } +#endif +//============================================================================================================================== +#if defined(FFX_GPU)&& FFX_HALF == 1 + FfxFloat16 FsrTepdDitH(FfxUInt32x2 p, FfxUInt32 f) + { + FfxFloat32 x = FfxFloat32(p.x + f); + FfxFloat32 y = FfxFloat32(p.y); + FfxFloat32 a = FfxFloat32((1.0 + ffxSqrt(5.0f)) / 2.0); + FfxFloat32 b = FfxFloat32(1.0 / 3.69); + x = x * a + (y * b); + return FfxFloat16(ffxFract(x)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC8H(inout FfxFloat16x3 c, FfxFloat16 dit) + { + FfxFloat16x3 n = sqrt(c); + n = floor(n * FFX_BROADCAST_FLOAT16X3(255.0)) * FFX_BROADCAST_FLOAT16X3(1.0 / 255.0); + FfxFloat16x3 a = n * n; + FfxFloat16x3 b = n + FFX_BROADCAST_FLOAT16X3(1.0 / 255.0); + b = b * b; + FfxFloat16x3 r = (c - b) * ffxApproximateReciprocalMediumHalf(a - b); + c = ffxSaturate(n + ffxIsGreaterThanZeroHalf(FFX_BROADCAST_FLOAT16X3(dit) - r) * FFX_BROADCAST_FLOAT16X3(1.0 / 255.0)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC10H(inout FfxFloat16x3 c, FfxFloat16 dit) + { + FfxFloat16x3 n = sqrt(c); + n = floor(n * FFX_BROADCAST_FLOAT16X3(1023.0)) * FFX_BROADCAST_FLOAT16X3(1.0 / 1023.0); + FfxFloat16x3 a = n * n; + FfxFloat16x3 b = n + FFX_BROADCAST_FLOAT16X3(1.0 / 1023.0); + b = b * b; + FfxFloat16x3 r = (c - b) * ffxApproximateReciprocalMediumHalf(a - b); + c = ffxSaturate(n + ffxIsGreaterThanZeroHalf(FFX_BROADCAST_FLOAT16X3(dit) - r) * FFX_BROADCAST_FLOAT16X3(1.0 / 1023.0)); + } + //============================================================================================================================== + // This computes dither for positions 'p' and 'p+{8,0}'. + FfxFloat16x2 FsrTepdDitHx2(FfxUInt32x2 p, FfxUInt32 f) + { + FfxFloat32x2 x; + x.x = FfxFloat32(p.x + f); + x.y = x.x + FfxFloat32(8.0); + FfxFloat32 y = FfxFloat32(p.y); + FfxFloat32 a = FfxFloat32((1.0 + ffxSqrt(5.0f)) / 2.0); + FfxFloat32 b = FfxFloat32(1.0 / 3.69); + x = x * ffxBroadcast2(a) + ffxBroadcast2(y * b); + return FfxFloat16x2(ffxFract(x)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC8Hx2(inout FfxFloat16x2 cR, inout FfxFloat16x2 cG, inout FfxFloat16x2 cB, FfxFloat16x2 dit) + { + FfxFloat16x2 nR = sqrt(cR); + FfxFloat16x2 nG = sqrt(cG); + FfxFloat16x2 nB = sqrt(cB); + nR = floor(nR * FFX_BROADCAST_FLOAT16X2(255.0)) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + nG = floor(nG * FFX_BROADCAST_FLOAT16X2(255.0)) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + nB = floor(nB * FFX_BROADCAST_FLOAT16X2(255.0)) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + FfxFloat16x2 aR = nR * nR; + FfxFloat16x2 aG = nG * nG; + FfxFloat16x2 aB = nB * nB; + FfxFloat16x2 bR = nR + FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + bR = bR * bR; + FfxFloat16x2 bG = nG + FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + bG = bG * bG; + FfxFloat16x2 bB = nB + FFX_BROADCAST_FLOAT16X2(1.0 / 255.0); + bB = bB * bB; + FfxFloat16x2 rR = (cR - bR) * ffxApproximateReciprocalMediumHalf(aR - bR); + FfxFloat16x2 rG = (cG - bG) * ffxApproximateReciprocalMediumHalf(aG - bG); + FfxFloat16x2 rB = (cB - bB) * ffxApproximateReciprocalMediumHalf(aB - bB); + cR = ffxSaturate(nR + ffxIsGreaterThanZeroHalf(dit - rR) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0)); + cG = ffxSaturate(nG + ffxIsGreaterThanZeroHalf(dit - rG) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0)); + cB = ffxSaturate(nB + ffxIsGreaterThanZeroHalf(dit - rB) * FFX_BROADCAST_FLOAT16X2(1.0 / 255.0)); + } + //------------------------------------------------------------------------------------------------------------------------------ + void FsrTepdC10Hx2(inout FfxFloat16x2 cR,inout FfxFloat16x2 cG,inout FfxFloat16x2 cB,FfxFloat16x2 dit){ + FfxFloat16x2 nR=sqrt(cR); + FfxFloat16x2 nG=sqrt(cG); + FfxFloat16x2 nB=sqrt(cB); + nR=floor(nR*FFX_BROADCAST_FLOAT16X2(1023.0))*FFX_BROADCAST_FLOAT16X2(1.0/1023.0); + nG=floor(nG*FFX_BROADCAST_FLOAT16X2(1023.0))*FFX_BROADCAST_FLOAT16X2(1.0/1023.0); + nB=floor(nB*FFX_BROADCAST_FLOAT16X2(1023.0))*FFX_BROADCAST_FLOAT16X2(1.0/1023.0); + FfxFloat16x2 aR=nR*nR; + FfxFloat16x2 aG=nG*nG; + FfxFloat16x2 aB=nB*nB; + FfxFloat16x2 bR=nR+FFX_BROADCAST_FLOAT16X2(1.0/1023.0);bR=bR*bR; + FfxFloat16x2 bG=nG+FFX_BROADCAST_FLOAT16X2(1.0/1023.0);bG=bG*bG; + FfxFloat16x2 bB=nB+FFX_BROADCAST_FLOAT16X2(1.0/1023.0);bB=bB*bB; + FfxFloat16x2 rR=(cR-bR)*ffxApproximateReciprocalMediumHalf(aR-bR); + FfxFloat16x2 rG=(cG-bG)*ffxApproximateReciprocalMediumHalf(aG-bG); + FfxFloat16x2 rB=(cB-bB)*ffxApproximateReciprocalMediumHalf(aB-bB); + cR=ffxSaturate(nR+ffxIsGreaterThanZeroHalf(dit-rR)*FFX_BROADCAST_FLOAT16X2(1.0/1023.0)); + cG=ffxSaturate(nG+ffxIsGreaterThanZeroHalf(dit-rG)*FFX_BROADCAST_FLOAT16X2(1.0/1023.0)); + cB = ffxSaturate(nB + ffxIsGreaterThanZeroHalf(dit - rB) * FFX_BROADCAST_FLOAT16X2(1.0 / 1023.0)); +} +#endif diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h new file mode 100644 index 000000000..a8c6daa0e --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_accumulate.h @@ -0,0 +1,172 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void Accumulate(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + // Avoid invalid values when accumulation and upsampled weight is 0 + data.fHistoryWeight *= FfxFloat32(data.fHistoryWeight > FSR3UPSCALER_FP16_MIN); + data.fHistoryWeight = ffxMax(FSR3UPSCALER_EPSILON, data.fHistoryWeight + data.fUpsampledWeight); + +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + //YCoCg -> RGB -> Tonemap -> YCoCg (Use RGB tonemapper to avoid color desaturation) + data.fUpsampledColor = RGBToYCoCg(Tonemap(YCoCgToRGB(data.fUpsampledColor))); + data.fHistoryColor = RGBToYCoCg(Tonemap(YCoCgToRGB(data.fHistoryColor))); +#endif + + const FfxFloat32 fAlpha = ffxSaturate(data.fUpsampledWeight / data.fHistoryWeight); + data.fHistoryColor = ffxLerp(data.fHistoryColor, data.fUpsampledColor, fAlpha); + data.fHistoryColor = YCoCgToRGB(data.fHistoryColor); + +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + data.fHistoryColor = InverseTonemap(data.fHistoryColor); +#endif +} + +void RectifyHistory( + const AccumulationPassCommonParams params, + FFX_PARAMETER_INOUT AccumulationPassData data +) +{ + const FfxFloat32 f4kVelocityFactor = ffxSaturate(params.f4KVelocity / 20.0f); + const FfxFloat32 fDistanceFactor = ffxSaturate(0.75f - params.fFarthestDepthInMeters / 20.0f); + const FfxFloat32 fAccumulationFactor = 1.0f - params.fAccumulation; + const FfxFloat32 fReactiveFactor = ffxPow(params.fReactiveMask, 1.0f / 2.0f); + const FfxFloat32 fShadingChangeFactor = params.fShadingChange; + const FfxFloat32 fBoxScaleT = ffxMax(f4kVelocityFactor, ffxMax(fDistanceFactor, ffxMax(fAccumulationFactor, ffxMax(fReactiveFactor, fShadingChangeFactor)))); + + const FfxFloat32 fBoxScale = ffxLerp(3.0f, 1.0f, fBoxScaleT); + const FfxFloat32x3 fScaledBoxVec = data.clippingBox.boxVec * FfxFloat32x3(1.7f, 1.0f, 1.0f) * fBoxScale; + + const FfxFloat32x3 fClampedScaledBoxVec = ffxMax(fScaledBoxVec, FfxFloat32x3(1.193e-7f, 1.193e-7f, 1.193e-7f)); + const FfxFloat32x3 fTransformedHistoryColor = (data.fHistoryColor - data.clippingBox.boxCenter) / fClampedScaledBoxVec; + + if (length(fTransformedHistoryColor)>1.f) { + const FfxFloat32x3 fClampedHistoryColor = normalize(fTransformedHistoryColor); + const FfxFloat32x3 fFinalClampedHistoryColor = (fClampedHistoryColor * fScaledBoxVec) + data.clippingBox.boxCenter; + + // Scale history color using rectification info, also using accumulation mask to avoid potential invalid color protection + const FfxFloat32 fHistoryContribution = ffxMax(params.fLumaInstabilityFactor, data.fLockContributionThisFrame) * params.fAccumulation * (1 - params.fDisocclusion); + data.fHistoryColor = ffxLerp(fFinalClampedHistoryColor, data.fHistoryColor, ffxSaturate(fHistoryContribution)); + } +} + +void UpdateLockStatus(AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + data.fLock *= FfxFloat32(params.bIsNewSample == false); + + const FfxFloat32 fLifetimeDecreaseFactor = ffxMax(ffxSaturate(params.fShadingChange), ffxMax(params.fReactiveMask, params.fDisocclusion)); + data.fLock = ffxMax(0.0f, data.fLock - fLifetimeDecreaseFactor * fLockMax); + + // Compute this frame lock contribution + data.fLockContributionThisFrame = ffxSaturate(ffxSaturate(data.fLock - fLockThreshold) * (fLockMax - fLockThreshold)); + + const FfxFloat32 fNewLockIntensity = LoadRwNewLocks(params.iPxHrPos) * (1.0f - ffxMax(params.fShadingChange * 0, params.fReactiveMask)); + data.fLock = ffxMax(0.0f, ffxMin(data.fLock + fNewLockIntensity, fLockMax)); + + // Preparing for next frame + const FfxFloat32 fLifetimeDecrease = (0.1f / JitterSequenceLength()) * (1.0f - fLifetimeDecreaseFactor); + data.fLock = ffxMax(0.0f, data.fLock - fLifetimeDecrease); + + // we expect similar motion for next frame + // kill lock if that location is outside screen, avoid locks to be clamped to screen borders + const FfxFloat32x2 fEstimatedUvNextFrame = params.fHrUv - params.fMotionVector; + data.fLock *= FfxFloat32(IsUvInside(fEstimatedUvNextFrame) == true); +} + +void ComputeBaseAccumulationWeight(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + FfxFloat32 fBaseAccumulation = params.fAccumulation; + + fBaseAccumulation = ffxMin(fBaseAccumulation, ffxLerp(fBaseAccumulation, 0.15f, ffxSaturate(ffxMax(0.0f, (params.f4KVelocity * VelocityFactor()) / 0.5f)))); + + data.fHistoryWeight = fBaseAccumulation; +} + +void InitPassData(FfxInt32x2 iPxHrPos, FFX_PARAMETER_INOUT AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + // Init constant params + params.iPxHrPos = iPxHrPos; + const FfxFloat32x2 fHrUv = (iPxHrPos + 0.5f) / UpscaleSize(); + params.fHrUv = fHrUv; + params.fLrUvJittered = fHrUv + Jitter() / RenderSize(); + params.fLrUv_HwSampler = ClampUv(params.fLrUvJittered, RenderSize(), MaxRenderSize()); + + params.fMotionVector = GetMotionVector(iPxHrPos, fHrUv); + params.f4KVelocity = Get4KVelocity(params.fMotionVector); + + ComputeReprojectedUVs(params); + + const FfxFloat32x2 fLumaInstabilityUv_HW = ClampUv(fHrUv, RenderSize(), MaxRenderSize()); + params.fLumaInstabilityFactor = SampleLumaInstability(fLumaInstabilityUv_HW); + + const FfxFloat32x2 fFarthestDepthUv = ClampUv(params.fLrUvJittered, RenderSize() / 2, GetFarthestDepthMip1ResourceDimensions()); + params.fFarthestDepthInMeters = SampleFarthestDepthMip1(fFarthestDepthUv); + params.bIsNewSample = (params.bIsExistingSample == false || 0 == FrameIndex()); + + const FfxFloat32x4 fDilatedReactiveMasks = SampleDilatedReactiveMasks(params.fLrUv_HwSampler); + params.fReactiveMask = ffxSaturate(fDilatedReactiveMasks[REACTIVE]); + params.fDisocclusion = ffxSaturate(fDilatedReactiveMasks[DISOCCLUSION]); + params.fShadingChange = ffxSaturate(fDilatedReactiveMasks[SHADING_CHANGE]); + params.fAccumulation = ffxSaturate(fDilatedReactiveMasks[ACCUMULAION]); + params.fAccumulation *= FfxFloat32(round(params.fAccumulation * 100.0f) > 1.0f); + + // Init variable data + data.fUpsampledColor = FfxFloat32x3(0.0f, 0.0f, 0.0f); + data.fHistoryColor = FfxFloat32x3(0.0f, 0.0f, 0.0f); + data.fHistoryWeight = 1.0f; + data.fUpsampledWeight = 0.0f; + data.fLock = 0.0f; + data.fLockContributionThisFrame = 0.0f; +} + +void Accumulate(FfxInt32x2 iPxHrPos) +{ + AccumulationPassCommonParams params; + AccumulationPassData data; + InitPassData(iPxHrPos, params, data); + + if (params.bIsExistingSample && !params.bIsNewSample) { + ReprojectHistoryColor(params, data); + } + + UpdateLockStatus(params, data); + + ComputeBaseAccumulationWeight(params, data); + + ComputeUpsampledColorAndWeight(params, data); + + RectifyHistory(params, data); + + Accumulate(params, data); + + data.fHistoryColor /= Exposure(); + + data.fHistoryColor = ffxMax(data.fHistoryColor, FfxFloat32x3(0.0f, 0.0f, 0.0f)); + + StoreInternalColorAndWeight(iPxHrPos, FfxFloat32x4(data.fHistoryColor, data.fLock)); + + // Output final color when RCAS is disabled +#if FFX_FSR3UPSCALER_OPTION_APPLY_SHARPENING == 0 + StoreUpscaledOutput(iPxHrPos, data.fHistoryColor); +#endif + StoreNewLocks(iPxHrPos, 0); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h new file mode 100644 index 000000000..d0cbf9d32 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h @@ -0,0 +1,903 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "ffx_fsr3upscaler_resources.h" + +#if defined(FFX_GPU) +#include "ffx_core.h" +#endif // #if defined(FFX_GPU) + +#if defined(FFX_GPU) +#ifndef FFX_PREFER_WAVE64 +#define FFX_PREFER_WAVE64 +#endif // FFX_PREFER_WAVE64 + +#if defined(FSR3UPSCALER_BIND_CB_FSR3UPSCALER) + layout (set = 0, binding = FSR3UPSCALER_BIND_CB_FSR3UPSCALER, std140) uniform cbFSR3UPSCALER_t + { + FfxInt32x2 iRenderSize; + FfxInt32x2 iPreviousFrameRenderSize; + + FfxInt32x2 iUpscaleSize; + FfxInt32x2 iPreviousFrameUpscaleSize; + + FfxInt32x2 iMaxRenderSize; + FfxInt32x2 iMaxUpscaleSize; + + FfxFloat32x4 fDeviceToViewDepth; + + FfxFloat32x2 fJitter; + FfxFloat32x2 fPreviousFrameJitter; + + FfxFloat32x2 fMotionVectorScale; + FfxFloat32x2 fDownscaleFactor; + + FfxFloat32x2 fMotionVectorJitterCancellation; + FfxFloat32 fTanHalfFOV; + FfxFloat32 fJitterSequenceLength; + + FfxFloat32 fDeltaTime; + FfxFloat32 fDeltaPreExposure; + FfxFloat32 fViewSpaceToMetersFactor; + FfxFloat32 fFrameIndex; + + FfxFloat32 fVelocityFactor; + FfxFloat32 fReactivenessScale; + FfxFloat32 fShadingChangeScale; + FfxFloat32 fAccumulationAddedPerFrame; + FfxFloat32 fMinDisocclusionAccumulation; + } cbFSR3Upscaler; + + +FfxInt32x2 RenderSize() +{ + return cbFSR3Upscaler.iRenderSize; +} + +FfxInt32x2 PreviousFrameRenderSize() +{ + return cbFSR3Upscaler.iPreviousFrameRenderSize; +} + +FfxInt32x2 MaxRenderSize() +{ + return cbFSR3Upscaler.iMaxRenderSize; +} + +FfxInt32x2 UpscaleSize() +{ + return cbFSR3Upscaler.iUpscaleSize; +} + +FfxInt32x2 PreviousFrameUpscaleSize() +{ + return cbFSR3Upscaler.iPreviousFrameUpscaleSize; +} + +FfxInt32x2 MaxUpscaleSize() +{ + return cbFSR3Upscaler.iMaxUpscaleSize; +} + +FfxFloat32x2 Jitter() +{ + return cbFSR3Upscaler.fJitter; +} + +FfxFloat32x2 PreviousFrameJitter() +{ + return cbFSR3Upscaler.fPreviousFrameJitter; +} + +FfxFloat32x4 DeviceToViewSpaceTransformFactors() +{ + return cbFSR3Upscaler.fDeviceToViewDepth; +} + +FfxFloat32x2 MotionVectorScale() +{ + return cbFSR3Upscaler.fMotionVectorScale; +} + +FfxFloat32x2 DownscaleFactor() +{ + return cbFSR3Upscaler.fDownscaleFactor; +} + +FfxFloat32x2 MotionVectorJitterCancellation() +{ + return cbFSR3Upscaler.fMotionVectorJitterCancellation; +} + +FfxFloat32 TanHalfFoV() +{ + return cbFSR3Upscaler.fTanHalfFOV; +} + +FfxFloat32 JitterSequenceLength() +{ + return cbFSR3Upscaler.fJitterSequenceLength; +} + +FfxFloat32 DeltaTime() +{ + return cbFSR3Upscaler.fDeltaTime; +} + +FfxFloat32 DeltaPreExposure() +{ + return cbFSR3Upscaler.fDeltaPreExposure; +} + +FfxFloat32 ViewSpaceToMetersFactor() +{ + return cbFSR3Upscaler.fViewSpaceToMetersFactor; +} + +FfxFloat32 FrameIndex() +{ + return cbFSR3Upscaler.fFrameIndex; +} + +FfxFloat32 VelocityFactor() +{ + return cbFSR3Upscaler.fVelocityFactor; +} + +FfxFloat32 AccumulationAddedPerFrame() +{ + return cbFSR3Upscaler.fAccumulationAddedPerFrame; +} + +FfxFloat32 MinDisocclusionAccumulation() +{ + return cbFSR3Upscaler.fMinDisocclusionAccumulation; +} + +#endif // #if defined(FSR3UPSCALER_BIND_CB_FSR3UPSCALER) + + +#if defined(FSR3UPSCALER_BIND_CB_AUTOREACTIVE) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_AUTOREACTIVE, std140) uniform cbGenerateReactive_t +{ + FfxFloat32 fTcThreshold; // 0.1 is a good starting value, lower will result in more TC pixels + FfxFloat32 fTcScale; + FfxFloat32 fReactiveScale; + FfxFloat32 fReactiveMax; +} cbGenerateReactive; + +FfxFloat32 TcThreshold() +{ + return cbGenerateReactive.fTcThreshold; +} + +FfxFloat32 TcScale() +{ + return cbGenerateReactive.fTcScale; +} + +FfxFloat32 ReactiveScale() +{ + return cbGenerateReactive.fReactiveScale; +} + +FfxFloat32 ReactiveMax() +{ + return cbGenerateReactive.fReactiveMax; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_AUTOREACTIVE) + +#if defined(FSR3UPSCALER_BIND_CB_RCAS) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_RCAS, std140) uniform cbRCAS_t +{ + FfxUInt32x4 rcasConfig; +} cbRCAS; + +FfxUInt32x4 RCASConfig() +{ + return cbRCAS.rcasConfig; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_RCAS) + + +#if defined(FSR3UPSCALER_BIND_CB_REACTIVE) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_REACTIVE, std140) uniform cbGenerateReactive_t +{ + FfxFloat32 gen_reactive_scale; + FfxFloat32 gen_reactive_threshold; + FfxFloat32 gen_reactive_binaryValue; + FfxUInt32 gen_reactive_flags; +} cbGenerateReactive; + +FfxFloat32 GenReactiveScale() +{ + return cbGenerateReactive.gen_reactive_scale; +} + +FfxFloat32 GenReactiveThreshold() +{ + return cbGenerateReactive.gen_reactive_threshold; +} + +FfxFloat32 GenReactiveBinaryValue() +{ + return cbGenerateReactive.gen_reactive_binaryValue; +} + +FfxUInt32 GenReactiveFlags() +{ + return cbGenerateReactive.gen_reactive_flags; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_REACTIVE) + + +#if defined(FSR3UPSCALER_BIND_CB_SPD) +layout(set = 0, binding = FSR3UPSCALER_BIND_CB_SPD, std140) uniform cbSPD_t +{ + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + FfxUInt32x2 renderSize; +} cbSPD; + +FfxUInt32 MipCount() +{ + return cbSPD.mips; +} + +FfxUInt32 NumWorkGroups() +{ + return cbSPD.numWorkGroups; +} + +FfxUInt32x2 WorkGroupOffset() +{ + return cbSPD.workGroupOffset; +} + +FfxUInt32x2 SPD_RenderSize() +{ + return cbSPD.renderSize; +} +#endif // #if defined(FSR3UPSCALER_BIND_CB_SPD) + +layout (set = 0, binding = 1000) uniform sampler s_PointClamp; +layout (set = 0, binding = 1001) uniform sampler s_LinearClamp; + +#if defined(FSR3UPSCALER_BIND_SRV_SPD_MIPS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_SPD_MIPS) uniform texture2D r_spd_mips; + +FfxInt32x2 GetSPDMipDimensions(FfxUInt32 uMipLevel) +{ + return textureSize(r_spd_mips, int(uMipLevel)).xy; +} + +FfxFloat32x2 SampleSPDMipLevel(FfxFloat32x2 fUV, FfxUInt32 mipLevel) +{ + return textureLod(sampler2D(r_spd_mips, s_LinearClamp), fUV, float(mipLevel)).rg; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_DEPTH) uniform texture2D r_input_depth; + +FfxFloat32 LoadInputDepth(FfxInt32x2 iPxPos) +{ + return texelFetch(r_input_depth, iPxPos, 0).r; +} + +FfxFloat32 SampleInputDepth(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_input_depth, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_REACTIVE_MASK) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_REACTIVE_MASK) uniform texture2D r_reactive_mask; + +FfxFloat32 LoadReactiveMask(FfxInt32x2 iPxPos) +{ + return texelFetch(r_reactive_mask, FfxInt32x2(iPxPos), 0).r * cbFSR3Upscaler.fReactivenessScale; +} + +FfxInt32x2 GetReactiveMaskResourceDimensions() +{ + return textureSize(r_reactive_mask, 0).xy; +} + +FfxFloat32 SampleReactiveMask(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_reactive_mask, s_LinearClamp), fUV, 0.0).x * cbFSR3Upscaler.fReactivenessScale; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK) uniform texture2D r_transparency_and_composition_mask; + +FfxFloat32 LoadTransparencyAndCompositionMask(FfxUInt32x2 iPxPos) +{ + return texelFetch(r_transparency_and_composition_mask, FfxInt32x2(iPxPos), 0).r; +} + +FfxInt32x2 GetTransparencyAndCompositionMaskResourceDimensions() +{ + return textureSize(r_transparency_and_composition_mask, 0).xy; +} + +FfxFloat32 SampleTransparencyAndCompositionMask(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_transparency_and_composition_mask, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_COLOR) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_COLOR) uniform texture2D r_input_color_jittered; + +FfxFloat32x3 LoadInputColor(FfxInt32x2 iPxPos) +{ + return texelFetch(r_input_color_jittered, iPxPos, 0).rgb; +} + +FfxFloat32x3 SampleInputColor(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_input_color_jittered, s_LinearClamp), fUV, 0.0).rgb; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS) uniform texture2D r_input_motion_vectors; + +FfxFloat32x2 LoadInputMotionVector(FfxInt32x2 iPxDilatedMotionVectorPos) +{ + FfxFloat32x2 fSrcMotionVector = texelFetch(r_input_motion_vectors, iPxDilatedMotionVectorPos, 0).xy; + + FfxFloat32x2 fUvMotionVector = fSrcMotionVector * MotionVectorScale(); + +#if FFX_FSR3UPSCALER_OPTION_JITTERED_MOTION_VECTORS + fUvMotionVector -= MotionVectorJitterCancellation(); +#endif + + return fUvMotionVector; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INTERNAL_UPSCALED) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INTERNAL_UPSCALED) uniform texture2D r_internal_upscaled_color; + +FfxFloat32x4 LoadHistory(FfxInt32x2 iPxHistory) +{ + return texelFetch(r_internal_upscaled_color, iPxHistory, 0); +} + +FfxFloat32x4 SampleHistory(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_internal_upscaled_color, s_LinearClamp), fUV, 0.0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_LUMA_HISTORY) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_LUMA_HISTORY, rgba8) uniform image2D rw_luma_history; + +void StoreLumaHistory(FfxInt32x2 iPxPos, FfxFloat32x4 fLumaHistory) +{ + imageStore(rw_luma_history, iPxPos, fLumaHistory); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_LUMA_HISTORY) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_LUMA_HISTORY) uniform texture2D r_luma_history; + +FfxFloat32x4 LoadLumaHistory(FfxInt32x2 iPxPos) +{ + return texelFetch(r_luma_history, iPxPos, 0); +} + +FfxFloat32x4 SampleLumaHistory(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_luma_history, s_LinearClamp), fUV, 0.0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_RCAS_INPUT) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_RCAS_INPUT) uniform texture2D r_rcas_input; + +FfxFloat32x4 LoadRCAS_Input(FfxInt32x2 iPxPos) +{ + return texelFetch(r_rcas_input, iPxPos, 0); +} + +FfxFloat32x3 SampleRCAS_Input(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_rcas_input, s_LinearClamp), fUV, 0.0).rgb; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_INTERNAL_UPSCALED) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_INTERNAL_UPSCALED, rgba16f) writeonly uniform image2D rw_internal_upscaled_color; + +void StoreReprojectedHistory(FfxInt32x2 iPxHistory, FfxFloat32x4 fHistory) +{ + imageStore(rw_internal_upscaled_color, iPxHistory, fHistory); +} + +void StoreInternalColorAndWeight(FfxInt32x2 iPxPos, FfxFloat32x4 fColorAndWeight) +{ + imageStore(rw_internal_upscaled_color, iPxPos, fColorAndWeight); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT /* app controlled format */) writeonly uniform image2D rw_upscaled_output; + +void StoreUpscaledOutput(FfxInt32x2 iPxPos, FfxFloat32x3 fColor) +{ + imageStore(rw_upscaled_output, iPxPos, FfxFloat32x4(fColor, 1.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_ACCUMULATION) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_ACCUMULATION) uniform texture2D r_accumulation; + +FfxFloat32 SampleAccumulation(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_accumulation, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_ACCUMULATION) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_ACCUMULATION, r8) uniform image2D rw_accumulation; + +void StoreAccumulation(FfxInt32x2 iPxPos, FfxFloat32 fAccumulation) +{ + imageStore(rw_accumulation, iPxPos, vec4(fAccumulation, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_SHADING_CHANGE) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_SHADING_CHANGE) uniform texture2D r_shading_change; + +FfxFloat32 LoadShadingChange(FfxInt32x2 iPxPos) +{ + return texelFetch(r_shading_change, iPxPos, 0).x * cbFSR3Upscaler.fShadingChangeScale; +} + +FfxFloat32 SampleShadingChange(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_shading_change, s_LinearClamp), fUV, 0.0).x * cbFSR3Upscaler.fShadingChangeScale; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_SHADING_CHANGE) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SHADING_CHANGE, r8) uniform image2D rw_shading_change; + +void StoreShadingChange(FfxInt32x2 iPxPos, FfxFloat32 fShadingChange) +{ + imageStore(rw_shading_change, iPxPos, vec4(fShadingChange, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH) uniform texture2D r_farthest_depth; + +FfxInt32x2 GetFarthestDepthResourceDimensions() +{ + return textureSize(r_farthest_depth, 0).xy; +} + +FfxFloat32 LoadFarthestDepth(FfxInt32x2 iPxPos) +{ + return texelFetch(r_farthest_depth, iPxPos, 0).x; +} + +FfxFloat32 SampleFarthestDepth(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_farthest_depth, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH, r16f) uniform image2D rw_farthest_depth; + +void StoreFarthestDepth(FfxInt32x2 iPxPos, FfxFloat32 fDepth) +{ + imageStore(rw_farthest_depth, iPxPos, vec4(fDepth, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1) uniform texture2D r_farthest_depth_mip1; + +FfxInt32x2 GetFarthestDepthMip1ResourceDimensions() +{ + return textureSize(r_farthest_depth_mip1, 0).xy; +} + +FfxFloat32 LoadFarthestDepthMip1(FfxInt32x2 iPxPos) +{ + return texelFetch(r_farthest_depth_mip1, iPxPos, 0).x; +} + +FfxFloat32 SampleFarthestDepthMip1(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_farthest_depth_mip1, s_LinearClamp), fUV, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH_MIP1) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH_MIP1, r16f) uniform image2D rw_farthest_depth_mip1; + +void StoreFarthestDepthMip1(FfxInt32x2 iPxPos, FfxFloat32 fDepth) +{ + imageStore(rw_farthest_depth_mip1, iPxPos, vec4(fDepth, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_CURRENT_LUMA) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_CURRENT_LUMA) uniform texture2D r_current_luma; + +FfxFloat32 LoadCurrentLuma(FfxInt32x2 iPxPos) +{ + return texelFetch(r_current_luma, iPxPos, 0).r; +} + +FfxFloat32 SampleCurrentLuma(FfxFloat32x2 uv) +{ + return textureLod(sampler2D(r_current_luma, s_LinearClamp), uv, 0.0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_CURRENT_LUMA) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_CURRENT_LUMA, r16f) uniform image2D rw_current_luma; + +void StoreCurrentLuma(FfxInt32x2 iPxPos, FfxFloat32 fLuma) +{ + imageStore(rw_current_luma, iPxPos, vec4(fLuma, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_LUMA_INSTABILITY) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_LUMA_INSTABILITY) uniform texture2D r_luma_instability; + +FfxFloat32 SampleLumaInstability(FfxFloat32x2 uv) +{ + return textureLod(sampler2D(r_luma_instability, s_LinearClamp), uv, 0.0).x; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_LUMA_INSTABILITY) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_LUMA_INSTABILITY, r16f) uniform image2D rw_luma_instability; + +void StoreLumaInstability(FfxInt32x2 iPxPos, FfxFloat32 fLumaInstability) +{ + imageStore(rw_luma_instability, iPxPos, vec4(fLumaInstability, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_PREVIOUS_LUMA) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_PREVIOUS_LUMA) uniform texture2D r_previous_luma; + +FfxFloat32 LoadPreviousLuma(FfxInt32x2 iPxPos) +{ + return texelFetch(r_previous_luma, iPxPos, 0).r; +} + +FfxFloat32 SamplePreviousLuma(FfxFloat32x2 uv) +{ + return textureLod(sampler2D(r_previous_luma, s_LinearClamp), uv, 0.0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_NEW_LOCKS) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_NEW_LOCKS) uniform texture2D r_new_locks; + +FfxFloat32 LoadNewLocks(FfxInt32x2 iPxPos) +{ + return texelFetch(r_new_locks, iPxPos, 0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_NEW_LOCKS) +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_NEW_LOCKS, r8) uniform image2D rw_new_locks; + +FfxFloat32 LoadRwNewLocks(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_new_locks, iPxPos).r; +} + +void StoreNewLocks(FfxInt32x2 iPxPos, FfxFloat32 newLock) +{ + imageStore(rw_new_locks, iPxPos, vec4(newLock, 0, 0, 0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH) uniform utexture2D r_reconstructed_previous_nearest_depth; + +FfxFloat32 LoadReconstructedPrevDepth(FfxInt32x2 iPxPos) +{ + return uintBitsToFloat(texelFetch(r_reconstructed_previous_nearest_depth, iPxPos, 0).r); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH, r32ui) uniform uimage2D rw_reconstructed_previous_nearest_depth; + +void StoreReconstructedDepth(FfxInt32x2 iPxSample, FfxFloat32 fDepth) +{ + FfxUInt32 uDepth = floatBitsToUint(fDepth); + + #if FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH + imageAtomicMax(rw_reconstructed_previous_nearest_depth, iPxSample, uDepth); + #else + imageAtomicMin(rw_reconstructed_previous_nearest_depth, iPxSample, uDepth); // min for standard, max for inverted depth + #endif +} + +void SetReconstructedDepth(FfxInt32x2 iPxSample, FfxUInt32 uValue) +{ + imageStore(rw_reconstructed_previous_nearest_depth, iPxSample, uvec4(uValue, 0, 0, 0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_DILATED_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_DILATED_DEPTH, r32f) writeonly uniform image2D rw_dilated_depth; + +void StoreDilatedDepth(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32 fDepth) +{ + imageStore(rw_dilated_depth, iPxPos, vec4(fDepth, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_DILATED_MOTION_VECTORS) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_DILATED_MOTION_VECTORS, rg16f) writeonly uniform image2D rw_dilated_motion_vectors; + +void StoreDilatedMotionVector(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 fMotionVector) +{ + imageStore(rw_dilated_motion_vectors, iPxPos, vec4(fMotionVector, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS) uniform texture2D r_dilated_motion_vectors; + +FfxFloat32x2 LoadDilatedMotionVector(FfxInt32x2 iPxInput) +{ + return texelFetch(r_dilated_motion_vectors, iPxInput, 0).xy; +} + +FfxFloat32x2 SampleDilatedMotionVector(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_dilated_motion_vectors, s_LinearClamp), fUV, 0.0).xy; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_DILATED_DEPTH) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_DILATED_DEPTH) uniform texture2D r_dilated_depth; + +FfxFloat32 LoadDilatedDepth(FfxInt32x2 iPxInput) +{ + return texelFetch(r_dilated_depth, iPxInput, 0).r; +} + +FfxFloat32 SampleDilatedDepth(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_dilated_depth, s_LinearClamp), fUV, 0.0).r; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE) uniform texture2D r_input_exposure; + +FfxFloat32 Exposure() +{ + FfxFloat32 exposure = texelFetch(r_input_exposure, FfxInt32x2(0, 0), 0).x; + + if (exposure == 0.0) { + exposure = 1.0; + } + + return exposure; +} +#endif + +// BEGIN: FSR3UPSCALER_BIND_SRV_LANCZOS_LUT +#if defined(FSR3UPSCALER_BIND_SRV_LANCZOS_LUT) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_LANCZOS_LUT) uniform texture2D r_lanczos_lut; +#endif + +FfxFloat32 SampleLanczos2Weight(FfxFloat32 x) +{ +#if defined(FSR3UPSCALER_BIND_SRV_LANCZOS_LUT) + return textureLod(sampler2D(r_lanczos_lut, s_LinearClamp), FfxFloat32x2(x / 2.0, 0.5), 0.0).x; +#else + return 0.f; +#endif +} +// END: FSR3UPSCALER_BIND_SRV_LANCZOS_LUT + +#if defined(FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS) uniform texture2D r_dilated_reactive_masks; + +FfxFloat32x4 SampleDilatedReactiveMasks(FfxFloat32x2 fUV) +{ + return textureLod(sampler2D(r_dilated_reactive_masks, s_LinearClamp), fUV, 0.0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_DILATED_REACTIVE_MASKS) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_DILATED_REACTIVE_MASKS, rgba8) writeonly uniform image2D rw_dilated_reactive_masks; + +void StoreDilatedReactiveMasks(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x4 fDilatedReactiveMasks) +{ + imageStore(rw_dilated_reactive_masks, iPxPos, fDilatedReactiveMasks); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY) +layout (set = 0, binding = FSR3UPSCALER_BIND_SRV_INPUT_OPAQUE_ONLY) uniform texture2D r_input_opaque_only; + +FfxFloat32x3 LoadOpaqueOnly(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos) +{ + return texelFetch(r_input_opaque_only, iPxPos, 0).xyz; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_PREV_PRE_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_PREV_PRE_ALPHA_COLOR) uniform texture2D r_input_prev_color_pre_alpha; + +FfxFloat32x3 LoadPrevPreAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos) +{ + return texelFetch(r_input_prev_color_pre_alpha, iPxPos, 0).xyz; +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_PREV_POST_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_PREV_POST_ALPHA_COLOR) uniform texture2D r_input_prev_color_post_alpha; + +FfxFloat32x3 LoadPrevPostAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos) +{ + return texelFetch(r_input_prev_color_post_alpha, iPxPos, 0).xyz; +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_AUTOREACTIVE) && \ + defined(FSR3UPSCALER_BIND_UAV_AUTOCOMPOSITION) + +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_AUTOREACTIVE, r32f) uniform image2D rw_output_autoreactive; +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_AUTOCOMPOSITION, r32f) uniform image2D rw_output_autocomposition; + +void StoreAutoReactive(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos, FFX_PARAMETER_IN FFX_MIN16_F2 fReactive) +{ + imageStore(rw_output_autoreactive, iPxPos, FfxFloat32x4(FfxFloat32(fReactive.x), 0.0, 0.0, 0.0)); + + imageStore(rw_output_autocomposition, iPxPos, FfxFloat32x4(FfxFloat32(fReactive.y), 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_PREV_PRE_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_PREV_PRE_ALPHA_COLOR, r11f_g11f_b10f) uniform image2D rw_output_prev_color_pre_alpha; + +void StorePrevPreAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos, FFX_PARAMETER_IN FFX_MIN16_F3 color) +{ + imageStore(rw_output_prev_color_pre_alpha, iPxPos, FfxFloat32x4(color, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_PREV_POST_ALPHA_COLOR) +layout(set = 0, binding = FSR3UPSCALER_BIND_UAV_PREV_POST_ALPHA_COLOR, r11f_g11f_b10f) uniform image2D rw_output_prev_color_post_alpha; + +void StorePrevPostAlpha(FFX_PARAMETER_IN FFX_MIN16_I2 iPxPos, FFX_PARAMETER_IN FFX_MIN16_F3 color) +{ + imageStore(rw_output_prev_color_post_alpha, iPxPos, FfxFloat32x4(color, 0.0)); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_FRAME_INFO) +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_FRAME_INFO, rgba32f) uniform image2D rw_frame_info; + +FfxFloat32x4 LoadFrameInfo() +{ + return imageLoad(rw_frame_info, ivec2(0, 0)); +} + +void StoreFrameInfo(FfxFloat32x4 fInfo) +{ + imageStore(rw_frame_info, ivec2(0, 0), fInfo); +} +#endif + +#if defined(FSR3UPSCALER_BIND_SRV_FRAME_INFO) +layout(set = 0, binding = FSR3UPSCALER_BIND_SRV_FRAME_INFO) uniform texture2D r_frame_info; + +FfxFloat32x4 FrameInfo() +{ + return texelFetch(r_frame_info, ivec2(0, 0), 0); +} +#endif + +#if defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4) && \ + defined(FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5) + +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0, rg16f) uniform image2D rw_spd_mip0; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1, rg16f) uniform image2D rw_spd_mip1; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2, rg16f) uniform image2D rw_spd_mip2; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3, rg16f) uniform image2D rw_spd_mip3; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4, rg16f) uniform image2D rw_spd_mip4; +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5, rg16f) coherent uniform image2D rw_spd_mip5; + +FfxFloat32x2 RWLoadPyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxUInt32 index) +{ +#define LOAD(idx) \ + if (index == idx) \ + { \ + return imageLoad(rw_spd_mip##idx, iPxPos).xy; \ + } + LOAD(0); + LOAD(1); + LOAD(2); + LOAD(3); + LOAD(4); + LOAD(5); + + return FfxFloat32x2(0.0, 0.0); + +#undef LOAD +} + +void StorePyramid(FFX_PARAMETER_IN FfxInt32x2 iPxPos, FFX_PARAMETER_IN FfxFloat32x2 outValue, FFX_PARAMETER_IN FfxUInt32 index) +{ +#define STORE(idx) \ + if (index == idx) \ + { \ + imageStore(rw_spd_mip##idx, iPxPos, vec4(outValue, 0.0, 0.0)); \ + } + + STORE(0); + STORE(1); + STORE(2); + STORE(3); + STORE(4); + STORE(5); + +#undef STORE +} +#endif + +#if defined FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC +layout (set = 0, binding = FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC, r32ui) coherent uniform uimage2D rw_spd_global_atomic; + +void SPD_IncreaseAtomicCounter(inout FfxUInt32 spdCounter) +{ + spdCounter = imageAtomicAdd(rw_spd_global_atomic, ivec2(0, 0), 1); +} + +void SPD_ResetAtomicCounter() +{ + imageStore(rw_spd_global_atomic, ivec2(0, 0), uvec4(0)); +} +#endif + +#endif // #if defined(FFX_GPU) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h new file mode 100644 index 000000000..87aa596db --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_common.h @@ -0,0 +1,403 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if !defined(FFX_FSR3UPSCALER_COMMON_H) +#define FFX_FSR3UPSCALER_COMMON_H + +#if defined(FFX_GPU) +#pragma warning(error : 3206) // treat vector truncation warnings as errors +#pragma warning(disable : 3205) // conversion from larger type to smaller +#pragma warning(disable : 3571) // in ffxPow(f, e), f could be negative + +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP16_MIN = 6.10e-05f; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP16_MAX = 65504.0f; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_EPSILON = FSR3UPSCALER_FP16_MIN; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_TONEMAP_EPSILON = FSR3UPSCALER_FP16_MIN; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP32_MAX = 3.402823466e+38f; +FFX_STATIC const FfxFloat32 FSR3UPSCALER_FP32_MIN = 1.175494351e-38f; + +// Reconstructed depth usage +FFX_STATIC const FfxFloat32 fReconstructedDepthBilinearWeightThreshold = FSR3UPSCALER_EPSILON * 10; + +FfxFloat32 ReconstructedDepthMvPxThreshold(FfxFloat32 fNearestDepthInMeters) +{ + return ffxLerp(0.25f, 0.75f, ffxSaturate(fNearestDepthInMeters / 100.0f)); +} + +// Accumulation +FFX_STATIC const FfxFloat32 fUpsampleLanczosWeightScale = 1.0f / 16.0f; +FFX_STATIC const FfxFloat32 fAverageLanczosWeightPerFrame = 0.74f * fUpsampleLanczosWeightScale; // Average lanczos weight for jitter accumulated samples +FFX_STATIC const FfxFloat32 fAccumulationMaxOnMotion = 3.0f * fUpsampleLanczosWeightScale; + +#define SHADING_CHANGE_SET_SIZE 5 +FFX_STATIC const FfxInt32 iShadingChangeMipStart = 0; +FFX_STATIC const FfxFloat32 fShadingChangeSamplePow = 1.0f / 1.0f; + + +FFX_STATIC const FfxFloat32 fLockThreshold = 1.0f; +FFX_STATIC const FfxFloat32 fLockMax = 2.0f; + +FFX_STATIC const FfxInt32 REACTIVE = 0; +FFX_STATIC const FfxInt32 DISOCCLUSION = 1; +FFX_STATIC const FfxInt32 SHADING_CHANGE = 2; +FFX_STATIC const FfxInt32 ACCUMULAION = 3; + +FFX_STATIC const FfxInt32 FRAME_INFO_EXPOSURE = 0; +FFX_STATIC const FfxInt32 FRAME_INFO_LOG_LUMA = 1; +FFX_STATIC const FfxInt32 FRAME_INFO_SCENE_AVERAGE_LUMA = 2; + +FfxBoolean TonemapFirstFrame() +{ + const FfxBoolean bEnabled = true; + return FrameIndex() == 0 && bEnabled; +} + +FfxFloat32 AverageLanczosWeightPerFrame() +{ + return 0.74f; +} + +FfxInt32x2 ShadingChangeRenderSize() +{ + return FfxInt32x2(RenderSize() * 0.5f); +} + +FfxInt32x2 ShadingChangeMaxRenderSize() +{ + return FfxInt32x2(MaxRenderSize() * 0.5f); +} + +FfxInt32x2 PreviousFrameShadingChangeRenderSize() +{ + return FfxInt32x2(PreviousFrameRenderSize() * 0.5f); +} + +#if defined(FSR3UPSCALER_BIND_SRV_FRAME_INFO) +FfxFloat32 SceneAverageLuma() +{ + return FrameInfo()[FRAME_INFO_SCENE_AVERAGE_LUMA]; +} +#endif + +// Auto exposure +FFX_STATIC const FfxFloat32 resetAutoExposureAverageSmoothing = 1e4f; + +struct AccumulationPassCommonParams +{ + FfxInt32x2 iPxHrPos; + FfxFloat32x2 fHrUv; + FfxFloat32x2 fLrUvJittered; + FfxFloat32x2 fLrUv_HwSampler; + FfxFloat32x2 fMotionVector; + FfxFloat32x2 fReprojectedHrUv; + FfxFloat32 f4KVelocity; + FfxFloat32 fDisocclusion; + FfxFloat32 fReactiveMask; + FfxFloat32 fShadingChange; + FfxFloat32 fAccumulation; + FfxFloat32 fLumaInstabilityFactor; + FfxFloat32 fFarthestDepthInMeters; + + FfxBoolean bIsExistingSample; + FfxBoolean bIsNewSample; +}; + +FfxFloat32 Get4KVelocity(FfxFloat32x2 fMotionVector) +{ + return length(fMotionVector * FfxFloat32x2(3840.0f, 2160.0f)); +} + +struct RectificationBox +{ + FfxFloat32x3 boxCenter; + FfxFloat32x3 boxVec; + FfxFloat32x3 aabbMin; + FfxFloat32x3 aabbMax; + FfxFloat32 fBoxCenterWeight; +}; + +struct AccumulationPassData +{ + RectificationBox clippingBox; + FfxFloat32x3 fUpsampledColor; + FfxFloat32 fUpsampledWeight; + FfxFloat32x3 fHistoryColor; + FfxFloat32 fHistoryWeight; + FfxFloat32 fLock; + FfxFloat32 fLockContributionThisFrame; +}; + +void RectificationBoxAddInitialSample(FFX_PARAMETER_INOUT RectificationBox rectificationBox, const FfxFloat32x3 colorSample, const FfxFloat32 fSampleWeight) +{ + rectificationBox.aabbMin = colorSample; + rectificationBox.aabbMax = colorSample; + + FfxFloat32x3 weightedSample = colorSample * fSampleWeight; + rectificationBox.boxCenter = weightedSample; + rectificationBox.boxVec = colorSample * weightedSample; + rectificationBox.fBoxCenterWeight = fSampleWeight; +} + +void RectificationBoxAddSample(FfxBoolean bInitialSample, FFX_PARAMETER_INOUT RectificationBox rectificationBox, const FfxFloat32x3 colorSample, const FfxFloat32 fSampleWeight) +{ + if (bInitialSample) { + RectificationBoxAddInitialSample(rectificationBox, colorSample, fSampleWeight); + } else { + rectificationBox.aabbMin = ffxMin(rectificationBox.aabbMin, colorSample); + rectificationBox.aabbMax = ffxMax(rectificationBox.aabbMax, colorSample); + + FfxFloat32x3 weightedSample = colorSample * fSampleWeight; + rectificationBox.boxCenter += weightedSample; + rectificationBox.boxVec += colorSample * weightedSample; + rectificationBox.fBoxCenterWeight += fSampleWeight; + } +} + +void RectificationBoxComputeVarianceBoxData(FFX_PARAMETER_INOUT RectificationBox rectificationBox) +{ + rectificationBox.fBoxCenterWeight = (abs(rectificationBox.fBoxCenterWeight) > FfxFloat32(FSR3UPSCALER_FP32_MIN) ? rectificationBox.fBoxCenterWeight : FfxFloat32(1.f)); + rectificationBox.boxCenter /= rectificationBox.fBoxCenterWeight; + rectificationBox.boxVec /= rectificationBox.fBoxCenterWeight; + FfxFloat32x3 stdDev = sqrt(abs(rectificationBox.boxVec - rectificationBox.boxCenter * rectificationBox.boxCenter)); + rectificationBox.boxVec = stdDev; +} + +FfxFloat32x3 SafeRcp3(FfxFloat32x3 v) +{ + return (all(FFX_NOT_EQUAL(v, FfxFloat32x3(0, 0, 0)))) ? (FfxFloat32x3(1, 1, 1) / v) : FfxFloat32x3(0, 0, 0); +} + +FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1, const FfxFloat32 fOnZeroReturnValue) +{ + const FfxFloat32 m = ffxMax(v0, v1); + return m != 0 ? ffxMin(v0, v1) / m : fOnZeroReturnValue; +} + +FfxFloat32 MinDividedByMax(const FfxFloat32 v0, const FfxFloat32 v1) +{ + const FfxFloat32 m = ffxMax(v0, v1); + return m != 0 ? ffxMin(v0, v1) / m : 0; +} + +FfxFloat32x3 YCoCgToRGB(FfxFloat32x3 fYCoCg) +{ + FfxFloat32x3 fRgb; + + fRgb = FfxFloat32x3( + fYCoCg.x + fYCoCg.y - fYCoCg.z, + fYCoCg.x + fYCoCg.z, + fYCoCg.x - fYCoCg.y - fYCoCg.z); + + return fRgb; +} + +FfxFloat32x3 RGBToYCoCg(FfxFloat32x3 fRgb) +{ + FfxFloat32x3 fYCoCg; + + fYCoCg = FfxFloat32x3( + 0.25f * fRgb.r + 0.5f * fRgb.g + 0.25f * fRgb.b, + 0.5f * fRgb.r - 0.5f * fRgb.b, + -0.25f * fRgb.r + 0.5f * fRgb.g - 0.25f * fRgb.b); + + return fYCoCg; +} + +FfxFloat32 RGBToLuma(FfxFloat32x3 fLinearRgb) +{ + return dot(fLinearRgb, FfxFloat32x3(0.2126f, 0.7152f, 0.0722f)); +} + +FfxFloat32 RGBToPerceivedLuma(FfxFloat32x3 fLinearRgb) +{ + FfxFloat32 fLuminance = RGBToLuma(fLinearRgb); + + FfxFloat32 fPercievedLuminance = 0; + if (fLuminance <= 216.0f / 24389.0f) { + fPercievedLuminance = fLuminance * (24389.0f / 27.0f); + } + else { + fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; + } + + return fPercievedLuminance * 0.01f; +} + +FfxFloat32x3 Tonemap(FfxFloat32x3 fRgb) +{ + return fRgb / (ffxMax(ffxMax(0.f, fRgb.r), ffxMax(fRgb.g, fRgb.b)) + 1.f).xxx; +} + +FfxFloat32x3 InverseTonemap(FfxFloat32x3 fRgb) +{ + return fRgb / ffxMax(FSR3UPSCALER_TONEMAP_EPSILON, 1.f - ffxMax(fRgb.r, ffxMax(fRgb.g, fRgb.b))).xxx; +} + +FfxBoolean IsUvInside(FfxFloat32x2 fUv) +{ + return (fUv.x >= 0.0f && fUv.x <= 1.0f) && (fUv.y >= 0.0f && fUv.y <= 1.0f); +} + +FfxInt32x2 ClampLoad(FfxInt32x2 iPxSample, FfxInt32x2 iPxOffset, FfxInt32x2 iTextureSize) +{ + FfxInt32x2 result = iPxSample + iPxOffset; + result.x = ffxMax(0, ffxMin(result.x, iTextureSize.x - 1)); + result.y = ffxMax(0, ffxMin(result.y, iTextureSize.y - 1)); + return result; +} + +FfxFloat32x2 ClampUv(FfxFloat32x2 fUv, FfxInt32x2 iTextureSize, FfxInt32x2 iResourceSize) +{ + const FfxFloat32x2 fSampleLocation = fUv * iTextureSize; + const FfxFloat32x2 fClampedLocation = ffxMax(FfxFloat32x2(0.5f, 0.5f), ffxMin(fSampleLocation, FfxFloat32x2(iTextureSize) - FfxFloat32x2(0.5f, 0.5f))); + const FfxFloat32x2 fClampedUv = fClampedLocation / FfxFloat32x2(iResourceSize); + + return fClampedUv; +} + +FfxBoolean IsOnScreen(FfxInt32x2 pos, FfxInt32x2 size) +{ + return all(FFX_LESS_THAN(FfxUInt32x2(pos), FfxUInt32x2(size))); +} + +FfxFloat32 ComputeAutoExposureFromLavg(FfxFloat32 Lavg) +{ + Lavg = exp(Lavg); + + const FfxFloat32 S = 100.0f; //ISO arithmetic speed + const FfxFloat32 K = 12.5f; + FfxFloat32 ExposureISO100 = log2((Lavg * S) / K); + + const FfxFloat32 q = 0.65f; + FfxFloat32 Lmax = (78.0f / (q * S)) * ffxPow(2.0f, ExposureISO100); + + return 1.0f / Lmax; +} + +FfxInt32x2 ComputeHrPosFromLrPos(FfxInt32x2 iPxLrPos) +{ + FfxFloat32x2 fSrcJitteredPos = FfxFloat32x2(iPxLrPos) + 0.5f - Jitter(); + FfxFloat32x2 fLrPosInHr = (fSrcJitteredPos / RenderSize()) * UpscaleSize(); + FfxInt32x2 iPxHrPos = FfxInt32x2(floor(fLrPosInHr)); + return iPxHrPos; +} + +FfxFloat32x2 ComputeNdc(FfxFloat32x2 fPxPos, FfxInt32x2 iSize) +{ + return fPxPos / FfxFloat32x2(iSize) * FfxFloat32x2(2.0f, -2.0f) + FfxFloat32x2(-1.0f, 1.0f); +} + +FfxFloat32 GetViewSpaceDepth(FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 fDeviceToViewDepth = DeviceToViewSpaceTransformFactors(); + + // fDeviceToViewDepth details found in ffx_fsr3upscaler.cpp + return (fDeviceToViewDepth[1] / (fDeviceDepth - fDeviceToViewDepth[0])); +} + +FfxFloat32 GetViewSpaceDepthInMeters(FfxFloat32 fDeviceDepth) +{ + return GetViewSpaceDepth(fDeviceDepth) * ViewSpaceToMetersFactor(); +} + +FfxFloat32x3 GetViewSpacePosition(FfxInt32x2 iViewportPos, FfxInt32x2 iViewportSize, FfxFloat32 fDeviceDepth) +{ + const FfxFloat32x4 fDeviceToViewDepth = DeviceToViewSpaceTransformFactors(); + + const FfxFloat32 Z = GetViewSpaceDepth(fDeviceDepth); + + const FfxFloat32x2 fNdcPos = ComputeNdc(iViewportPos, iViewportSize); + const FfxFloat32 X = fDeviceToViewDepth[2] * fNdcPos.x * Z; + const FfxFloat32 Y = fDeviceToViewDepth[3] * fNdcPos.y * Z; + + return FfxFloat32x3(X, Y, Z); +} + +FfxFloat32x3 GetViewSpacePositionInMeters(FfxInt32x2 iViewportPos, FfxInt32x2 iViewportSize, FfxFloat32 fDeviceDepth) +{ + return GetViewSpacePosition(iViewportPos, iViewportSize, fDeviceDepth) * ViewSpaceToMetersFactor(); +} + +FfxFloat32 GetMaxDistanceInMeters() +{ +#if FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH + return GetViewSpaceDepth(0.0f) * ViewSpaceToMetersFactor(); +#else + return GetViewSpaceDepth(1.0f) * ViewSpaceToMetersFactor(); +#endif +} + + +struct BilinearSamplingData +{ + FfxInt32x2 iOffsets[4]; + FfxFloat32 fWeights[4]; + FfxInt32x2 iBasePos; +}; + +BilinearSamplingData GetBilinearSamplingData(FfxFloat32x2 fUv, FfxInt32x2 iSize) +{ + BilinearSamplingData data; + + FfxFloat32x2 fPxSample = (fUv * iSize) - FfxFloat32x2(0.5f, 0.5f); + data.iBasePos = FfxInt32x2(floor(fPxSample)); + FfxFloat32x2 fPxFrac = ffxFract(fPxSample); + + data.iOffsets[0] = FfxInt32x2(0, 0); + data.iOffsets[1] = FfxInt32x2(1, 0); + data.iOffsets[2] = FfxInt32x2(0, 1); + data.iOffsets[3] = FfxInt32x2(1, 1); + + data.fWeights[0] = (1 - fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[1] = (fPxFrac.x) * (1 - fPxFrac.y); + data.fWeights[2] = (1 - fPxFrac.x) * (fPxFrac.y); + data.fWeights[3] = (fPxFrac.x) * (fPxFrac.y); + + return data; +} + +struct PlaneData +{ + FfxFloat32x3 fNormal; + FfxFloat32 fDistanceFromOrigin; +}; + +PlaneData GetPlaneFromPoints(FfxFloat32x3 fP0, FfxFloat32x3 fP1, FfxFloat32x3 fP2) +{ + PlaneData plane; + + FfxFloat32x3 v0 = fP0 - fP1; + FfxFloat32x3 v1 = fP0 - fP2; + plane.fNormal = normalize(cross(v0, v1)); + plane.fDistanceFromOrigin = -dot(fP0, plane.fNormal); + + return plane; +} + +FfxFloat32 PointToPlaneDistance(PlaneData plane, FfxFloat32x3 fPoint) +{ + return abs(dot(plane.fNormal, fPoint) + plane.fDistanceFromOrigin); +} + +#endif // #if defined(FFX_GPU) + +#endif //!defined(FFX_FSR3UPSCALER_COMMON_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h new file mode 100644 index 000000000..624b7ca94 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_instability.h @@ -0,0 +1,115 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +struct LumaInstabilityFactorData +{ + FfxFloat32x4 fLumaHistory; + FfxFloat32 fLumaInstabilityFactor; +}; + +LumaInstabilityFactorData ComputeLumaInstabilityFactor(LumaInstabilityFactorData data, FfxFloat32 fCurrentFrameLuma, FfxFloat32 fFarthestDepthInMeters) +{ + const FfxInt32 N_MINUS_1 = 0; + const FfxInt32 N_MINUS_2 = 1; + const FfxInt32 N_MINUS_3 = 2; + const FfxInt32 N_MINUS_4 = 3; + + FfxFloat32 fLumaInstability = 0.0f; + const FfxFloat32 fDiffs0 = (fCurrentFrameLuma - data.fLumaHistory[N_MINUS_1]); + const FfxFloat32 fSimilarity0 = MinDividedByMax(fCurrentFrameLuma, data.fLumaHistory[N_MINUS_1], 1.0f); + + FfxFloat32 fMaxSimilarity = fSimilarity0; + + if (fSimilarity0 < 1.0f) { + for (int i = N_MINUS_2; i <= N_MINUS_4; i++) { + const FfxFloat32 fDiffs1 = (fCurrentFrameLuma - data.fLumaHistory[i]); + const FfxFloat32 fSimilarity1 = MinDividedByMax(fCurrentFrameLuma, data.fLumaHistory[i]); + + if (sign(fDiffs0) == sign(fDiffs1)) { + + fMaxSimilarity = ffxMax(fMaxSimilarity, fSimilarity1); + } + } + + fLumaInstability = FfxFloat32(fMaxSimilarity > fSimilarity0); + } + + // Shift history + data.fLumaHistory[N_MINUS_4] = data.fLumaHistory[N_MINUS_3]; + data.fLumaHistory[N_MINUS_3] = data.fLumaHistory[N_MINUS_2]; + data.fLumaHistory[N_MINUS_2] = data.fLumaHistory[N_MINUS_1]; + data.fLumaHistory[N_MINUS_1] = fCurrentFrameLuma; + + data.fLumaHistory /= Exposure(); + + data.fLumaInstabilityFactor = fLumaInstability * FfxFloat32(data.fLumaHistory[N_MINUS_4] != 0); + + return data; +} + +void LumaInstability(FfxInt32x2 iPxPos) +{ + LumaInstabilityFactorData data; + data.fLumaInstabilityFactor = 0.0f; + data.fLumaHistory = FfxFloat32x4(0.0f, 0.0f, 0.0f, 0.0f); + + const FfxFloat32x2 fDilatedMotionVector = LoadDilatedMotionVector(iPxPos); + const FfxFloat32x2 fUv = (iPxPos + 0.5f) / RenderSize(); + const FfxFloat32x2 fUvCurrFrameJittered = fUv + Jitter() / RenderSize(); + const FfxFloat32x2 fUvPrevFrameJittered = fUv + PreviousFrameJitter() / PreviousFrameRenderSize(); + const FfxFloat32x2 fReprojectedUv = fUvPrevFrameJittered + fDilatedMotionVector; + + if (IsUvInside(fReprojectedUv)) + { + const FfxFloat32x2 fUvReactive_HW = ClampUv(fUvCurrFrameJittered, RenderSize(), MaxRenderSize()); + + const FfxFloat32x4 fDilatedReactiveMasks = SampleDilatedReactiveMasks(fUvReactive_HW); + const FfxFloat32 fReactiveMask = ffxSaturate(fDilatedReactiveMasks[REACTIVE]); + const FfxFloat32 fDisocclusion = ffxSaturate(fDilatedReactiveMasks[DISOCCLUSION]); + const FfxFloat32 fShadingChange = ffxSaturate(fDilatedReactiveMasks[SHADING_CHANGE]); + const FfxFloat32 fAccumulation = ffxSaturate(fDilatedReactiveMasks[ACCUMULAION]); + + const FfxBoolean bAccumulationFactor = fAccumulation > 0.9f; + + const FfxBoolean bComputeInstability = bAccumulationFactor; + + if (bComputeInstability) { + + const FfxFloat32x2 fUv_HW = ClampUv(fUvCurrFrameJittered, RenderSize(), MaxRenderSize()); + const FfxFloat32 fCurrentFrameLuma = SampleCurrentLuma(fUv_HW) * Exposure(); + + const FfxFloat32x2 fReprojectedUv_HW = ClampUv(fReprojectedUv, PreviousFrameRenderSize(), MaxRenderSize()); + data.fLumaHistory = SampleLumaHistory(fReprojectedUv_HW) * DeltaPreExposure() * Exposure(); + + const FfxFloat32x2 fFarthestDepthUv_HW = ClampUv(fUvCurrFrameJittered, RenderSize() / 2, GetFarthestDepthMip1ResourceDimensions()); + const FfxFloat32 fFarthestDepthInMeters = SampleFarthestDepthMip1(fFarthestDepthUv_HW); + + data = ComputeLumaInstabilityFactor(data, fCurrentFrameLuma, fFarthestDepthInMeters); + + const FfxFloat32 fVelocityWeight = 1.0f - ffxSaturate(Get4KVelocity(fDilatedMotionVector) / 20.0f); + data.fLumaInstabilityFactor *= fVelocityWeight * (1.0f - fDisocclusion) * (1.0f - fReactiveMask) * (1.0f - fShadingChange); + } + } + + StoreLumaHistory(iPxPos, data.fLumaHistory); + StoreLumaInstability(iPxPos, data.fLumaInstabilityFactor); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h new file mode 100644 index 000000000..41c5dc7f4 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h @@ -0,0 +1,192 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FFX_GROUPSHARED FfxUInt32 spdCounter; + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + SPD_IncreaseAtomicCounter(spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} + +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + SPD_ResetAtomicCounter(); +} + +#ifndef SPD_PACKED_ONLY +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FFX_STATIC const FfxInt32 LOG_LUMA = 0; +FFX_STATIC const FfxInt32 LUMA = 1; +FFX_STATIC const FfxInt32 DEPTH_IN_METERS = 2; + +FfxFloat32x4 SpdLoadSourceImage(FfxFloat32x2 iPxPos, FfxUInt32 slice) +{ + //We assume linear data. if non-linear input (sRGB, ...), + //then we should convert to linear first and back to sRGB on output. + const FfxInt32x2 iPxSamplePos = ClampLoad(FfxInt32x2(iPxPos), FfxInt32x2(0, 0), FfxInt32x2(RenderSize())); + + const FfxFloat32 fLuma = LoadCurrentLuma(iPxSamplePos); + const FfxFloat32 fLogLuma = ffxMax(FSR3UPSCALER_EPSILON, log(fLuma)); + const FfxFloat32 fFarthestDepthInMeters = LoadFarthestDepth(iPxSamplePos); + + FfxFloat32x4 fOutput = FfxFloat32x4(0.0f, 0.0f, 0.0f, 0.0f); + fOutput[LOG_LUMA] = fLogLuma; + fOutput[LUMA] = fLuma; + fOutput[DEPTH_IN_METERS] = fFarthestDepthInMeters; + + return fOutput; +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return FfxFloat32x4(RWLoadPyramid(tex, 5), 0, 0); +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return (v0 + v1 + v2 + v3) * 0.25f; +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + if (index == 5) + { + StorePyramid(pix, outValue.xy, index); + } + else if (index == 0) { + StoreFarthestDepthMip1(pix, outValue[DEPTH_IN_METERS]); + } + + if (index == MipCount() - 1) { //accumulate on 1x1 level + + if (all(FFX_EQUAL(pix, FfxInt32x2(0, 0)))) + { + FfxFloat32x4 frameInfo = LoadFrameInfo(); + const FfxFloat32 fSceneAvgLuma = outValue[LUMA]; + const FfxFloat32 fPrevLogLuma = frameInfo[FRAME_INFO_LOG_LUMA]; + FfxFloat32 fLogLuma = outValue[LOG_LUMA]; + + if (fPrevLogLuma < resetAutoExposureAverageSmoothing) // Compare Lavg, so small or negative values + { + fLogLuma = fPrevLogLuma + (fLogLuma - fPrevLogLuma) * (1.0f - exp(-DeltaTime())); + fLogLuma = ffxMax(0.0f, fLogLuma); + } + + frameInfo[FRAME_INFO_EXPOSURE] = ComputeAutoExposureFromLavg(fLogLuma); + frameInfo[FRAME_INFO_LOG_LUMA] = fLogLuma; + frameInfo[FRAME_INFO_SCENE_AVERAGE_LUMA] = fSceneAvgLuma; + + StoreFrameInfo(frameInfo); + } + } +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +#endif + +// define fetch and store functions Packed +#if FFX_HALF + +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateRG[16][16]; +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateBA[16][16]; + +FfxFloat16x4 SpdLoadSourceImageH(FfxFloat32x2 tex, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +FfxFloat16x4 SpdLoadH(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +void SpdStoreH(FfxInt32x2 p, FfxFloat16x4 value, FfxUInt32 mip, FfxUInt32 slice) +{ +} + +FfxFloat16x4 SpdLoadIntermediateH(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat16x4( + spdIntermediateRG[x][y].x, + spdIntermediateRG[x][y].y, + spdIntermediateBA[x][y].x, + spdIntermediateBA[x][y].y); +} + +void SpdStoreIntermediateH(FfxUInt32 x, FfxUInt32 y, FfxFloat16x4 value) +{ + spdIntermediateRG[x][y] = value.xy; + spdIntermediateBA[x][y] = value.zw; +} + +FfxFloat16x4 SpdReduce4H(FfxFloat16x4 v0, FfxFloat16x4 v1, FfxFloat16x4 v2, FfxFloat16x4 v3) +{ + return (v0 + v1 + v2 + v3) * FfxFloat16(0.25); +} +#endif + +#include "spd/ffx_spd.h" + +void ComputeAutoExposure(FfxUInt32x3 WorkGroupId, FfxUInt32 LocalThreadIndex) +{ +#if FFX_HALF + SpdDownsampleH( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#else + SpdDownsample( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#endif +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h new file mode 100644 index 000000000..59c765b52 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h @@ -0,0 +1,152 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void ReconstructPrevDepth(FfxInt32x2 iPxPos, FfxFloat32 fDepth, FfxFloat32x2 fMotionVector) +{ + const FfxFloat32 fNearestDepthInMeters = ffxMin(GetViewSpaceDepthInMeters(fDepth), FSR3UPSCALER_FP16_MAX); + const FfxFloat32 fReconstructedDeptMvThreshold = ReconstructedDepthMvPxThreshold(fNearestDepthInMeters); + + // Discard small mvs + fMotionVector *= FfxFloat32(Get4KVelocity(fMotionVector) > fReconstructedDeptMvThreshold); + + const FfxFloat32x2 fUv = (iPxPos + FfxFloat32(0.5)) / RenderSize(); + const FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + const BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, RenderSize()); + + // Project current depth into previous frame locations. + // Push to all pixels having some contribution if reprojection is using bilinear logic. + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4; iSampleIndex++) { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + const FfxInt32x2 iStorePos = bilinearInfo.iBasePos + iOffset; + if (IsOnScreen(iStorePos, RenderSize())) { + StoreReconstructedDepth(iStorePos, fDepth); + } + } + } +} + +struct DepthExtents +{ + FfxFloat32 fNearest; + FfxInt32x2 fNearestCoord; + FfxFloat32 fFarthest; +}; + +DepthExtents FindDepthExtents(FFX_PARAMETER_IN FfxInt32x2 iPxPos) +{ + DepthExtents extents; + const FfxInt32 iSampleCount = 9; + const FfxInt32x2 iSampleOffsets[iSampleCount] = { + FfxInt32x2(+0, +0), + FfxInt32x2(+1, +0), + FfxInt32x2(+0, +1), + FfxInt32x2(+0, -1), + FfxInt32x2(-1, +0), + FfxInt32x2(-1, +1), + FfxInt32x2(+1, +1), + FfxInt32x2(-1, -1), + FfxInt32x2(+1, -1), + }; + + // pull out the depth loads to allow SC to batch them + FfxFloat32 depth[9]; + FfxInt32 iSampleIndex = 0; + FFX_UNROLL + for (iSampleIndex = 0; iSampleIndex < iSampleCount; ++iSampleIndex) { + + FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + depth[iSampleIndex] = LoadInputDepth(iPos); + } + + // find closest depth + extents.fNearestCoord = iPxPos; + extents.fNearest = depth[0]; + extents.fFarthest = depth[0]; + FFX_UNROLL + for (iSampleIndex = 1; iSampleIndex < iSampleCount; ++iSampleIndex) { + + const FfxInt32x2 iPos = iPxPos + iSampleOffsets[iSampleIndex]; + if (IsOnScreen(iPos, RenderSize())) { + + FfxFloat32 fNdDepth = depth[iSampleIndex]; +#if FFX_FSR3UPSCALER_OPTION_INVERTED_DEPTH + if (fNdDepth > extents.fNearest) { + extents.fFarthest = ffxMin(extents.fFarthest, fNdDepth); +#else + if (fNdDepth < extents.fNearest) { + extents.fFarthest = ffxMax(extents.fFarthest, fNdDepth); +#endif + extents.fNearestCoord = iPos; + extents.fNearest = fNdDepth; + } + } + } + + return extents; +} + +FfxFloat32x2 DilateMotionVector(FfxInt32x2 iPxPos, const DepthExtents depthExtents) +{ +#if FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS + const FfxInt32x2 iSamplePos = iPxPos; + const FfxInt32x2 iMotionVectorPos = depthExtents.fNearestCoord; +#else + const FfxInt32x2 iSamplePos = ComputeHrPosFromLrPos(iPxPos); + const FfxInt32x2 iMotionVectorPos = ComputeHrPosFromLrPos(depthExtents.fNearestCoord); +#endif + + const FfxFloat32x2 fDilatedMotionVector = LoadInputMotionVector(iMotionVectorPos); + + return fDilatedMotionVector; +} + +FfxFloat32 GetCurrentFrameLuma(FfxInt32x2 iPxPos) +{ + //We assume linear data. if non-linear input (sRGB, ...), + //then we should convert to linear first and back to sRGB on output. + const FfxFloat32x3 fRgb = ffxMax(FfxFloat32x3(0, 0, 0), LoadInputColor(iPxPos)); + const FfxFloat32 fLuma = RGBToLuma(fRgb); + + return fLuma; +} + +void PrepareInputs(FfxInt32x2 iPxPos) +{ + const DepthExtents depthExtents = FindDepthExtents(iPxPos); + const FfxFloat32x2 fDilatedMotionVector = DilateMotionVector(iPxPos, depthExtents); + + ReconstructPrevDepth(iPxPos, depthExtents.fNearest, fDilatedMotionVector); + + StoreDilatedMotionVector(iPxPos, fDilatedMotionVector); + StoreDilatedDepth(iPxPos, depthExtents.fNearest); + + const FfxFloat32 fFarthestDepthInMeters = ffxMin(GetViewSpaceDepthInMeters(depthExtents.fFarthest), FSR3UPSCALER_FP16_MAX); + StoreFarthestDepth(iPxPos, fFarthestDepthInMeters); + + const FfxFloat32 fLuma = GetCurrentFrameLuma(iPxPos); + StoreCurrentLuma(iPxPos, fLuma); +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h new file mode 100644 index 000000000..ae24545c8 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h @@ -0,0 +1,283 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FfxFloat32 ComputeDisocclusions(FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxFloat32 fCurrentDepthViewSpace) +{ + const FfxFloat32 fNearestDepthInMeters = ffxMin(fCurrentDepthViewSpace * ViewSpaceToMetersFactor(), FSR3UPSCALER_FP16_MAX); + const FfxFloat32 fReconstructedDeptMvThreshold = ReconstructedDepthMvPxThreshold(fNearestDepthInMeters); + + fMotionVector *= FfxFloat32(Get4KVelocity(fMotionVector) > fReconstructedDeptMvThreshold); + + const FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + const BilinearSamplingData bilinearInfo = GetBilinearSamplingData(fReprojectedUv, RenderSize()); + + FfxFloat32 fDisocclusion = 0.0f; + FfxFloat32 fWeightSum = 0.0f; + FfxBoolean bPotentialDisocclusion = true; + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < 4 && bPotentialDisocclusion; iSampleIndex++) + { + + const FfxInt32x2 iOffset = bilinearInfo.iOffsets[iSampleIndex]; + const FfxInt32x2 iSamplePos = ClampLoad(bilinearInfo.iBasePos, iOffset, FfxInt32x2(RenderSize())); + + if (IsOnScreen(iSamplePos, RenderSize())) { + const FfxFloat32 fWeight = bilinearInfo.fWeights[iSampleIndex]; + if (fWeight > fReconstructedDepthBilinearWeightThreshold) { + + const FfxFloat32 fPrevNearestDepthViewSpace = GetViewSpaceDepth(LoadReconstructedPrevDepth(iSamplePos)); + const FfxFloat32 fDepthDifference = fCurrentDepthViewSpace - fPrevNearestDepthViewSpace; + + bPotentialDisocclusion = bPotentialDisocclusion && (fDepthDifference > FSR3UPSCALER_FP32_MIN); + + if (bPotentialDisocclusion) { + const FfxFloat32 fHalfViewportWidth = length(FfxFloat32x2(RenderSize()) * 0.5f); + const FfxFloat32 fDepthThreshold = ffxMax(fCurrentDepthViewSpace, fPrevNearestDepthViewSpace); + + const FfxFloat32 Ksep = 1.37e-05f; + const FfxFloat32 fRequiredDepthSeparation = Ksep * fHalfViewportWidth * fDepthThreshold; + + fDisocclusion += ffxSaturate(FfxFloat32(fRequiredDepthSeparation / fDepthDifference)) * fWeight; + fWeightSum += fWeight; + } + } + } + } + + fDisocclusion = (bPotentialDisocclusion && fWeightSum > 0) ? ffxSaturate(1.0f - fDisocclusion / fWeightSum) : 0.0f; + + return fDisocclusion; +} + +FfxFloat32 ComputeMotionDivergence(FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxFloat32 fCurrentDepthSample) +{ + const FfxInt32x2 iPxReprojectedPos = FfxInt32x2((fUv + fMotionVector) * RenderSize()); + const FfxFloat32 fReprojectedDepth = LoadDilatedDepth(iPxReprojectedPos); + const FfxFloat32x2 fReprojectedMotionVector = LoadDilatedMotionVector(iPxReprojectedPos); + + const FfxFloat32 fReprojectedVelocity = Get4KVelocity(fReprojectedMotionVector); + const FfxFloat32 f4KVelocity = Get4KVelocity(fMotionVector); + + const FfxFloat32 fMaxLen = max(length(fMotionVector), length(fReprojectedMotionVector)); + + const FfxFloat32 fNucleusDepthInMeters = GetViewSpaceDepthInMeters(fReprojectedDepth); + const FfxFloat32 fCurrentDepthInMeters = GetViewSpaceDepthInMeters(fCurrentDepthSample); + + const FfxFloat32 fDistanceFactor = MinDividedByMax(fNucleusDepthInMeters, fCurrentDepthInMeters); + const FfxFloat32 fVelocityFactor = ffxSaturate(f4KVelocity / 10.0f); + const FfxFloat32 fMotionVectorFieldConfidence = (1.0f - ffxSaturate(fReprojectedVelocity / f4KVelocity)) * fDistanceFactor * fVelocityFactor; + + return fMotionVectorFieldConfidence; +} + +FfxFloat32 DilateReactiveMasks(FfxInt32x2 iPxPos, FfxFloat32x2 fUv) +{ + FfxFloat32 fDilatedReactiveMasks = 0.0f; + + FFX_UNROLL + for (FfxInt32 y = -1; y <=1; y++) + { + FFX_UNROLL + for (FfxInt32 x = -1; x <= 1; x++) + { + const FfxInt32x2 sampleCoord = ClampLoad(iPxPos, FfxInt32x2(x, y), FfxInt32x2(RenderSize())); + fDilatedReactiveMasks = ffxMax(fDilatedReactiveMasks, LoadReactiveMask(sampleCoord)); + } + } + + return fDilatedReactiveMasks; +} + +FfxFloat32 DilateTransparencyAndCompositionMasks(FfxInt32x2 iPxPos, FfxFloat32x2 fUv) +{ + const FfxFloat32x2 fUvTransparencyAndCompositionMask = ClampUv(fUv, RenderSize(), GetTransparencyAndCompositionMaskResourceDimensions()); + return SampleTransparencyAndCompositionMask(fUvTransparencyAndCompositionMask); +} + +FfxFloat32 ComputeThinFeatureConfidence(FfxInt32x2 iPxPos) +{ + /* + 1 2 3 + 4 0 5 + 6 7 8 + */ + + const FfxInt32 iNucleusIndex = 0; + const FfxInt32 iSampleCount = 9; + const FfxInt32x2 iSampleOffsets[iSampleCount] = { + FfxInt32x2(+0, +0), + FfxInt32x2(-1, -1), + FfxInt32x2(+0, -1), + FfxInt32x2(+1, -1), + FfxInt32x2(-1, +0), + FfxInt32x2(+1, +0), + FfxInt32x2(-1, +1), + FfxInt32x2(+0, +1), + FfxInt32x2(+1, +1), + }; + + FfxFloat32 fSamples[iSampleCount]; + + FfxFloat32 fLumaMin = FSR3UPSCALER_FP32_MAX; + FfxFloat32 fLumaMax = FSR3UPSCALER_FP32_MIN; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 0; iSampleIndex < iSampleCount; ++iSampleIndex) { + const FfxInt32x2 iPxSamplePos = ClampLoad(iPxPos, iSampleOffsets[iSampleIndex], FfxInt32x2(RenderSize())); + fSamples[iSampleIndex] = LoadCurrentLuma(iPxSamplePos) * Exposure(); + + fLumaMin = ffxMin(fLumaMin, fSamples[iSampleIndex]); + fLumaMax = ffxMax(fLumaMax, fSamples[iSampleIndex]); + } + + const FfxFloat32 fThreshold = 0.9f; + FfxFloat32 fDissimilarLumaMin = FSR3UPSCALER_FP32_MAX; + FfxFloat32 fDissimilarLumaMax = 0; + +#define SETBIT(x) (1U << x) + + FfxUInt32 uPatternMask = SETBIT(iNucleusIndex); // Flag nucleus as similar + + const FfxUInt32 uNumRejectionMasks = 4; + const FfxUInt32 uRejectionMasks[uNumRejectionMasks] = { + SETBIT(1) | SETBIT(2) | SETBIT(4) | SETBIT(iNucleusIndex), // Upper left + SETBIT(2) | SETBIT(3) | SETBIT(5) | SETBIT(iNucleusIndex), // Upper right + SETBIT(4) | SETBIT(6) | SETBIT(7) | SETBIT(iNucleusIndex), // Lower left + SETBIT(5) | SETBIT(7) | SETBIT(8) | SETBIT(iNucleusIndex) // Lower right + }; + + FfxInt32 iBitIndex = 1; + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iSampleCount; ++iSampleIndex, ++iBitIndex) { + + const FfxFloat32 fDifference = abs(fSamples[iSampleIndex] - fSamples[iNucleusIndex]) / (fLumaMax - fLumaMin); + + if (fDifference < fThreshold) + { + uPatternMask |= SETBIT(iBitIndex); + } + else + { + fDissimilarLumaMin = ffxMin(fDissimilarLumaMin, fSamples[iSampleIndex]); + fDissimilarLumaMax = ffxMax(fDissimilarLumaMax, fSamples[iSampleIndex]); + } + } + + const FfxBoolean bIsRidge = fSamples[iNucleusIndex] > fDissimilarLumaMax || fSamples[iNucleusIndex] < fDissimilarLumaMin; + + if (FFX_FALSE == bIsRidge) + { + return 0.0f; + } + + FFX_UNROLL + for (FfxInt32 i = 0; i < uNumRejectionMasks; i++) + { + if ((uPatternMask & uRejectionMasks[i]) == uRejectionMasks[i]) + { + return 0.0f; + } + } + + return 1.0f - fLumaMin / fLumaMax; +} + +FfxFloat32 UpdateAccumulation(FfxInt32x2 iPxPos, FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector, FfxFloat32 fDisocclusion, FfxFloat32 fShadingChange) +{ + const FfxFloat32x2 fReprojectedUv = fUv + fMotionVector; + FfxFloat32 fAccumulation = 0.0f; + + if (IsUvInside(fReprojectedUv)) { + const FfxFloat32x2 fReprojectedUv_HW = ClampUv(fReprojectedUv, PreviousFrameRenderSize(), MaxRenderSize()); + fAccumulation = ffxSaturate(SampleAccumulation(fReprojectedUv_HW)); + } + const FfxFloat32 fAccumulationAddedPerFrame= AccumulationAddedPerFrame(); //default is 0.333 + + // Assume at frame N+0 fShadingChange is 1.0, and all subsequent frames fShadingChange is 0.0 and fDisocclusion is 0.0. Then, + // frame N+0 fAccumulation will be 0.000 + // frame N+2 fAccumulation will be 0.000 + 0.333 * 1 == 0.333 + // frame N+3 fAccumulation will be 0.000 + 0.333 * 2 == 0.666 + // frame N+4 fAccumulation will be 0.000 + 0.333 * 3 == 0.999 + fAccumulation = ffxLerp(fAccumulation, 0.0f, fShadingChange); + + const FfxFloat32 fMinDisocclusionAccumulation = MinDisocclusionAccumulation(); //default is -0.333 + // Assume at frame N+0 fDisocclusion is 1.0, and all subsequent frames fShadingChange is 0.0 and fDisocclusion is 0.0. Then, + // frame N+0 fAccumulation will be -0.333f (but normalized to store in unorm) + // frame N+1 fAccumulation will be -0.333f + 0.333 * 1 == 0.000 + // frame N+2 fAccumulation will be -0.333f + 0.333 * 2 == 0.333 + // frame N+3 fAccumulation will be -0.333f + 0.333 * 3 == 0.666 + // frame N+4 fAccumulation will be -0.333f + 0.333 * 4 == 0.999 + fAccumulation = ffxLerp(fAccumulation, ffxMin(fMinDisocclusionAccumulation, fAccumulation), fDisocclusion); + + fAccumulation *= FfxFloat32(round(fAccumulation * 100.0f) > 1.0f); + + // Update for next frame, normalize to store in unorm + const FfxFloat32 fAccumulatedFramesToStore = ffxSaturate(fAccumulation + fAccumulationAddedPerFrame); + StoreAccumulation(iPxPos, fAccumulatedFramesToStore); + + return fAccumulation; +} + +FfxFloat32 ComputeShadingChange(FfxFloat32x2 fUv) +{ + // NOTE: Here we re-apply jitter, will be reverted again when sampled in accumulation pass + const FfxFloat32x2 fShadingChangeUv = ClampUv(fUv - Jitter() / RenderSize(), ShadingChangeRenderSize(), ShadingChangeMaxRenderSize()); + const FfxFloat32 fShadingChange = ffxSaturate(SampleShadingChange(fShadingChangeUv)); + + return fShadingChange; +} + +void PrepareReactivity(FfxInt32x2 iPxPos) +{ + const FfxFloat32x2 fUv = (iPxPos + 0.5f) / RenderSize(); + const FfxFloat32x2 fMotionVector = LoadDilatedMotionVector(iPxPos); + + // Discard small mvs + const FfxFloat32 f4KVelocity = Get4KVelocity(fMotionVector); + + const FfxFloat32x2 fDilatedUv = fUv + fMotionVector; + const FfxFloat32 fDilatedDepth = LoadDilatedDepth(iPxPos); + const FfxFloat32 fDepthInMeters = GetViewSpaceDepthInMeters(fDilatedDepth); + + const FfxFloat32 fDisocclusion = ComputeDisocclusions(fUv, fMotionVector, GetViewSpaceDepth(fDilatedDepth)); + const FfxFloat32 fShadingChange = ffxMax(DilateReactiveMasks(iPxPos, fUv), ComputeShadingChange(fUv)); + + const FfxFloat32 fMotionDivergence = ComputeMotionDivergence(fUv, fMotionVector, fDilatedDepth); + const FfxFloat32 fDilatedTransparencyAndComposition = DilateTransparencyAndCompositionMasks(iPxPos, fUv); + const FfxFloat32 fFinalReactiveness = ffxMax(fMotionDivergence, fDilatedTransparencyAndComposition); + + const FfxFloat32 fAccumulation = UpdateAccumulation(iPxPos, fUv, fMotionVector, fDisocclusion, fShadingChange); + + FfxFloat32x4 fOutput; + fOutput[REACTIVE] = fFinalReactiveness; + fOutput[DISOCCLUSION] = fDisocclusion; + fOutput[SHADING_CHANGE] = fShadingChange; + fOutput[ACCUMULAION] = fAccumulation; + + StoreDilatedReactiveMasks(iPxPos, fOutput); + + const FfxFloat32 fLockStrength = ComputeThinFeatureConfidence(iPxPos); + if (fLockStrength > (1.0f / 100.0f)) + { + StoreNewLocks(ComputeHrPosFromLrPos(FfxInt32x2(iPxPos)), fLockStrength); + } +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h new file mode 100644 index 000000000..f48cffb93 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_rcas.h @@ -0,0 +1,112 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#define GROUP_SIZE 8 +#define FSR_RCAS_DENOISE 1 + +#include "ffx_core.h" + +#if FFX_HALF && defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) + #define FSR_RCAS_PREFER_PAIRED_VERSION 1 +#else + #define FSR_RCAS_PREFER_PAIRED_VERSION 0 +#endif + +void WriteUpscaledOutput(FFX_MIN16_U2 iPxHrPos, FfxFloat32x3 fUpscaledColor) +{ + StoreUpscaledOutput(FFX_MIN16_I2(iPxHrPos), fUpscaledColor); +} + +#if FSR_RCAS_PREFER_PAIRED_VERSION + #define FSR_RCAS_HX2 1 + FfxFloat16x4 FsrRcasLoadHx2(FfxInt16x2 p) + { + return FfxFloat16x4(LoadRCAS_Input(p)); + } + void FsrRcasInputHx2(inout FfxFloat16x2 r, inout FfxFloat16x2 g, inout FfxFloat16x2 b) + { + FfxFloat32 e = Exposure(); + r = FfxFloat16x2(r * e); + g = FfxFloat16x2(g * e); + b = FfxFloat16x2(b * e); + } + + #include "fsr1/ffx_fsr1.h" + + void CurrFilterPaired(FFX_MIN16_U2 pos) + { + FfxFloat16x2 cr; + FfxFloat16x2 cg; + FfxFloat16x2 cb; + FsrRcasHx2(cr, cg, cb, pos, RCASConfig()); + FfxFloat32 InvExposure = 1.0f / Exposure(); + cr = FfxFloat16x2(cr * InvExposure); + cg = FfxFloat16x2(cg * InvExposure); + cb = FfxFloat16x2(cb * InvExposure); + WriteUpscaledOutput(pos, FfxFloat16x3(cr.x, cg.x, cb.x)); //TODO: fix type + pos.x += 8; + WriteUpscaledOutput(pos, FfxFloat16x3(cr.y, cg.y, cb.y)); //TODO: fix type + } +#else + #define FSR_RCAS_F 1 + FfxFloat32x4 FsrRcasLoadF(FfxInt32x2 p) + { + FfxFloat32x4 fColor = LoadRCAS_Input(p); + + fColor.rgb *= Exposure(); + + return fColor; + } + void FsrRcasInputF(inout FfxFloat32 r, inout FfxFloat32 g, inout FfxFloat32 b) {} + + #include "fsr1/ffx_fsr1.h" + + void CurrFilter(FFX_MIN16_U2 pos) + { + FfxFloat32x3 c; + FsrRcasF(c.r, c.g, c.b, pos, RCASConfig()); + + c /= Exposure(); + + WriteUpscaledOutput(pos, c); + } + +#endif // #if FSR_RCAS_PREFER_PAIRED_VERSION + +void RCAS(FfxUInt32x3 LocalThreadId, FfxUInt32x3 WorkGroupId, FfxUInt32x3 Dtid) +{ + // Do remapping of local xy in workgroup for a more PS-like swizzle pattern. + FfxUInt32x2 gxy = ffxRemapForQuad(LocalThreadId.x) + FfxUInt32x2(WorkGroupId.x << 4u, WorkGroupId.y << 4u); +#if FSR_RCAS_PREFER_PAIRED_VERSION + CurrFilterPaired(FFX_MIN16_U2(gxy)); + gxy.y += 8u; + CurrFilterPaired(FFX_MIN16_U2(gxy)); +#else + CurrFilter(FFX_MIN16_U2(gxy)); + gxy.x += 8u; + CurrFilter(FFX_MIN16_U2(gxy)); + gxy.y += 8u; + CurrFilter(FFX_MIN16_U2(gxy)); + gxy.x -= 8u; + CurrFilter(FFX_MIN16_U2(gxy)); +#endif +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h new file mode 100644 index 000000000..c72f40fb6 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_reproject.h @@ -0,0 +1,79 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE +#define FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE 0 // Reference +#endif + +FfxFloat32x4 WrapHistory(FfxInt32x2 iPxSample) +{ + return LoadHistory(iPxSample); +} + +DeclareCustomFetchBicubicSamples(FetchHistorySamples, WrapHistory) +DeclareCustomTextureSample(HistorySample, FFX_FSR3UPSCALER_GET_LANCZOS_SAMPLER1D(FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE), FetchHistorySamples) + +#if FFX_HALF +FFX_MIN16_F4 WrapHistory16(FfxInt32x2 iPxSample) +{ + return FFX_MIN16_F4(LoadHistory(iPxSample)); +} + +DeclareCustomFetchBicubicSamplesMin16(FetchHistorySamples16, WrapHistory16) +DeclareCustomTextureSampleMin16(HistorySample16, FFX_FSR3UPSCALER_GET_LANCZOS_SAMPLER1D(FFX_FSR3UPSCALER_OPTION_REPROJECT_USE_LANCZOS_TYPE), FetchHistorySamples16) +#endif + +FfxFloat32x2 GetMotionVector(FfxInt32x2 iPxHrPos, FfxFloat32x2 fHrUv) +{ +#if FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS + const FfxFloat32x2 fDilatedMotionVector = LoadDilatedMotionVector(FFX_MIN16_I2(fHrUv * RenderSize())); +#else + const FfxFloat32x2 fDilatedMotionVector = LoadInputMotionVector(iPxHrPos); +#endif + + return fDilatedMotionVector; +} + +void ComputeReprojectedUVs(FFX_PARAMETER_INOUT AccumulationPassCommonParams params) +{ + params.fReprojectedHrUv = params.fHrUv + params.fMotionVector; + + params.bIsExistingSample = IsUvInside(params.fReprojectedHrUv); +} + +void ReprojectHistoryColor(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) + +{ +#if FFX_HALF && FFX_FSR3UPSCALER_OPTION_REPROJECT_SAMPLERS_USE_DATA_HALF + const FfxFloat32x4 fReprojectedHistory = FfxFloat32x4(HistorySample16(params.fReprojectedHrUv, UpscaleSize())); +#else + const FfxFloat32x4 fReprojectedHistory = HistorySample(params.fReprojectedHrUv, PreviousFrameUpscaleSize()); +#endif + + data.fHistoryColor = fReprojectedHistory.rgb; + data.fHistoryColor *= DeltaPreExposure(); + data.fHistoryColor *= Exposure(); + + data.fHistoryColor = RGBToYCoCg(data.fHistoryColor); + + data.fLock = fReprojectedHistory.w; +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h new file mode 100644 index 000000000..b3d8ddb17 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_resources.h @@ -0,0 +1,100 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FSR3UPSCALER_RESOURCES_H +#define FFX_FSR3UPSCALER_RESOURCES_H + +#if defined(FFX_CPU) || defined(FFX_GPU) +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_NULL 0 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_OPAQUE_ONLY 1 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_COLOR 2 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_MOTION_VECTORS 3 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_DEPTH 4 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_EXPOSURE 5 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_REACTIVE_MASK 6 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INPUT_TRANSPARENCY_AND_COMPOSITION_MASK 7 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_RECONSTRUCTED_PREVIOUS_NEAREST_DEPTH 8 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DILATED_MOTION_VECTORS 9 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DILATED_DEPTH 10 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_UPSCALED_COLOR 11 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_ACCUMULATION 12 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_NEW_LOCKS 13 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_HISTORY 14 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DEBUG_OUTPUT 15 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LANCZOS_LUT 16 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_ATOMIC_COUNT 17 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_UPSCALED_OUTPUT 18 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_RCAS_INPUT 19 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_ACCUMULATION_1 20 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_ACCUMULATION_2 21 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_UPSCALED_COLOR_1 22 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_UPSCALED_COLOR_2 23 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_DEFAULT_REACTIVITY 24 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_DEFAULT_TRANSPARENCY_AND_COMPOSITION 25 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_DILATED_REACTIVE_MASKS 26 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS 27 // same as FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_0 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_0 27 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_1 28 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_2 29 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_3 30 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_4 31 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SPD_MIPS_LEVEL_5 32 + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERNAL_DEFAULT_EXPOSURE 33 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_FRAME_INFO 34 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_AUTOREACTIVE 35 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_AUTOCOMPOSITION_DEPRECATED 36 + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_HISTORY_1 37 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_HISTORY_2 38 + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_1 40 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_2 41 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SHADING_CHANGE 42 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_FARTHEST_DEPTH 43 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_FARTHEST_DEPTH_MIP1 44 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_CURRENT_LUMA 45 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_PREVIOUS_LUMA 46 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_LUMA_INSTABILITY 48 +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_INTERMEDIATE_FP16x1 49 + + +// Shading change detection mip level setting, value must be in the range [FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_0, FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_12] +//#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_SHADING_CHANGE FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_4 +//#define FFX_FSR3UPSCALER_SHADING_CHANGE_MIP_LEVEL (FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE_MIPMAP_SHADING_CHANGE - FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_SCENE_LUMINANCE) + +#define FFX_FSR3UPSCALER_RESOURCE_IDENTIFIER_COUNT 60 + +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_FSR3UPSCALER 0 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_SPD 1 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_RCAS 2 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_IDENTIFIER_GENREACTIVE 3 +#define FFX_FSR3UPSCALER_CONSTANTBUFFER_COUNT 4 + +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_APPLY_TONEMAP 1 +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_APPLY_INVERSETONEMAP 2 +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_APPLY_THRESHOLD 4 +#define FFX_FSR3UPSCALER_AUTOREACTIVEFLAGS_USE_COMPONENTS_MAX 8 + +#endif // #if defined(FFX_CPU) || defined(FFX_GPU) + +#endif //!defined( FFX_FSR3UPSCALER_RESOURCES_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h new file mode 100644 index 000000000..7a723d556 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_sample.h @@ -0,0 +1,628 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_FSR3UPSCALER_SAMPLE_H +#define FFX_FSR3UPSCALER_SAMPLE_H + +// suppress warnings +#ifdef FFX_HLSL +#pragma warning(disable: 4008) // potentially divide by zero +#endif //FFX_HLSL + +struct FetchedBilinearSamples { + + FfxFloat32x4 fColor00; + FfxFloat32x4 fColor10; + + FfxFloat32x4 fColor01; + FfxFloat32x4 fColor11; +}; + +struct FetchedBicubicSamples { + + FfxFloat32x4 fColor00; + FfxFloat32x4 fColor10; + FfxFloat32x4 fColor20; + FfxFloat32x4 fColor30; + + FfxFloat32x4 fColor01; + FfxFloat32x4 fColor11; + FfxFloat32x4 fColor21; + FfxFloat32x4 fColor31; + + FfxFloat32x4 fColor02; + FfxFloat32x4 fColor12; + FfxFloat32x4 fColor22; + FfxFloat32x4 fColor32; + + FfxFloat32x4 fColor03; + FfxFloat32x4 fColor13; + FfxFloat32x4 fColor23; + FfxFloat32x4 fColor33; +}; + +#if FFX_HALF +struct FetchedBilinearSamplesMin16 { + + FFX_MIN16_F4 fColor00; + FFX_MIN16_F4 fColor10; + + FFX_MIN16_F4 fColor01; + FFX_MIN16_F4 fColor11; +}; + +struct FetchedBicubicSamplesMin16 { + + FFX_MIN16_F4 fColor00; + FFX_MIN16_F4 fColor10; + FFX_MIN16_F4 fColor20; + FFX_MIN16_F4 fColor30; + + FFX_MIN16_F4 fColor01; + FFX_MIN16_F4 fColor11; + FFX_MIN16_F4 fColor21; + FFX_MIN16_F4 fColor31; + + FFX_MIN16_F4 fColor02; + FFX_MIN16_F4 fColor12; + FFX_MIN16_F4 fColor22; + FFX_MIN16_F4 fColor32; + + FFX_MIN16_F4 fColor03; + FFX_MIN16_F4 fColor13; + FFX_MIN16_F4 fColor23; + FFX_MIN16_F4 fColor33; +}; +#else //FFX_HALF +#define FetchedBicubicSamplesMin16 FetchedBicubicSamples +#define FetchedBilinearSamplesMin16 FetchedBilinearSamples +#endif //FFX_HALF + +FfxFloat32x4 Linear(FfxFloat32x4 A, FfxFloat32x4 B, FfxFloat32 t) +{ + return A + (B - A) * t; +} + +FfxFloat32x4 Bilinear(FetchedBilinearSamples BilinearSamples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Linear(BilinearSamples.fColor00, BilinearSamples.fColor10, fPxFrac.x); + FfxFloat32x4 fColorX1 = Linear(BilinearSamples.fColor01, BilinearSamples.fColor11, fPxFrac.x); + FfxFloat32x4 fColorXY = Linear(fColorX0, fColorX1, fPxFrac.y); + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Linear(FFX_MIN16_F4 A, FFX_MIN16_F4 B, FFX_MIN16_F t) +{ + return A + (B - A) * t; +} + +FFX_MIN16_F4 Bilinear(FetchedBilinearSamplesMin16 BilinearSamples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Linear(BilinearSamples.fColor00, BilinearSamples.fColor10, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Linear(BilinearSamples.fColor01, BilinearSamples.fColor11, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Linear(fColorX0, fColorX1, fPxFrac.y); + return fColorXY; +} +#endif + +FfxFloat32 Lanczos2NoClamp(FfxFloat32 x) +{ + const FfxFloat32 PI = 3.141592653589793f; // TODO: share SDK constants + return abs(x) < FSR3UPSCALER_EPSILON ? 1.f : (sin(PI * x) / (PI * x)) * (sin(0.5f * PI * x) / (0.5f * PI * x)); +} + +FfxFloat32 Lanczos2(FfxFloat32 x) +{ + x = ffxMin(abs(x), 2.0f); + return Lanczos2NoClamp(x); +} + +#if FFX_HALF + +#if 0 +FFX_MIN16_F Lanczos2NoClamp(FFX_MIN16_F x) +{ + const FFX_MIN16_F PI = FFX_MIN16_F(3.141592653589793f); // TODO: share SDK constants + return abs(x) < FFX_MIN16_F(FSR3UPSCALER_EPSILON) ? FFX_MIN16_F(1.f) : (sin(PI * x) / (PI * x)) * (sin(FFX_MIN16_F(0.5f) * PI * x) / (FFX_MIN16_F(0.5f) * PI * x)); +} +#endif + +FFX_MIN16_F Lanczos2(FFX_MIN16_F x) +{ + x = ffxMin(abs(x), FFX_MIN16_F(2.0f)); + return FFX_MIN16_F(Lanczos2NoClamp(x)); +} +#endif //FFX_HALF + +// FSR1 lanczos approximation. Input is x*x and must be <= 4. +FfxFloat32 Lanczos2ApproxSqNoClamp(FfxFloat32 x2) +{ + FfxFloat32 a = (2.0f / 5.0f) * x2 - 1; + FfxFloat32 b = (1.0f / 4.0f) * x2 - 1; + return ((25.0f / 16.0f) * a * a - (25.0f / 16.0f - 1)) * (b * b); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2ApproxSqNoClamp(FFX_MIN16_F x2) +{ + FFX_MIN16_F a = FFX_MIN16_F(2.0f / 5.0f) * x2 - FFX_MIN16_F(1); + FFX_MIN16_F b = FFX_MIN16_F(1.0f / 4.0f) * x2 - FFX_MIN16_F(1); + return (FFX_MIN16_F(25.0f / 16.0f) * a * a - FFX_MIN16_F(25.0f / 16.0f - 1)) * (b * b); +} + +#if defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) +FFX_MIN16_F2 PairedLanczos2ApproxSqNoClamp(FFX_MIN16_F2 x2) +{ + // Xbox ATG (Pavel): + // + // 2.0 * x2 - 5.0 25.0 25.0 - 16.0 (2.0 * x2 - 5.0)^2 - (3.0)^2 (2.0 * x2 - 8.0) * (2.0 * x2 - 2.0) (x2 - 4.0) * (x2 - 1.0) + // a = -------------- ==> ---- * a^2 - -------------- = ----------------------------- = ---------------------------------- = ----------------------- = b * (x2 - 1.0) + // 5.0 16.0 16.0 16.0 16.0 4.0 + // + // so we need to compute just (b * b) * (b * x2 - b), so we should get four packed instructions: 2 fma + 2 mul + // + + FFX_MIN16_F2 b = (0.25 * x2 - 1.0); + return (b * b) * (b * x2 - b); +} +#endif + +#endif //FFX_HALF + +FfxFloat32 Lanczos2ApproxSq(FfxFloat32 x2) +{ + x2 = ffxMin(x2, 4.0f); + return Lanczos2ApproxSqNoClamp(x2); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2ApproxSq(FFX_MIN16_F x2) +{ + x2 = ffxMin(x2, FFX_MIN16_F(4.0f)); + return Lanczos2ApproxSqNoClamp(x2); +} + +#if defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) +FFX_MIN16_F2 PairedLanczos2ApproxSq(FFX_MIN16_F2 x2) +{ + x2 = ffxMin(x2, FFX_MIN16_F2(4.0, 4.0)); + return PairedLanczos2ApproxSqNoClamp(x2); +} +#endif +#endif //FFX_HALF + +FfxFloat32 Lanczos2ApproxNoClamp(FfxFloat32 x) +{ + return Lanczos2ApproxSqNoClamp(x * x); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2ApproxNoClamp(FFX_MIN16_F x) +{ + return Lanczos2ApproxSqNoClamp(x * x); +} +#endif //FFX_HALF + +FfxFloat32 Lanczos2Approx(FfxFloat32 x) +{ + return Lanczos2ApproxSq(x * x); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2Approx(FFX_MIN16_F x) +{ + return Lanczos2ApproxSq(x * x); +} +#endif //FFX_HALF + +FfxFloat32 Lanczos2_UseLUT(FfxFloat32 x) +{ + return SampleLanczos2Weight(abs(x)); +} + +#if FFX_HALF +FFX_MIN16_F Lanczos2_UseLUT(FFX_MIN16_F x) +{ + return FFX_MIN16_F(SampleLanczos2Weight(abs(x))); +} +#endif //FFX_HALF + +FfxFloat32x4 Lanczos2_UseLUT(FfxFloat32x4 fColor0, FfxFloat32x4 fColor1, FfxFloat32x4 fColor2, FfxFloat32x4 fColor3, FfxFloat32 t) +{ + FfxFloat32 fWeight0 = Lanczos2_UseLUT(-1.f - t); + FfxFloat32 fWeight1 = Lanczos2_UseLUT(-0.f - t); + FfxFloat32 fWeight2 = Lanczos2_UseLUT(+1.f - t); + FfxFloat32 fWeight3 = Lanczos2_UseLUT(+2.f - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} +#if FFX_HALF +FFX_MIN16_F4 Lanczos2_UseLUT(FFX_MIN16_F4 fColor0, FFX_MIN16_F4 fColor1, FFX_MIN16_F4 fColor2, FFX_MIN16_F4 fColor3, FFX_MIN16_F t) +{ + FFX_MIN16_F fWeight0 = Lanczos2_UseLUT(FFX_MIN16_F(-1.f) - t); + FFX_MIN16_F fWeight1 = Lanczos2_UseLUT(FFX_MIN16_F(-0.f) - t); + FFX_MIN16_F fWeight2 = Lanczos2_UseLUT(FFX_MIN16_F(+1.f) - t); + FFX_MIN16_F fWeight3 = Lanczos2_UseLUT(FFX_MIN16_F(+2.f) - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} +#endif + +FfxFloat32x4 Lanczos2(FfxFloat32x4 fColor0, FfxFloat32x4 fColor1, FfxFloat32x4 fColor2, FfxFloat32x4 fColor3, FfxFloat32 t) +{ + FfxFloat32 fWeight0 = Lanczos2(-1.f - t); + FfxFloat32 fWeight1 = Lanczos2(-0.f - t); + FfxFloat32 fWeight2 = Lanczos2(+1.f - t); + FfxFloat32 fWeight3 = Lanczos2(+2.f - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} + +FfxFloat32x4 Lanczos2(FetchedBicubicSamples Samples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Lanczos2(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FfxFloat32x4 fColorX1 = Lanczos2(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FfxFloat32x4 fColorX2 = Lanczos2(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FfxFloat32x4 fColorX3 = Lanczos2(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FfxFloat32x4 fColorXY = Lanczos2(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FfxFloat32x4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FfxFloat32x4 fDeringingMin = fDeringingSamples[0]; + FfxFloat32x4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) { + + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2(FFX_MIN16_F4 fColor0, FFX_MIN16_F4 fColor1, FFX_MIN16_F4 fColor2, FFX_MIN16_F4 fColor3, FFX_MIN16_F t) +{ + FFX_MIN16_F fWeight0 = Lanczos2(FFX_MIN16_F(-1.f) - t); + FFX_MIN16_F fWeight1 = Lanczos2(FFX_MIN16_F(-0.f) - t); + FFX_MIN16_F fWeight2 = Lanczos2(FFX_MIN16_F(+1.f) - t); + FFX_MIN16_F fWeight3 = Lanczos2(FFX_MIN16_F(+2.f) - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} + +FFX_MIN16_F4 Lanczos2(FetchedBicubicSamplesMin16 Samples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Lanczos2(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Lanczos2(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FFX_MIN16_F4 fColorX2 = Lanczos2(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FFX_MIN16_F4 fColorX3 = Lanczos2(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Lanczos2(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FFX_MIN16_F4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FFX_MIN16_F4 fDeringingMin = fDeringingSamples[0]; + FFX_MIN16_F4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} +#endif //FFX_HALF + + +FfxFloat32x4 Lanczos2LUT(FetchedBicubicSamples Samples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Lanczos2_UseLUT(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FfxFloat32x4 fColorX1 = Lanczos2_UseLUT(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FfxFloat32x4 fColorX2 = Lanczos2_UseLUT(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FfxFloat32x4 fColorX3 = Lanczos2_UseLUT(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FfxFloat32x4 fColorXY = Lanczos2_UseLUT(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FfxFloat32x4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FfxFloat32x4 fDeringingMin = fDeringingSamples[0]; + FfxFloat32x4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) { + + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2LUT(FetchedBicubicSamplesMin16 Samples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Lanczos2_UseLUT(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Lanczos2_UseLUT(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FFX_MIN16_F4 fColorX2 = Lanczos2_UseLUT(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FFX_MIN16_F4 fColorX3 = Lanczos2_UseLUT(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Lanczos2_UseLUT(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FFX_MIN16_F4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FFX_MIN16_F4 fDeringingMin = fDeringingSamples[0]; + FFX_MIN16_F4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} +#endif //FFX_HALF + + + +FfxFloat32x4 Lanczos2Approx(FfxFloat32x4 fColor0, FfxFloat32x4 fColor1, FfxFloat32x4 fColor2, FfxFloat32x4 fColor3, FfxFloat32 t) +{ + FfxFloat32 fWeight0 = Lanczos2ApproxNoClamp(-1.f - t); + FfxFloat32 fWeight1 = Lanczos2ApproxNoClamp(-0.f - t); + FfxFloat32 fWeight2 = Lanczos2ApproxNoClamp(+1.f - t); + FfxFloat32 fWeight3 = Lanczos2ApproxNoClamp(+2.f - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2Approx(FFX_MIN16_F4 fColor0, FFX_MIN16_F4 fColor1, FFX_MIN16_F4 fColor2, FFX_MIN16_F4 fColor3, FFX_MIN16_F t) +{ + FFX_MIN16_F fWeight0 = Lanczos2ApproxNoClamp(FFX_MIN16_F(-1.f) - t); + FFX_MIN16_F fWeight1 = Lanczos2ApproxNoClamp(FFX_MIN16_F(-0.f) - t); + FFX_MIN16_F fWeight2 = Lanczos2ApproxNoClamp(FFX_MIN16_F(+1.f) - t); + FFX_MIN16_F fWeight3 = Lanczos2ApproxNoClamp(FFX_MIN16_F(+2.f) - t); + return (fWeight0 * fColor0 + fWeight1 * fColor1 + fWeight2 * fColor2 + fWeight3 * fColor3) / (fWeight0 + fWeight1 + fWeight2 + fWeight3); +} +#endif //FFX_HALF + +FfxFloat32x4 Lanczos2Approx(FetchedBicubicSamples Samples, FfxFloat32x2 fPxFrac) +{ + FfxFloat32x4 fColorX0 = Lanczos2Approx(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FfxFloat32x4 fColorX1 = Lanczos2Approx(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FfxFloat32x4 fColorX2 = Lanczos2Approx(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FfxFloat32x4 fColorX3 = Lanczos2Approx(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FfxFloat32x4 fColorXY = Lanczos2Approx(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FfxFloat32x4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FfxFloat32x4 fDeringingMin = fDeringingSamples[0]; + FfxFloat32x4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} + +#if FFX_HALF +FFX_MIN16_F4 Lanczos2Approx(FetchedBicubicSamplesMin16 Samples, FFX_MIN16_F2 fPxFrac) +{ + FFX_MIN16_F4 fColorX0 = Lanczos2Approx(Samples.fColor00, Samples.fColor10, Samples.fColor20, Samples.fColor30, fPxFrac.x); + FFX_MIN16_F4 fColorX1 = Lanczos2Approx(Samples.fColor01, Samples.fColor11, Samples.fColor21, Samples.fColor31, fPxFrac.x); + FFX_MIN16_F4 fColorX2 = Lanczos2Approx(Samples.fColor02, Samples.fColor12, Samples.fColor22, Samples.fColor32, fPxFrac.x); + FFX_MIN16_F4 fColorX3 = Lanczos2Approx(Samples.fColor03, Samples.fColor13, Samples.fColor23, Samples.fColor33, fPxFrac.x); + FFX_MIN16_F4 fColorXY = Lanczos2Approx(fColorX0, fColorX1, fColorX2, fColorX3, fPxFrac.y); + + // Deringing + + // TODO: only use 4 by checking jitter + const FfxInt32 iDeringingSampleCount = 4; + const FFX_MIN16_F4 fDeringingSamples[4] = { + Samples.fColor11, + Samples.fColor21, + Samples.fColor12, + Samples.fColor22, + }; + + FFX_MIN16_F4 fDeringingMin = fDeringingSamples[0]; + FFX_MIN16_F4 fDeringingMax = fDeringingSamples[0]; + + FFX_UNROLL + for (FfxInt32 iSampleIndex = 1; iSampleIndex < iDeringingSampleCount; ++iSampleIndex) + { + fDeringingMin = ffxMin(fDeringingMin, fDeringingSamples[iSampleIndex]); + fDeringingMax = ffxMax(fDeringingMax, fDeringingSamples[iSampleIndex]); + } + + fColorXY = clamp(fColorXY, fDeringingMin, fDeringingMax); + + return fColorXY; +} +#endif + +// Clamp by offset direction. Assuming iPxSample is already in range and iPxOffset is compile time constant. +FfxInt32x2 ClampCoord(FfxInt32x2 iPxSample, FfxInt32x2 iPxOffset, FfxInt32x2 iTextureSize) +{ + FfxInt32x2 result = iPxSample + iPxOffset; + result.x = ffxMax(1, ffxMin(result.x, iTextureSize.x - 2)); + result.y = ffxMax(1, ffxMin(result.y, iTextureSize.y - 2)); + return result; +} +#if FFX_HALF +FFX_MIN16_I2 ClampCoord(FFX_MIN16_I2 iPxSample, FFX_MIN16_I2 iPxOffset, FFX_MIN16_I2 iTextureSize) +{ + FFX_MIN16_I2 result = iPxSample + iPxOffset; + result.x = ffxMax(FFX_MIN16_I(1), ffxMin(result.x, iTextureSize.x - FFX_MIN16_I(2))); + result.y = ffxMax(FFX_MIN16_I(1), ffxMin(result.y, iTextureSize.y - FFX_MIN16_I(2))); + return result; +} +#endif //FFX_HALF + + +#define DeclareCustomFetchBicubicSamplesWithType(SampleType, TextureType, AddrType, Name, LoadTexture) \ + SampleType Name(AddrType iPxSample, AddrType iTextureSize) \ + { \ + SampleType Samples; \ + \ + Samples.fColor00 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, -1), iTextureSize))); \ + Samples.fColor10 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, -1), iTextureSize))); \ + Samples.fColor20 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, -1), iTextureSize))); \ + Samples.fColor30 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, -1), iTextureSize))); \ + \ + Samples.fColor01 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, +0), iTextureSize))); \ + Samples.fColor11 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +0), iTextureSize))); \ + Samples.fColor21 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +0), iTextureSize))); \ + Samples.fColor31 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, +0), iTextureSize))); \ + \ + Samples.fColor02 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, +1), iTextureSize))); \ + Samples.fColor12 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +1), iTextureSize))); \ + Samples.fColor22 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +1), iTextureSize))); \ + Samples.fColor32 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, +1), iTextureSize))); \ + \ + Samples.fColor03 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(-1, +2), iTextureSize))); \ + Samples.fColor13 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +2), iTextureSize))); \ + Samples.fColor23 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +2), iTextureSize))); \ + Samples.fColor33 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+2, +2), iTextureSize))); \ + \ + return Samples; \ + } + +#define DeclareCustomFetchBicubicSamples(Name, LoadTexture) \ + DeclareCustomFetchBicubicSamplesWithType(FetchedBicubicSamples, FfxFloat32x4, FfxInt32x2, Name, LoadTexture) + +#define DeclareCustomFetchBicubicSamplesMin16(Name, LoadTexture) \ + DeclareCustomFetchBicubicSamplesWithType(FetchedBicubicSamplesMin16, FFX_MIN16_F4, FfxInt32x2, Name, LoadTexture) + +#define DeclareCustomFetchBilinearSamplesWithType(SampleType, TextureType,AddrType, Name, LoadTexture) \ + SampleType Name(AddrType iPxSample, AddrType iTextureSize) \ + { \ + SampleType Samples; \ + Samples.fColor00 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +0), iTextureSize))); \ + Samples.fColor10 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +0), iTextureSize))); \ + Samples.fColor01 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+0, +1), iTextureSize))); \ + Samples.fColor11 = TextureType(LoadTexture(ClampCoord(iPxSample, AddrType(+1, +1), iTextureSize))); \ + return Samples; \ + } + +#define DeclareCustomFetchBilinearSamples(Name, LoadTexture) \ + DeclareCustomFetchBilinearSamplesWithType(FetchedBilinearSamples, FfxFloat32x4, FfxInt32x2, Name, LoadTexture) + +#define DeclareCustomFetchBilinearSamplesMin16(Name, LoadTexture) \ + DeclareCustomFetchBilinearSamplesWithType(FetchedBilinearSamplesMin16, FFX_MIN16_F4, FfxInt32x2, Name, LoadTexture) + +// BE CAREFUL: there is some precision issues and (3253, 125) leading to (3252.9989778, 125.001102) +// is common, so iPxSample can "jitter" +#define DeclareCustomTextureSample(Name, InterpolateSamples, FetchSamples) \ + FfxFloat32x4 Name(FfxFloat32x2 fUvSample, FfxInt32x2 iTextureSize) \ + { \ + FfxFloat32x2 fPxSample = (fUvSample * FfxFloat32x2(iTextureSize)) - FfxFloat32x2(0.5f, 0.5f); \ + FfxFloat32x2 fPxFrac = ffxFract(fPxSample); \ + /* Clamp base coords */ \ + fPxSample.x = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.x-1), fPxSample.x)); \ + fPxSample.y = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.y-1), fPxSample.y)); \ + /* */ \ + FfxInt32x2 iPxSample = FfxInt32x2(floor(fPxSample)); \ + FfxFloat32x4 fColorXY = FfxFloat32x4(InterpolateSamples(FetchSamples(iPxSample, iTextureSize), fPxFrac)); \ + return fColorXY; \ + } + +#define DeclareCustomTextureSampleMin16(Name, InterpolateSamples, FetchSamples) \ + FFX_MIN16_F4 Name(FfxFloat32x2 fUvSample, FfxInt32x2 iTextureSize) \ + { \ + FfxFloat32x2 fPxSample = (fUvSample * FfxFloat32x2(iTextureSize)) - FfxFloat32x2(0.5f, 0.5f); \ + FFX_MIN16_F2 fPxFrac = FFX_MIN16_F2(ffxFract(fPxSample)); \ + /* Clamp base coords */ \ + fPxSample.x = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.x), fPxSample.x)); \ + fPxSample.y = ffxMax(0.0f, ffxMin(FfxFloat32(iTextureSize.y), fPxSample.y)); \ + /* */ \ + FfxInt32x2 iPxSample = FfxInt32x2(floor(fPxSample)); \ + FFX_MIN16_F4 fColorXY = FFX_MIN16_F4(InterpolateSamples(FetchSamples(iPxSample, iTextureSize), fPxFrac)); \ + return fColorXY; \ + } + +#define FFX_FSR3UPSCALER_CONCAT_ID(x, y) x ## y +#define FFX_FSR3UPSCALER_CONCAT(x, y) FFX_FSR3UPSCALER_CONCAT_ID(x, y) +#define FFX_FSR3UPSCALER_SAMPLER_1D_0 Lanczos2 +#define FFX_FSR3UPSCALER_SAMPLER_1D_1 Lanczos2LUT +#define FFX_FSR3UPSCALER_SAMPLER_1D_2 Lanczos2Approx + +#define FFX_FSR3UPSCALER_GET_LANCZOS_SAMPLER1D(x) FFX_FSR3UPSCALER_CONCAT(FFX_FSR3UPSCALER_SAMPLER_1D_, x) + +#endif //!defined( FFX_FSR3UPSCALER_SAMPLE_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h new file mode 100644 index 000000000..2eb23aacd --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change.h @@ -0,0 +1,68 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FFX_STATIC const FfxInt32 s_MipLevelsToUse = 3; + +struct ShadingChangeLumaInfo +{ + FfxFloat32 fSamples[s_MipLevelsToUse]; +}; + +ShadingChangeLumaInfo ComputeShadingChangeLuma(FfxInt32x2 iPxPos, FfxFloat32x2 fUv, const FfxInt32x2 iCurrentSize) +{ + ShadingChangeLumaInfo info; + + const FfxFloat32x2 fMipUv = ClampUv(fUv, ShadingChangeRenderSize(), GetSPDMipDimensions(0)); + + FFX_UNROLL + for (FfxInt32 iMipLevel = iShadingChangeMipStart; iMipLevel < s_MipLevelsToUse; iMipLevel++) { + + const FfxFloat32x2 fSample = SampleSPDMipLevel(fMipUv, iMipLevel); + + info.fSamples[iMipLevel] = abs(fSample.x * fSample.y); + } + + return info; +} + +void ShadingChange(FfxInt32x2 iPxPos) +{ + if (IsOnScreen(FfxInt32x2(iPxPos), ShadingChangeRenderSize())) { + + const FfxFloat32x2 fUv = (iPxPos + 0.5f) / ShadingChangeRenderSize(); + const FfxFloat32x2 fUvJittered = fUv + Jitter() / RenderSize(); + + const ShadingChangeLumaInfo info = ComputeShadingChangeLuma(iPxPos, fUvJittered, ShadingChangeRenderSize()); + + const FfxFloat32 fScale = 1.0f + iShadingChangeMipStart / s_MipLevelsToUse; + FfxFloat32 fShadingChange = 0.0f; + FFX_UNROLL + for (int iMipLevel = iShadingChangeMipStart; iMipLevel < s_MipLevelsToUse; iMipLevel++) + { + if (info.fSamples[iMipLevel] > 0) { + fShadingChange = ffxMax(fShadingChange, info.fSamples[iMipLevel]) * fScale; + } + } + + StoreShadingChange(iPxPos, ffxSaturate(fShadingChange)); + } +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h new file mode 100644 index 000000000..63ca5d6d5 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h @@ -0,0 +1,297 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +FFX_GROUPSHARED FfxUInt32 spdCounter; + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ + SPD_IncreaseAtomicCounter(spdCounter); +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return spdCounter; +} + +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + SPD_ResetAtomicCounter(); +} + +#ifndef SPD_PACKED_ONLY +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +FFX_STATIC const FfxInt32 DIFFERENCE = 0; +FFX_STATIC const FfxInt32 SIGN_SUM = 1; +FFX_STATIC const FfxInt32 MIP0_INDICATOR = 2; + +FfxFloat32x2 Sort2(FfxFloat32x2 v) +{ + return FfxFloat32x2(ffxMin(v.x, v.y), ffxMax(v.x, v.y)); +} + +struct SampleSet +{ + FfxFloat32 fSamples[SHADING_CHANGE_SET_SIZE]; +}; + +#define CompareSwap(i, j) \ +{ \ +FfxFloat32 fTmp = ffxMin(fSet.fSamples[i], fSet.fSamples[j]);\ +fSet.fSamples[j] = ffxMax(fSet.fSamples[i], fSet.fSamples[j]);\ +fSet.fSamples[i] = fTmp;\ +} + +#if SHADING_CHANGE_SET_SIZE == 5 +FFX_STATIC const FfxInt32x2 iSampleOffsets[5] = {FfxInt32x2(+0, +0), FfxInt32x2(-1, +0), FfxInt32x2(+1, +0), FfxInt32x2(+0, -1), FfxInt32x2(+0, +1)}; + +void SortSet(FFX_PARAMETER_INOUT SampleSet fSet) +{ + CompareSwap(0, 3); + CompareSwap(1, 4); + CompareSwap(0, 2); + CompareSwap(1, 3); + CompareSwap(0, 1); + CompareSwap(2, 4); + CompareSwap(1, 2); + CompareSwap(3, 4); + CompareSwap(2, 3); +} +#endif + +FfxFloat32 ComputeMinimumDifference(FfxInt32x2 iPxPos, SampleSet fSet0, SampleSet fSet1) +{ + FfxFloat32 fMinDiff = FSR3UPSCALER_FP16_MAX - 1; + FfxInt32 a = 0; + FfxInt32 b = 0; + + SortSet(fSet0); + SortSet(fSet1); + + const FfxFloat32 fMax = ffxMin(fSet0.fSamples[SHADING_CHANGE_SET_SIZE-1], fSet1.fSamples[SHADING_CHANGE_SET_SIZE-1]); + + if (fMax > FSR3UPSCALER_FP32_MIN) { + + FFX_UNROLL + for (FfxInt32 i = 0; i < SHADING_CHANGE_SET_SIZE && (fMinDiff < FSR3UPSCALER_FP16_MAX); i++) { + + FfxFloat32 fDiff = fSet0.fSamples[a] - fSet1.fSamples[b]; + + if (abs(fDiff) > FSR3UPSCALER_FP16_MIN) { + + fDiff = sign(fDiff) * (1.0f - MinDividedByMax(fSet0.fSamples[a], fSet1.fSamples[b])); + + fMinDiff = (abs(fDiff) < abs(fMinDiff)) ? fDiff : fMinDiff; + + a += FfxInt32(fSet0.fSamples[a] < fSet1.fSamples[b]); + b += FfxInt32(fSet0.fSamples[a] >= fSet1.fSamples[b]); + } + else + { + fMinDiff = FSR3UPSCALER_FP16_MAX; + } + } + } + + return fMinDiff * FfxFloat32(fMinDiff < (FSR3UPSCALER_FP16_MAX - 1)); +} + +SampleSet GetCurrentLumaBilinearSamples(FfxFloat32x2 fUv) +{ + const FfxFloat32x2 fUvJittered = fUv + Jitter() / RenderSize(); + const FfxInt32x2 iBasePos = FfxInt32x2(floor(fUvJittered * RenderSize())); + + SampleSet fSet; + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < SHADING_CHANGE_SET_SIZE; iSampleIndex++) { + const FfxInt32x2 iSamplePos = ClampLoad(iBasePos, iSampleOffsets[iSampleIndex], RenderSize()); + fSet.fSamples[iSampleIndex] = LoadCurrentLuma(iSamplePos) * Exposure(); + fSet.fSamples[iSampleIndex] = ffxPow(fSet.fSamples[iSampleIndex], fShadingChangeSamplePow); + fSet.fSamples[iSampleIndex] = ffxMax(fSet.fSamples[iSampleIndex], FSR3UPSCALER_EPSILON); + } + + return fSet; +} + +struct PreviousLumaBilinearSamplesData +{ + SampleSet fSet; + FfxBoolean bIsExistingSample; +}; + +PreviousLumaBilinearSamplesData GetPreviousLumaBilinearSamples(FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector) +{ + PreviousLumaBilinearSamplesData data; + + const FfxFloat32x2 fUvJittered = fUv + PreviousFrameJitter() / PreviousFrameRenderSize(); + const FfxFloat32x2 fReprojectedUv = fUvJittered + fMotionVector; + + data.bIsExistingSample = IsUvInside(fReprojectedUv); + + if (data.bIsExistingSample) { + + const FfxInt32x2 iBasePos = FfxInt32x2(floor(fReprojectedUv * PreviousFrameRenderSize())); + + for (FfxInt32 iSampleIndex = 0; iSampleIndex < SHADING_CHANGE_SET_SIZE; iSampleIndex++) { + + const FfxInt32x2 iSamplePos = ClampLoad(iBasePos, iSampleOffsets[iSampleIndex], PreviousFrameRenderSize()); + data.fSet.fSamples[iSampleIndex] = LoadPreviousLuma(iSamplePos) * DeltaPreExposure() * Exposure(); + data.fSet.fSamples[iSampleIndex] = ffxPow(data.fSet.fSamples[iSampleIndex], fShadingChangeSamplePow); + data.fSet.fSamples[iSampleIndex] = ffxMax(data.fSet.fSamples[iSampleIndex], FSR3UPSCALER_EPSILON); + } + } + + return data; +} + +FfxFloat32 ComputeDiff(FfxInt32x2 iPxPos, FfxFloat32x2 fUv, FfxFloat32x2 fMotionVector) +{ + FfxFloat32 fMinDiff = 0.0f; + + const SampleSet fCurrentSamples = GetCurrentLumaBilinearSamples(fUv); + const PreviousLumaBilinearSamplesData previousData = GetPreviousLumaBilinearSamples(fUv, fMotionVector); + + if (previousData.bIsExistingSample) { + fMinDiff = ComputeMinimumDifference(iPxPos, fCurrentSamples, previousData.fSet); + } + + return fMinDiff; +} + +FfxFloat32x4 SpdLoadSourceImage(FfxFloat32x2 iPxPos, FfxUInt32 slice) +{ + const FfxInt32x2 iPxSamplePos = ClampLoad(FfxInt32x2(iPxPos), FfxInt32x2(0, 0), FfxInt32x2(RenderSize())); + const FfxFloat32x2 fDilatedMotionVector = LoadDilatedMotionVector(iPxSamplePos); + const FfxFloat32x2 fUv = (iPxSamplePos + 0.5f) / RenderSize(); + + const FfxFloat32 fScaledAndSignedLumaDiff = ComputeDiff(iPxSamplePos, fUv, fDilatedMotionVector); + + FfxFloat32x4 fOutput = FfxFloat32x4(0.0f, 0.0f, 0.0f, 0.0f); + fOutput[DIFFERENCE] = fScaledAndSignedLumaDiff; + fOutput[SIGN_SUM] = (fScaledAndSignedLumaDiff != 0.0f) ? sign(fScaledAndSignedLumaDiff) : 0.0f; + fOutput[MIP0_INDICATOR] = 1.0f; + + return fOutput; +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return FfxFloat32x4(RWLoadPyramid(tex, 5), 0, 0); +} + +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return (v0 + v1 + v2 + v3) * 0.25f; +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + if (index >= iShadingChangeMipStart) + { + StorePyramid(pix, outValue.xy, index); + } +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} + +#endif + +// define fetch and store functions Packed +#if FFX_HALF + +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateRG[16][16]; +FFX_GROUPSHARED FfxFloat16x2 spdIntermediateBA[16][16]; + +FfxFloat16x4 SpdLoadSourceImageH(FfxFloat32x2 tex, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +FfxFloat16x4 SpdLoadH(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat16x4(0, 0, 0, 0); +} + +void SpdStoreH(FfxInt32x2 p, FfxFloat16x4 value, FfxUInt32 mip, FfxUInt32 slice) +{ +} + +FfxFloat16x4 SpdLoadIntermediateH(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat16x4( + spdIntermediateRG[x][y].x, + spdIntermediateRG[x][y].y, + spdIntermediateBA[x][y].x, + spdIntermediateBA[x][y].y); +} + +void SpdStoreIntermediateH(FfxUInt32 x, FfxUInt32 y, FfxFloat16x4 value) +{ + spdIntermediateRG[x][y] = value.xy; + spdIntermediateBA[x][y] = value.zw; +} + +FfxFloat16x4 SpdReduce4H(FfxFloat16x4 v0, FfxFloat16x4 v1, FfxFloat16x4 v2, FfxFloat16x4 v3) +{ + return (v0 + v1 + v2 + v3) * FfxFloat16(0.25); +} +#endif + +#include "spd/ffx_spd.h" + +void ComputeShadingChangePyramid(FfxUInt32x3 WorkGroupId, FfxUInt32 LocalThreadIndex) +{ +#if FFX_HALF + SpdDownsampleH( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#else + SpdDownsample( + FfxUInt32x2(WorkGroupId.xy), + FfxUInt32(LocalThreadIndex), + FfxUInt32(MipCount()), + FfxUInt32(NumWorkGroups()), + FfxUInt32(WorkGroupId.z), + FfxUInt32x2(WorkGroupOffset())); +#endif +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h new file mode 100644 index 000000000..801a0a907 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/fsr3upscaler/ffx_fsr3upscaler_upsample.h @@ -0,0 +1,644 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +void Deringing(RectificationBox clippingBox, FFX_PARAMETER_INOUT FfxFloat32x3 fColor) +{ + fColor = clamp(fColor, clippingBox.aabbMin, clippingBox.aabbMax); +} + +#ifndef FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE +#define FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE 2 // Approximate +#endif + +FfxFloat32 GetUpsampleLanczosWeight(FfxFloat32x2 fSrcSampleOffset, FfxFloat32 fKernelWeight) +{ + FfxFloat32x2 fSrcSampleOffsetBiased = fSrcSampleOffset * fKernelWeight.xx; +#if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 0 // LANCZOS_TYPE_REFERENCE + FfxFloat32 fSampleWeight = Lanczos2(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 1 // LANCZOS_TYPE_LUT + FfxFloat32 fSampleWeight = Lanczos2_UseLUT(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + FfxFloat32 fSampleWeight = Lanczos2ApproxSq(dot(fSrcSampleOffsetBiased, fSrcSampleOffsetBiased)); +#else +#error "Invalid Lanczos type" +#endif + return fSampleWeight; +} + +#if FFX_HALF +FFX_MIN16_F GetUpsampleLanczosWeight(FFX_MIN16_F2 fSrcSampleOffset, FFX_MIN16_F fKernelWeight) +{ + FFX_MIN16_F2 fSrcSampleOffsetBiased = fSrcSampleOffset * fKernelWeight.xx; +#if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 0 // LANCZOS_TYPE_REFERENCE + FFX_MIN16_F fSampleWeight = Lanczos2(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 1 // LANCZOS_TYPE_LUT + FFX_MIN16_F fSampleWeight = Lanczos2_UseLUT(length(fSrcSampleOffsetBiased)); +#elif FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + FFX_MIN16_F fSampleWeight = Lanczos2ApproxSq(dot(fSrcSampleOffsetBiased, fSrcSampleOffsetBiased)); + + // To Test: Save reciproqual sqrt compute + // FfxFloat32 fSampleWeight = Lanczos2Sq_UseLUT(dot(fSrcSampleOffsetBiased, fSrcSampleOffsetBiased)); +#else +#error "Invalid Lanczos type" +#endif + return fSampleWeight; +} +#endif + +FfxFloat32 ComputeMaxKernelWeight(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) { + + const FfxFloat32 fKernelSizeBias = 1.0f + (1.0f / FfxFloat32x2(DownscaleFactor()) - 1.0f).x; + + return ffxMin(FfxFloat32(1.99f), fKernelSizeBias); +} + +FfxFloat32x3 LoadPreparedColor(FfxInt32x2 iSamplePos) +{ + const FfxFloat32x3 fRgb = ffxMax(FfxFloat32x3(0, 0, 0), LoadInputColor(iSamplePos)) * Exposure(); + const FfxFloat32x3 fPreparedYCoCg = RGBToYCoCg(fRgb); + + return fPreparedYCoCg; +} + +#if FFX_HALF && (FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2) && defined(__XBOX_SCARLETT) && defined(__XBATG_EXTRA_16_BIT_OPTIMISATION) && (__XBATG_EXTRA_16_BIT_OPTIMISATION == 1) +#define FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS 1 +#else +#define FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS 0 +#endif + +#if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + +void LoadPreparedColorPairedRgb(FFX_PARAMETER_OUT FFX_MIN16_F2 r, + FFX_PARAMETER_OUT FFX_MIN16_F2 g, + FFX_PARAMETER_OUT FFX_MIN16_F2 b, + FfxInt32x2 iSamplePos0, + FfxInt32x2 iSamplePos1) +{ + const FFX_MIN16_F3 sample0 = FFX_MIN16_F3(LoadInputColor(iSamplePos0)); + const FFX_MIN16_F3 sample1 = FFX_MIN16_F3(LoadInputColor(iSamplePos1)); + + r = ffxMax(FFX_MIN16_F2(0, 0), FFX_MIN16_F2(sample0.r, sample1.r)); + g = ffxMax(FFX_MIN16_F2(0, 0), FFX_MIN16_F2(sample0.g, sample1.g)); + b = ffxMax(FFX_MIN16_F2(0, 0), FFX_MIN16_F2(sample0.b, sample1.b)); + + r = FFX_MIN16_F2(r * Exposure()); + g = FFX_MIN16_F2(g * Exposure()); + b = FFX_MIN16_F2(b * Exposure()); +} + +void TonemapPaired(FFX_PARAMETER_INOUT FFX_MIN16_F2 r, FFX_PARAMETER_INOUT FFX_MIN16_F2 g, FFX_PARAMETER_INOUT FFX_MIN16_F2 b) +{ + FFX_MIN16_F2 denomF16 = ffxMax(ffxMax(ffxMax(0.0, r), g), b) + FFX_MIN16_F2(1.0, 1.0); + + // NOTE: expect 2 x v_cvt_f32_f16 + FfxFloat32x2 denomF32 = FfxFloat32x2(denomF16); + // NOTE: expect 2 x v_rcp_f32 + FfxFloat32x2 normF32 = FfxFloat32x2(1.0, 1.0) / denomF32; + // NOTE: expect 2 x v_cvt_f16_f32 + FFX_MIN16_F2 normF16 = FFX_MIN16_F2(normF32); + + r *= normF16; + g *= normF16; + b *= normF16; +} + +void RGBToYCoCgPaired(FFX_PARAMETER_INOUT FFX_MIN16_F2 r, FFX_PARAMETER_INOUT FFX_MIN16_F2 g, FFX_PARAMETER_INOUT FFX_MIN16_F2 b) +{ + /** + * NOTE: given the following conversion + * + * fYCoCg = FfxFloat32x3( + * 0.25f * fRgb.r + 0.5f * fRgb.g + 0.25f * fRgb.b, + * 0.5f * fRgb.r - 0.5f * fRgb.b, + * -0.25f * fRgb.r + 0.5f * fRgb.g - 0.25f * fRgb.b); + * + * it's possible to notice that we can compute: + * RplusBdiv4 = 0.25 * (R + B) + * + * so everything else is computed in 3 instructions + * Y = G * 0.5 + RplusBdiv4 + * Co = 2 * RplusBdiv4 - G + * Cg = G * 0.5 - RplusBdiv4 + */ + + // NOTE: expect v_pk_add_f32 + v_pk_mul_f32 + FFX_MIN16_F2 RplusBdiv4 = (r + b) * 0.25; + FFX_MIN16_F2 G = g; + FFX_MIN16_F2 B = b; + + // NOTE: expect 3x v_pk_fma_f32 + r = G * 0.5 + RplusBdiv4; + g = RplusBdiv4 * 2.0 - B; + b = G * 0.5 - RplusBdiv4; +} + +FFX_MIN16_F2 Compute3x3SamplesMinMaxPaired(FFX_PARAMETER_IN FFX_MIN16_F2 sampleCenter, + FFX_PARAMETER_IN FFX_MIN16_F2 sample0, + FFX_PARAMETER_IN FFX_MIN16_F2 sample1, + FFX_PARAMETER_IN FFX_MIN16_F2 sample2, + FFX_PARAMETER_IN FFX_MIN16_F2 sample3) +{ + FFX_MIN16_F2 twoMinValues = ffxMin(ffxMin(sample0, sample1), ffxMin(sample2, sample3)); + FFX_MIN16_F2 twoMaxValues = ffxMax(ffxMax(sample0, sample1), ffxMax(sample2, sample3)); + + return FFX_MIN16_F2( + ffxMin3Half(twoMinValues.x, twoMinValues.y, sampleCenter.x), + ffxMax3Half(twoMaxValues.x, twoMaxValues.y, sampleCenter.x) + ); +} + + +FFX_MIN16_F2 Bool2ToFloat16x2(bool x, bool y) +{ + uint lo = x ? 0x00003c00 : 0x00000000; + uint hi = y ? 0x3c000000 : 0x00000000; + return FFX_MIN16_F2(__XB_AsHalf(lo).x, __XB_AsHalf(hi).y); +} + +struct PairedRectificationBoxAndAccumulatedColorAndWeight +{ + FFX_MIN16_F2 boxCenterR; + FFX_MIN16_F2 boxCenterG; + FFX_MIN16_F2 boxCenterB; + + FFX_MIN16_F2 boxVecR; + FFX_MIN16_F2 boxVecG; + FFX_MIN16_F2 boxVecB; + + FFX_MIN16_F2 fBoxCenterWeight; + + FFX_MIN16_F2 fColorR; + FFX_MIN16_F2 fColorG; + FFX_MIN16_F2 fColorB; + FFX_MIN16_F2 fWeight; + + FFX_MIN16_F fKernelBiasSq; + FFX_MIN16_F fRectificationCurveBias; + + void setKernelBiasAndRectificationCurveBias(FfxFloat32 kernelBias, FfxFloat32 rectificationCurveBias) + { + fKernelBiasSq = FFX_MIN16_F(kernelBias * kernelBias); + fRectificationCurveBias = FFX_MIN16_F(rectificationCurveBias); + } + + void initUpscaledColor(FFX_MIN16_F fSrcSampleOffsetSq, FFX_MIN16_F fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + #if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + const FFX_MIN16_F2 LanczosUpsampleWeight = FFX_MIN16_F2( + PairedLanczos2ApproxSq(fSrcSampleOffsetSq * fKernelBiasSq).x, + 0.0 + ); + #else + #error "Only LANCZOS_TYPE_APPROXIMATE is supported in paired version so far" + #endif + const FFX_MIN16_F2 fSampleWeight = fOnScreenWeight * LanczosUpsampleWeight; + + fColorR = sampleR * fSampleWeight; + fColorG = sampleG * fSampleWeight; + fColorB = sampleB * fSampleWeight; + fWeight = fSampleWeight; + } + + void initBox(FFX_MIN16_F fSrcSampleOffsetSq, FFX_MIN16_F fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + const FFX_MIN16_F2 fBoxSampleWeight = FFX_MIN16_F2( + exp(fRectificationCurveBias * fSrcSampleOffsetSq) * fOnScreenWeight, + 0.0 + ); + + FFX_MIN16_F2 weightedSampleR = sampleR * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleG = sampleG * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleB = sampleB * fBoxSampleWeight; + + boxCenterR = weightedSampleR; + boxCenterG = weightedSampleG; + boxCenterB = weightedSampleB; + + boxVecR = sampleR * weightedSampleR; + boxVecG = sampleG * weightedSampleG; + boxVecB = sampleB * weightedSampleB; + + fBoxCenterWeight = fBoxSampleWeight; + } + + void addUpscaledColorSample(FFX_MIN16_F2 fSrcSampleOffsetSq, FFX_MIN16_F2 fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + #if FFX_FSR3UPSCALER_OPTION_UPSAMPLE_USE_LANCZOS_TYPE == 2 // LANCZOS_TYPE_APPROXIMATE + const FFX_MIN16_F2 LanczosUpsampleWeight = PairedLanczos2ApproxSq(fSrcSampleOffsetSq * fKernelBiasSq); + #else + #error "Only LANCZOS_TYPE_APPROXIMATE is supported in paired version so far" + #endif + const FFX_MIN16_F2 fSampleWeight = fOnScreenWeight * LanczosUpsampleWeight; + + fColorR += sampleR * fSampleWeight; + fColorG += sampleG * fSampleWeight; + fColorB += sampleB * fSampleWeight; + fWeight += fSampleWeight; + } + + void addBoxSample(FFX_MIN16_F2 fSrcSampleOffsetSq, FFX_MIN16_F2 fOnScreenWeight, FFX_MIN16_F2 sampleR, FFX_MIN16_F2 sampleG, FFX_MIN16_F2 sampleB) + { + // NOTE: ideally expect here 2x v_fma_mix + 2x v_exp_f32 + 2x v_fma_mix + const FFX_MIN16_F2 fBoxSampleWeight = exp(fRectificationCurveBias * fSrcSampleOffsetSq) * fOnScreenWeight; + + FFX_MIN16_F2 weightedSampleR = sampleR * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleG = sampleG * fBoxSampleWeight; + FFX_MIN16_F2 weightedSampleB = sampleB * fBoxSampleWeight; + + boxCenterR += weightedSampleR; + boxCenterG += weightedSampleG; + boxCenterB += weightedSampleB; + + boxVecR += sampleR * weightedSampleR; + boxVecG += sampleG * weightedSampleG; + boxVecB += sampleB * weightedSampleB; + + fBoxCenterWeight += fBoxSampleWeight; + } + + void finalizeUpscaledColor(FFX_PARAMETER_OUT FfxFloat32x4 upscaledColorAndWeight) + { + upscaledColorAndWeight.r = fColorR.x + fColorR.y; + upscaledColorAndWeight.g = fColorG.x + fColorG.y; + upscaledColorAndWeight.b = fColorB.x + fColorB.y; + + upscaledColorAndWeight.a = fWeight.x + fWeight.y; + } + + void finalizeBox(FFX_PARAMETER_OUT FfxFloat32x2 boxCenterAndVecR, + FFX_PARAMETER_OUT FfxFloat32x2 boxCenterAndVecG, + FFX_PARAMETER_OUT FfxFloat32x2 boxCenterAndVecB, + FFX_PARAMETER_OUT FfxFloat32 boxCenterWeight) + { + boxCenterAndVecR = FfxFloat32x2(boxCenterR.x + boxCenterR.y, boxVecR.x + boxVecR.y); + boxCenterAndVecG = FfxFloat32x2(boxCenterG.x + boxCenterG.y, boxVecG.x + boxVecG.y); + boxCenterAndVecB = FfxFloat32x2(boxCenterB.x + boxCenterB.y, boxVecB.x + boxVecB.y); + + boxCenterWeight = fBoxCenterWeight.x + fBoxCenterWeight.y; + } +}; +#endif // #if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + +void ComputeUpsampledColorAndWeight(const AccumulationPassCommonParams params, FFX_PARAMETER_INOUT AccumulationPassData data) +{ + // We compute a sliced lanczos filter with 2 lobes (other slices are accumulated temporaly) + const FfxFloat32x2 fDstOutputPos = FfxFloat32x2(params.iPxHrPos) + FFX_BROADCAST_FLOAT32X2(0.5f); + const FfxFloat32x2 fSrcOutputPos = fDstOutputPos * DownscaleFactor(); + const FfxInt32x2 iSrcInputPos = FfxInt32x2(floor(fSrcOutputPos)); + const FfxFloat32x2 fSrcUnjitteredPos = (FfxFloat32x2(iSrcInputPos) + FfxFloat32x2(0.5f, 0.5f)) - Jitter(); // This is the un-jittered position of the sample at offset 0,0 + const FfxFloat32x2 fBaseSampleOffset = FfxFloat32x2(fSrcUnjitteredPos - fSrcOutputPos); + + FfxInt32x2 offsetTL; + offsetTL.x = (fSrcUnjitteredPos.x > fSrcOutputPos.x) ? FfxInt32(-2) : FfxInt32(-1); + offsetTL.y = (fSrcUnjitteredPos.y > fSrcOutputPos.y) ? FfxInt32(-2) : FfxInt32(-1); + + //Load samples + // If fSrcUnjitteredPos.y > fSrcOutputPos.y, indicates offsetTL.y = -2, sample offset Y will be [-2, 1], clipbox will be rows [1, 3]. + // Flip row# for sampling offset in this case, so first 0~2 rows in the sampled array can always be used for computing the clipbox. + // This reduces branch or cmove on sampled colors, but moving this overhead to sample position / weight calculation time which apply to less values. + const FfxBoolean bFlipRow = fSrcUnjitteredPos.y > fSrcOutputPos.y; + const FfxBoolean bFlipCol = fSrcUnjitteredPos.x > fSrcOutputPos.x; + const FfxFloat32x2 fOffsetTL = FfxFloat32x2(offsetTL); + + const FfxBoolean bIsInitialSample = (params.fAccumulation == 0.0f); + +#if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + // Unroll the loop to load samples on Scarlett to help the shader compiler + const FFX_MIN16_F2 fSampleOffsetX02 = __XB_AsHalf(bFlipCol ? __XB_AsUInt(FFX_MIN16_F2( 1, -1)) : __XB_AsUInt(FFX_MIN16_F2(-1, 1))); + const FFX_MIN16_F2 fSampleOffsetY02 = __XB_AsHalf(bFlipRow ? __XB_AsUInt(FFX_MIN16_F2( 1, -1)) : __XB_AsUInt(FFX_MIN16_F2(-1, 1))); + + typedef FfxInt32 FfxTexCoordI; + typedef FfxInt32x2 FfxTexCoordI2; + + const FfxTexCoordI2 iSrcSamplePosX01 = FfxTexCoordI2(iSrcInputPos.xx) + (bFlipCol ? FfxTexCoordI2( 1, 0) : FfxTexCoordI2(-1, 0)); + const FfxTexCoordI2 iSrcSamplePosX23 = FfxTexCoordI2(iSrcInputPos.xx) + (bFlipCol ? FfxTexCoordI2(-1, -2) : FfxTexCoordI2( 1, 2)); + + const FfxTexCoordI2 iSrcSamplePosY01 = FfxTexCoordI2(iSrcInputPos.yy) + (bFlipRow ? FfxTexCoordI2( 1, 0) : FfxTexCoordI2(-1, 0)); + const FfxTexCoordI2 iSrcSamplePosY23 = FfxTexCoordI2(iSrcInputPos.yy) + (bFlipRow ? FfxTexCoordI2(-1, -2) : FfxTexCoordI2( 1, 2)); + + const FfxTexCoordI2 renderSizeLastTexelCoord = FfxTexCoordI2(RenderSize()) - FfxTexCoordI2(1, 1); + + const FfxTexCoordI2 iSrcSamplePosX01Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosX01.x, 0, renderSizeLastTexelCoord.x), + __XB_Med3_I32(iSrcSamplePosX01.y, 0, renderSizeLastTexelCoord.x) + ); + + const FfxTexCoordI2 iSrcSamplePosX23Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosX23.x, 0, renderSizeLastTexelCoord.x), + __XB_Med3_I32(iSrcSamplePosX23.y, 0, renderSizeLastTexelCoord.x) + ); + + const FfxTexCoordI2 iSrcSamplePosY01Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosY01.x, 0, renderSizeLastTexelCoord.y), + __XB_Med3_I32(iSrcSamplePosY01.y, 0, renderSizeLastTexelCoord.y) + ); + + const FfxTexCoordI2 iSrcSamplePosY23Clamped = FfxTexCoordI2( + __XB_Med3_I32(iSrcSamplePosY23.x, 0, renderSizeLastTexelCoord.y), + __XB_Med3_I32(iSrcSamplePosY23.y, 0, renderSizeLastTexelCoord.y) + ); + + FFX_MIN16_F2 TopCornerR, BotCornerR, HorzR, VertR, CenterR; + FFX_MIN16_F2 TopCornerG, BotCornerG, HorzG, VertG, CenterG; + FFX_MIN16_F2 TopCornerB, BotCornerB, HorzB, VertB, CenterB; + + LoadPreparedColorPairedRgb(TopCornerR, TopCornerG, TopCornerB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.x, iSrcSamplePosY01Clamped.x), + FfxTexCoordI2(iSrcSamplePosX23Clamped.x, iSrcSamplePosY01Clamped.x) + ); + + LoadPreparedColorPairedRgb(BotCornerR, BotCornerG, BotCornerB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.x, iSrcSamplePosY23Clamped.x), + FfxTexCoordI2(iSrcSamplePosX23Clamped.x, iSrcSamplePosY23Clamped.x) + ); + + LoadPreparedColorPairedRgb(HorzR, HorzG, HorzB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.x, iSrcSamplePosY01Clamped.y), + FfxTexCoordI2(iSrcSamplePosX23Clamped.x, iSrcSamplePosY01Clamped.y) + ); + + LoadPreparedColorPairedRgb(VertR, VertG, VertB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY01Clamped.x), + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY23Clamped.x) + ); + + // NOTE: duplicated data + LoadPreparedColorPairedRgb(CenterR, CenterG, CenterB, + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY01Clamped.y), + FfxTexCoordI2(iSrcSamplePosX01Clamped.y, iSrcSamplePosY01Clamped.y) + ); + + #if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + if (bIsInitialSample) + { + TonemapPaired(TopCornerR, TopCornerG, TopCornerB); + TonemapPaired(BotCornerR, BotCornerG, BotCornerB); + TonemapPaired(HorzR, HorzG, HorzB); + TonemapPaired(VertR, VertG, VertB); + TonemapPaired(CenterR, CenterG, CenterB); + } + #endif + + RGBToYCoCgPaired(TopCornerR, TopCornerG, TopCornerB); + RGBToYCoCgPaired(BotCornerR, BotCornerG, BotCornerB); + RGBToYCoCgPaired(HorzR, HorzG, HorzB); + RGBToYCoCgPaired(VertR, VertG, VertB); + RGBToYCoCgPaired(CenterR, CenterG, CenterB); + +#else + FfxFloat32x3 fSamples[9]; + FfxInt32 iSampleIndex = 0; + + FFX_UNROLL + for (FfxInt32 row = 0; row < 3; row++) { + FFX_UNROLL + for (FfxInt32 col = 0; col < 3; col++) { + const FfxInt32x2 iSampleColRow = FfxInt32x2(bFlipCol ? (3 - col) : col, bFlipRow ? (3 - row) : row); + const FfxInt32x2 iSrcSamplePos = FfxInt32x2(iSrcInputPos) + offsetTL + iSampleColRow; + const FfxInt32x2 iSampleCoord = ClampLoad(iSrcSamplePos, FfxInt32x2(0, 0), FfxInt32x2(RenderSize())); + + fSamples[iSampleIndex] = LoadPreparedColor(iSampleCoord); + + ++iSampleIndex; + } + } + +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + if (bIsInitialSample) + { + for (iSampleIndex = 0; iSampleIndex < 9; ++iSampleIndex) + { + //YCoCg -> RGB -> Tonemap -> YCoCg (Use RGB tonemapper to avoid color desaturation) + fSamples[iSampleIndex] = RGBToYCoCg(Tonemap(YCoCgToRGB(fSamples[iSampleIndex]))); + } + } +#endif + +#endif // #if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + + // Identify how much of each upsampled color to be used for this frame + const FfxFloat32 fKernelBiasMax = ComputeMaxKernelWeight(params, data); + const FfxFloat32 fKernelBiasMin = ffxMax(1.0f, ((1.0f + fKernelBiasMax) * 0.3f)); + + const FfxFloat32 fKernelBiasWeight = + ffxMin(1.0f - params.fDisocclusion * 0.5f, + ffxMin(1.0f - params.fShadingChange, + ffxSaturate(data.fHistoryWeight * 5.0f) + )); + + const FfxFloat32 fKernelBias = ffxLerp(fKernelBiasMin, fKernelBiasMax, fKernelBiasWeight); + +#if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + // Unroll the loop to load samples on Scarlett to help the shader compiler + const bool coordX0OnScreen = iSrcSamplePosX01.x == iSrcSamplePosX01Clamped.x; + const bool coordX1OnScreen = iSrcSamplePosX01.y == iSrcSamplePosX01Clamped.y; + const bool coordX2OnScreen = iSrcSamplePosX23.x == iSrcSamplePosX23Clamped.x; + + const bool coordY0OnScreen = iSrcSamplePosY01.x == iSrcSamplePosY01Clamped.x; + const bool coordY1OnScreen = iSrcSamplePosY01.y == iSrcSamplePosY01Clamped.y; + const bool coordY2OnScreen = iSrcSamplePosY23.x == iSrcSamplePosY23Clamped.x; + + const FFX_MIN16_F2 fBaseSampleOffsetHalf = FFX_MIN16_F2(fBaseSampleOffset); + + const FFX_MIN16_F2 fSrcSampleOffsetX_02 = fBaseSampleOffsetHalf.xx + fSampleOffsetX02; + const FFX_MIN16_F2 fSrcSampleOffsetY_02 = fBaseSampleOffsetHalf.yy + fSampleOffsetY02; + + const FFX_MIN16_F2 fSrcSampleOffsetXSq_02 = fSrcSampleOffsetX_02 * fSrcSampleOffsetX_02; + const FFX_MIN16_F2 fSrcSampleOffsetYSq_02 = fSrcSampleOffsetY_02 * fSrcSampleOffsetY_02; + const FFX_MIN16_F2 fSrcSampleOffsetXYSq_11 = fBaseSampleOffsetHalf * fBaseSampleOffsetHalf; + + const FfxFloat32 fRectificationCurveBias = -2.3f; + PairedRectificationBoxAndAccumulatedColorAndWeight pairedBox; + pairedBox.setKernelBiasAndRectificationCurveBias(fKernelBias, fRectificationCurveBias); + + // init by o o o + // o x o + // o o o + pairedBox.initBox( + fSrcSampleOffsetXYSq_11.x + fSrcSampleOffsetXYSq_11.y, + Bool2ToFloat16x2(coordX1OnScreen && coordY1OnScreen, false).x, + CenterR, CenterG, CenterB + ); + + // add remaining two samples from 1st row x o x + // o * o + // o o o + pairedBox.addBoxSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.xx, + Bool2ToFloat16x2(coordX0OnScreen && coordY0OnScreen, coordX2OnScreen && coordY0OnScreen), + TopCornerR, TopCornerG, TopCornerB + ); + + // add two samples from 2nd row * o * + // o * o + // x o x + pairedBox.addBoxSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY2OnScreen, coordX2OnScreen && coordY2OnScreen), + BotCornerR, BotCornerG, BotCornerB + ); + + // add two samples from 3rd row * o * + // x * x + // * o * + pairedBox.addBoxSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetXYSq_11.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY1OnScreen, coordX2OnScreen && coordY1OnScreen), + HorzR, HorzG, HorzB + ); + + // add remaining samples * x * + // * * * + // * x * + pairedBox.addBoxSample( + fSrcSampleOffsetXYSq_11.xx + fSrcSampleOffsetYSq_02, + Bool2ToFloat16x2(coordX1OnScreen && coordY0OnScreen, coordX1OnScreen && coordY2OnScreen), + VertR, VertG, VertB + ); + + FfxFloat32x2 boxCenterAndVecR, boxCenterAndVecG, boxCenterAndVecB; + FfxFloat32 boxCenterWeight; + pairedBox.finalizeBox(boxCenterAndVecR, boxCenterAndVecG, boxCenterAndVecB, boxCenterWeight); + + if (!bIsInitialSample) + { + pairedBox.initUpscaledColor( + fSrcSampleOffsetXYSq_11.x + fSrcSampleOffsetXYSq_11.y, + Bool2ToFloat16x2(coordX1OnScreen && coordY1OnScreen, false).x, + CenterR, CenterG, CenterB + ); + + // add remaining two samples from 1st row x o x + // o * o + // o o o + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.xx, + Bool2ToFloat16x2(coordX0OnScreen && coordY0OnScreen, coordX2OnScreen && coordY0OnScreen), + TopCornerR, TopCornerG, TopCornerB + ); + + // add two samples from 2nd row * o * + // o * o + // x o x + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetYSq_02.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY2OnScreen, coordX2OnScreen && coordY2OnScreen), + BotCornerR, BotCornerG, BotCornerB + ); + + // add two samples from 3rd row * o * + // x * x + // * o * + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXSq_02 + fSrcSampleOffsetXYSq_11.yy, + Bool2ToFloat16x2(coordX0OnScreen && coordY1OnScreen, coordX2OnScreen && coordY1OnScreen), + HorzR, HorzG, HorzB + ); + + // add remaining samples * x * + // * * * + // * x * + pairedBox.addUpscaledColorSample( + fSrcSampleOffsetXYSq_11.xx + fSrcSampleOffsetYSq_02, + Bool2ToFloat16x2(coordX1OnScreen && coordY0OnScreen, coordX1OnScreen && coordY2OnScreen), + VertR, VertG, VertB + ); + + FfxFloat32x4 upscaledColorAndWeight = 0.0; + pairedBox.finalizeUpscaledColor(upscaledColorAndWeight); + + data.fUpsampledColor = FfxFloat32x3(upscaledColorAndWeight.rgb); + data.fUpsampledWeight = FfxFloat32(upscaledColorAndWeight.w); + } + + FFX_MIN16_F2 aabbMinMaxR = Compute3x3SamplesMinMaxPaired(CenterR, TopCornerR, BotCornerR, HorzR, VertR); + FFX_MIN16_F2 aabbMinMaxG = Compute3x3SamplesMinMaxPaired(CenterG, TopCornerG, BotCornerG, HorzG, VertG); + FFX_MIN16_F2 aabbMinMaxB = Compute3x3SamplesMinMaxPaired(CenterB, TopCornerB, BotCornerB, HorzB, VertB); + + data.clippingBox.boxCenter = FfxFloat32x3(boxCenterAndVecR.x, boxCenterAndVecG.x, boxCenterAndVecB.x); + data.clippingBox.boxVec = FfxFloat32x3(boxCenterAndVecR.y, boxCenterAndVecG.y, boxCenterAndVecB.y); + data.clippingBox.aabbMin = FfxFloat32x3(aabbMinMaxR.x, aabbMinMaxG.x, aabbMinMaxB.x); + data.clippingBox.aabbMax = FfxFloat32x3(aabbMinMaxR.y, aabbMinMaxG.y, aabbMinMaxB.y); + data.clippingBox.fBoxCenterWeight = FfxFloat32(boxCenterWeight); +#else + + iSampleIndex = 0; + + FFX_UNROLL + for (FfxInt32 row = 0; row < 3; row++) + { + FFX_UNROLL + for (FfxInt32 col = 0; col < 3; col++) + { + const FfxInt32x2 sampleColRow = FfxInt32x2(bFlipCol ? (3 - col) : col, bFlipRow ? (3 - row) : row); + const FfxFloat32x2 fOffset = fOffsetTL + FfxFloat32x2(sampleColRow); + const FfxFloat32x2 fSrcSampleOffset = fBaseSampleOffset + fOffset; + + const FfxInt32x2 iSrcSamplePos = FfxInt32x2(iSrcInputPos) + FfxInt32x2(offsetTL) + sampleColRow; + const FfxFloat32 fOnScreenFactor = FfxFloat32(IsOnScreen(FfxInt32x2(iSrcSamplePos), FfxInt32x2(RenderSize()))); + + if (!bIsInitialSample) + { + const FfxFloat32 fSampleWeight = fOnScreenFactor * FfxFloat32(GetUpsampleLanczosWeight(fSrcSampleOffset, fKernelBias)); + + data.fUpsampledColor += fSamples[iSampleIndex] * fSampleWeight; + data.fUpsampledWeight += fSampleWeight; + } + + // Update rectification box + { + const FfxFloat32 fRectificationCurveBias = -2.3f; + const FfxFloat32 fSrcSampleOffsetSq = dot(fSrcSampleOffset, fSrcSampleOffset); + const FfxFloat32 fBoxSampleWeight = exp(fRectificationCurveBias * fSrcSampleOffsetSq) * fOnScreenFactor; + + const FfxBoolean bInitialSample = (row == 0) && (col == 0); + RectificationBoxAddSample(bInitialSample, data.clippingBox, fSamples[iSampleIndex], fBoxSampleWeight); + } + ++iSampleIndex; + } + } + +#endif // #if FFX_FSR3UPSCALER_USE_XBOX_PAIRED_16BIT_MATH_OPTIMIZATIONS + + RectificationBoxComputeVarianceBoxData(data.clippingBox); + + data.fUpsampledWeight *= FfxFloat32(data.fUpsampledWeight > FSR3UPSCALER_EPSILON); + + if (data.fUpsampledWeight > FSR3UPSCALER_EPSILON) { + // Normalize for deringing (we need to compare colors) + data.fUpsampledColor = data.fUpsampledColor / data.fUpsampledWeight; + data.fUpsampledWeight *= fAverageLanczosWeightPerFrame; + + Deringing(data.clippingBox, data.fUpsampledColor); + } + + // Initial samples using tonemapped upsampling + if (bIsInitialSample) { +#if FFX_FSR3UPSCALER_OPTION_HDR_COLOR_INPUT + data.fUpsampledColor = RGBToYCoCg(InverseTonemap(YCoCgToRGB(data.clippingBox.boxCenter))); +#else + data.fUpsampledColor = data.clippingBox.boxCenter; +#endif + data.fUpsampledWeight = 1.0f; + data.fHistoryWeight = 0.0f; + } +} diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt new file mode 100644 index 000000000..5e4c27333 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/CMakeCompileOpticalflowShaders.txt @@ -0,0 +1,55 @@ +# This file is part of the FidelityFX SDK. +# +# Copyright (C) 2024 Advanced Micro Devices, Inc. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files(the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions : +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +set(OPTICALFLOW_BASE_ARGS + -reflection -deps=gcc -DFFX_GPU=1) + +set(OPTICALFLOW_PERMUTATION_ARGS + -DFFX_OPTICALFLOW_OPTION_HDR_COLOR_INPUT={0,1} + ) + +set(OPTICALFLOW_INCLUDE_ARGS + "${FFX_GPU_PATH}" + "${FFX_GPU_PATH}/opticalflow") + +if (NOT OPTICALFLOW_SHADER_EXT) + set(OPTICALFLOW_SHADER_EXT *) +endif() + +file(GLOB OPTICALFLOW_SHADERS + "shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.${OPTICALFLOW_SHADER_EXT}" + "shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.${OPTICALFLOW_SHADER_EXT}" +) + +# compile all the shaders +compile_shaders_with_depfile( + "${FFX_SC_EXECUTABLE}" + "${OPTICALFLOW_BASE_ARGS}" "${OPTICALFLOW_API_BASE_ARGS}" "${OPTICALFLOW_PERMUTATION_ARGS}" "${OPTICALFLOW_INCLUDE_ARGS}" + "${OPTICALFLOW_SHADERS}" "${FFX_PASS_SHADER_OUTPUT_PATH}" OPTICALFLOW_PERMUTATION_OUTPUTS) + +# add the header files they generate to the main list of dependencies +add_shader_output("${OPTICALFLOW_PERMUTATION_OUTPUTS}") diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h new file mode 100644 index 000000000..da315ec31 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_glsl.h @@ -0,0 +1,578 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_CALLBACKS_HLSL_H +#define FFX_OPTICALFLOW_CALLBACKS_HLSL_H + +#include "opticalflow/ffx_opticalflow_resources.h" + +// no msad4 in glsl +#define FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION 0 +#define FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS 1 +#define FFX_OPTICALFLOW_USE_HEURISTICS 1 +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#define FFX_LOCAL_SEARCH_FALLBACK 1 + +// perf optimization for h/w not supporting accelerated msad4() +//#if !defined(FFX_PREFER_WAVE64) && defined(FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION) +//#undef FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION +//#endif + +#if defined(FFX_GPU) +#include "ffx_core.h" +#endif // #if defined(FFX_GPU) + +#if defined(FFX_GPU) +#ifndef FFX_PREFER_WAVE64 +#define FFX_PREFER_WAVE64 +#endif // #if defined(FFX_GPU) + + +#include "opticalflow/ffx_opticalflow_common.h" + + +#if defined(FFX_OPTICALFLOW_BIND_CB_COMMON) + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_CB_COMMON, std140) uniform cbOF_t + { + FfxInt32x2 iInputLumaResolution; + FfxUInt32 uOpticalFlowPyramidLevel; + FfxUInt32 uOpticalFlowPyramidLevelCount; + + FfxUInt32 iFrameIndex; + FfxUInt32 backbufferTransferFunction; + FfxFloat32x2 minMaxLuminance; + } cbOF; + +FfxInt32x2 DisplaySize() +{ + return cbOF.iInputLumaResolution; +} + +FfxUInt32 FrameIndex() +{ + return cbOF.iFrameIndex; +} + +FfxUInt32 BackbufferTransferFunction() +{ + return cbOF.backbufferTransferFunction; +} + +FfxFloat32x2 MinMaxLuminance() +{ + return cbOF.minMaxLuminance; +} + +FfxBoolean CrossedSceneChangeThreshold(FfxFloat32 sceneChangeValue) +{ + return sceneChangeValue > 0.45f; +} + +FfxUInt32 OpticalFlowPyramidLevel() +{ + return cbOF.uOpticalFlowPyramidLevel; +} + +FfxUInt32 OpticalFlowPyramidLevelCount() +{ + return cbOF.uOpticalFlowPyramidLevelCount; +} + +FfxInt32x2 OpticalFlowHistogramMaxVelocity() +{ + const FfxInt32 searchRadius = 8; + FfxInt32 scale = FfxInt32(1) << (OpticalFlowPyramidLevelCount() - 1 - OpticalFlowPyramidLevel()); + FfxInt32 maxVelocity = searchRadius * scale; + return FfxInt32x2(maxVelocity, maxVelocity); +} +#endif //FFX_OPTICALFLOW_BIND_CB_COMMON + +#if defined(FFX_OPTICALFLOW_BIND_CB_SPD) + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_CB_SPD, std140) uniform cbOF_SPD_t + { + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + FfxUInt32 numWorkGroupOpticalFlowInputPyramid; + FfxUInt32 pad0_; + FfxUInt32 pad1_; + FfxUInt32 pad2_; + } cbOF_SPD; + +uint NumWorkGroups() +{ + return cbOF_SPD.numWorkGroupOpticalFlowInputPyramid; +} +#endif // defined(FFX_OPTICALFLOW_BIND_CB_SPD) + + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR) uniform texture2D r_input_color; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS) uniform texture2D r_input_motion_vectors; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) uniform utexture2D r_optical_flow_input; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) uniform utexture2D r_optical_flow_previous_input; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW) uniform itexture2D r_optical_flow; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS) uniform itexture2D r_optical_flow_previous; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO) uniform utexture2D r_optical_flow_additional_info; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS) uniform utexture2D r_optical_flow_additional_info_previous; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM) uniform utexture2D r_optical_flow_histogram; + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) uniform utexture2D r_optical_flow_global_motion_search; + #endif + + // UAV declarations + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT, r8ui) uniform uimage2D rw_optical_flow_input; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1, r8ui) uniform uimage2D rw_optical_flow_input_level_1; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2, r8ui) uniform uimage2D rw_optical_flow_input_level_2; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3, r8ui) uniform uimage2D rw_optical_flow_input_level_3; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4, r8ui) uniform uimage2D rw_optical_flow_input_level_4; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5, r8ui) uniform uimage2D rw_optical_flow_input_level_5; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6, r8ui) uniform uimage2D rw_optical_flow_input_level_6; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW, rg16i) uniform iimage2D rw_optical_flow; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL, rg16i) uniform iimage2D rw_optical_flow_next_level; + #endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO + // RWTexture2D rw_optical_flow_additional_info : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO, r32ui) uniform uimage2D rw_optical_flow_additional_info; + //#endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL + // RWTexture2D rw_optical_flow_additional_info_next_level : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL, r32ui) uniform uimage2D rw_optical_flow_additional_info_next_level; + //#endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM + // RWTexture2D rw_optical_flow_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM, r32ui) uniform uimage2D rw_optical_flow_histogram; + //#endif + //#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + // globallycoherent RWTexture2D rw_optical_flow_global_motion_search: FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH); + // layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH, r32ui) coherent uniform uimage2D rw_optical_flow_global_motion_search; + //#endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM, r32ui) uniform uimage2D rw_optical_flow_scd_histogram; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM, r32f) uniform image2D rw_optical_flow_scd_previous_histogram; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP, r32ui) uniform uimage2D rw_optical_flow_scd_temp; + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT + layout (set = 0, binding = FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT, r32ui) uniform uimage2D rw_optical_flow_scd_output; + #endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR) +FfxFloat32x4 LoadInputColor(FfxUInt32x2 iPxHistory) +{ + return texelFetch(r_input_color, FfxInt32x2(iPxHistory), 0); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS) +FfxFloat32x2 LoadGameMotionVector(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 positionScale = FfxFloat32x2(RenderSize()) / DisplaySize(); + return texelFetch(r_input_motion_vectors, FfxInt32x2(iPxPos * positionScale), 0).xy * motionVectorScale / positionScale; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +void StoreOpticalFlowInput(FfxInt32x2 iPxPos, FfxUInt32 fLuma) +{ + imageStore(rw_optical_flow_input, iPxPos, FfxUInt32x4(fLuma, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadOpticalFlowInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, texelFetch(r_optical_flow_input, iPxPos, 0).x); +#else + return texelFetch(r_optical_flow_input, iPxPos, 0).x; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadRwOpticalFlowInput(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_optical_flow_input, iPxPos).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadOpticalFlowPreviousInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, texelFetch(r_optical_flow_previous_input, iPxPos, 0).x); +#else + return texelFetch(r_optical_flow_previous_input, iPxPos, 0).x; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW) +FfxInt32x2 LoadOpticalFlow(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +FfxInt32x2 LoadRwOpticalFlow(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_optical_flow, iPxPos).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS) +FfxInt32x2 LoadPreviousOpticalFlow(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow_previous, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +void StoreOpticalFlow(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + imageStore(rw_optical_flow, iPxPos, FfxInt32x4(motionVector, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL) +void StoreOpticalFlowNextLevel(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + imageStore(rw_optical_flow_next_level, iPxPos, FfxInt32x4(motionVector, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow_additional_info, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadRwOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return imageLoad(rw_optical_flow_additional_info, iPxPos).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS) +FfxUInt32x2 LoadPreviousOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return texelFetch(r_optical_flow_additional_info_previous, iPxPos, 0).xy; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +void StoreOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + imageStore(rw_optical_flow_additional_info, iPxPos, FfxUInt32x4(additionalInfo, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL) +void StoreOpticalFlowNextLevelAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + imageStore(rw_optical_flow_additional_info_next_level, iPxPos, FfxUInt32x4(additionalInfo, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM) +FfxUInt32 LoadOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + return texelFetch(r_optical_flow_histogram, iBucketId, 0).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM) +void AtomicIncrementOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + imageAtomicAdd(rw_optical_flow_histogram, iBucketId, 1); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(texelFetch(r_optical_flow_global_motion_search, FfxInt32x2(0, 0), 0).x); + FfxInt32 vy = FfxInt32(texelFetch(r_optical_flow_global_motion_search, FfxInt32x2(1, 0), 0).x); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadRwGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(imageLoad(rw_optical_flow_global_motion_search, FfxInt32x2(0, 0)).x); + FfxInt32 vy = FfxInt32(imageLoad(rw_optical_flow_global_motion_search, FfxInt32x2(1, 0)).x); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 LoadGlobalMotionValue(FfxInt32 index) +{ + return imageLoad(rw_optical_flow_global_motion_search, FfxInt32x2(index, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +void StoreGlobalMotionValue(FfxInt32 index, FfxUInt32 value) +{ + imageStore(rw_optical_flow_global_motion_search, FfxInt32x2(index, 0), FfxUInt32x4(value, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 AtomicIncrementGlobalMotionValue(FfxInt32 index) +{ + return imageAtomicAdd(rw_optical_flow_global_motion_search, FfxInt32x2(index, 0), 1); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +FfxUInt32 LoadRwSCDHistogram(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_histogram, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void StoreSCDHistogram(FfxInt32 iIndex, FfxUInt32 value) +{ + imageStore(rw_optical_flow_scd_histogram, FfxInt32x2(iIndex, 0), FfxUInt32x4(value, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void AtomicIncrementSCDHistogram(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + imageAtomicAdd(rw_optical_flow_scd_histogram, FfxInt32x2(iIndex, 0), valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +FfxFloat32 LoadRwSCDPreviousHistogram(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_previous_histogram, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +void StoreSCDPreviousHistogram(FfxInt32 iIndex, FfxFloat32 value) +{ + imageStore(rw_optical_flow_scd_previous_histogram, FfxInt32x2(iIndex, 0), FfxFloat32x4(value, 0.0, 0.0, 0.0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +FfxUInt32 LoadRwSCDTemp(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_temp, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void AtomicIncrementSCDTemp(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + imageAtomicAdd(rw_optical_flow_scd_temp, FfxInt32x2(iIndex, 0), valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void ResetSCDTemp() +{ + imageStore(rw_optical_flow_scd_temp, FfxInt32x2(0, 0), FfxUInt32x4(0, 0, 0, 0)); + imageStore(rw_optical_flow_scd_temp, FfxInt32x2(1, 0), FfxUInt32x4(0, 0, 0, 0)); + imageStore(rw_optical_flow_scd_temp, FfxInt32x2(2, 0), FfxUInt32x4(0, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 LoadRwSCDOutput(FfxInt32 iIndex) +{ + return imageLoad(rw_optical_flow_scd_output, FfxInt32x2(iIndex, 0)).x; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +void StoreSCDOutput(FfxInt32 iIndex, FfxUInt32 value) +{ + imageStore(rw_optical_flow_scd_output, FfxInt32x2(iIndex, 0), FfxUInt32x4(value, 0, 0, 0)); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 AtomicIncrementSCDOutput(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + return imageAtomicAdd(rw_optical_flow_scd_output, FfxInt32x2(iIndex, 0), valueToAdd); +} +#endif + +//#if defined(FFX_OPTICALFLOW_BIND_UAV_DEBUG_VISUALIZATION) +//void StoreDebugVisualization(FfxUInt32x2 iPxPos, FfxFloat32x3 fColor) +//{ +// imageStore(rw_debug_visualization, iPxPos, FfxFloat32x4(fColor, 1.f)); +//} +//#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxFloat32 GetSceneChangeValue() +{ + if (FrameIndex() <= 5) + return 1.0; + else + return ffxAsFloat(LoadRwSCDOutput(SCD_OUTPUT_SCENE_CHANGE_SLOT)); +} + +FfxBoolean IsSceneChanged() +{ + if (FrameIndex() <= 5) + { + return true; + } + else + { + return (LoadRwSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT) & 0xfu) != 0; + } +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadFirstImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadSecondImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + + +void SPD_SetMipmap(FfxInt32x2 iPxPos, FfxUInt32 index, FfxFloat32 value) +{ + FfxUInt32x4 value4 = FfxUInt32x4(value, 0.0, 0.0, 0.0); + switch (index) + { + case 0: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + imageStore(rw_optical_flow_input_level_1, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + break; + case 1: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + imageStore(rw_optical_flow_input_level_2, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + break; + case 2: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + imageStore(rw_optical_flow_input_level_3, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + break; + case 3: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + imageStore(rw_optical_flow_input_level_4, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + break; + case 4: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + imageStore(rw_optical_flow_input_level_5, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + break; + case 5: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + imageStore(rw_optical_flow_input_level_6, iPxPos, value4); +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + break; + } +} + +#endif // #if defined(FFX_GPU) + +#endif // FFX_OPTICALFLOW_CALLBACKS_HLSL_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h new file mode 100644 index 000000000..bd1d48493 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_callbacks_hlsl.h @@ -0,0 +1,634 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_CALLBACKS_HLSL_H +#define FFX_OPTICALFLOW_CALLBACKS_HLSL_H + +#if defined(FFX_GPU) +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic push +#pragma dxc diagnostic ignored "-Wambig-lit-shift" +#endif //__hlsl_dx_compiler +#include "ffx_core.h" +#ifdef __hlsl_dx_compiler +#pragma dxc diagnostic pop +#endif //__hlsl_dx_compiler + +#define FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION 1 +#define FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS 1 +#define FFX_OPTICALFLOW_USE_HEURISTICS 1 +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#define FFX_LOCAL_SEARCH_FALLBACK 1 + +// perf optimization for h/w not supporting accelerated msad4() +#if !defined(FFX_PREFER_WAVE64) && defined(FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION) +#undef FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION +#endif + +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_PREFER_WAVE64 +#define FFX_PREFER_WAVE64 +#endif + + +#pragma warning(disable: 3205) // conversion from larger type to smaller + +#define DECLARE_SRV_REGISTER(regIndex) t##regIndex +#define DECLARE_UAV_REGISTER(regIndex) u##regIndex +#define DECLARE_CB_REGISTER(regIndex) b##regIndex +#define FFX_OPTICALFLOW_DECLARE_SRV(regIndex) register(DECLARE_SRV_REGISTER(regIndex)) +#define FFX_OPTICALFLOW_DECLARE_UAV(regIndex) register(DECLARE_UAV_REGISTER(regIndex)) +#define FFX_OPTICALFLOW_DECLARE_CB(regIndex) register(DECLARE_CB_REGISTER(regIndex)) + +#if defined(FFX_OPTICALFLOW_BIND_CB_COMMON) + cbuffer cbOF : FFX_OPTICALFLOW_DECLARE_CB(FFX_OPTICALFLOW_BIND_CB_COMMON) + { + FfxInt32x2 iInputLumaResolution; + FfxUInt32 uOpticalFlowPyramidLevel; + FfxUInt32 uOpticalFlowPyramidLevelCount; + + FfxUInt32 iFrameIndex; + FfxUInt32 backbufferTransferFunction; + FfxFloat32x2 minMaxLuminance; + }; +#define FFX_OPTICALFLOW_CONSTANT_BUFFER_1_SIZE 8 + +#endif //FFX_OPTICALFLOW_BIND_CB_COMMON + +#if defined(FFX_OPTICALFLOW_BIND_CB_SPD) +cbuffer cbOF_SPD : FFX_OPTICALFLOW_DECLARE_CB(FFX_OPTICALFLOW_BIND_CB_SPD) { + + FfxUInt32 mips; + FfxUInt32 numWorkGroups; + FfxUInt32x2 workGroupOffset; + FfxUInt32 numWorkGroupOpticalFlowInputPyramid; + FfxUInt32 pad0_; + FfxUInt32 pad1_; + FfxUInt32 pad2_; +}; + +FfxUInt32 NumWorkGroups() +{ + return numWorkGroupOpticalFlowInputPyramid; +} +#endif //FFX_OPTICALFLOW_BIND_CB_SPD + +#define FFX_OPTICALFLOW_CONSTANT_BUFFER_2_SIZE 8 + +#define FFX_OPTICALFLOW_DESCRIPTOR_COUNT 32 + +#define FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(p) FFX_OPTICALFLOW_ROOTSIG_STR(p) +#define FFX_OPTICALFLOW_ROOTSIG_STR(p) #p +#define FFX_OPTICALFLOW_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "CBV(b0), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_POINT, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK), " \ + "StaticSampler(s1, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] + +#define FFX_OPTICALFLOW_CB2_ROOTSIG [RootSignature( "DescriptorTable(UAV(u0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "DescriptorTable(SRV(t0, numDescriptors = " FFX_OPTICALFLOW_ROOTSIG_STRINGIFY(FFX_OPTICALFLOW_DESCRIPTOR_COUNT) ")), " \ + "CBV(b0), " \ + "StaticSampler(s0, filter = FILTER_MIN_MAG_MIP_POINT, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK), " \ + "StaticSampler(s1, filter = FILTER_MIN_MAG_MIP_LINEAR, " \ + "addressU = TEXTURE_ADDRESS_CLAMP, " \ + "addressV = TEXTURE_ADDRESS_CLAMP, " \ + "addressW = TEXTURE_ADDRESS_CLAMP, " \ + "comparisonFunc = COMPARISON_NEVER, " \ + "borderColor = STATIC_BORDER_COLOR_TRANSPARENT_BLACK)" )] +#if defined(FFX_OPTICALFLOW_EMBED_ROOTSIG) +#define FFX_OPTICALFLOW_EMBED_ROOTSIG_CONTENT FFX_OPTICALFLOW_ROOTSIG +#define FFX_OPTICALFLOW_EMBED_CB2_ROOTSIG_CONTENT FFX_OPTICALFLOW_CB2_ROOTSIG +#else +#define FFX_OPTICALFLOW_EMBED_ROOTSIG_CONTENT +#define FFX_OPTICALFLOW_EMBED_CB2_ROOTSIG_CONTENT +#endif // #if FFX_OPTICALFLOW_EMBED_ROOTSIG + +FfxInt32x2 DisplaySize() +{ + return iInputLumaResolution; +} + +FfxUInt32 FrameIndex() +{ + return iFrameIndex; +} + +FfxUInt32 BackbufferTransferFunction() +{ + return backbufferTransferFunction; +} + +FfxFloat32x2 MinMaxLuminance() +{ + return minMaxLuminance; +} + +FfxBoolean CrossedSceneChangeThreshold(FfxFloat32 sceneChangeValue) +{ + return sceneChangeValue > 0.45f; +} + +FfxUInt32 OpticalFlowPyramidLevel() +{ + return uOpticalFlowPyramidLevel; +} + +FfxUInt32 OpticalFlowPyramidLevelCount() +{ + return uOpticalFlowPyramidLevelCount; +} + +FfxInt32x2 OpticalFlowHistogramMaxVelocity() +{ + const FfxInt32 searchRadius = 8; + FfxInt32 scale = FfxInt32(1) << (OpticalFlowPyramidLevelCount() - 1 - OpticalFlowPyramidLevel()); + FfxInt32 maxVelocity = searchRadius * scale; + return FfxInt32x2(maxVelocity, maxVelocity); +} + + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR + Texture2D r_input_color : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS + Texture2D r_input_motion_vectors : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT + Texture2D r_optical_flow_input : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT + Texture2D r_optical_flow_previous_input : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW + Texture2D r_optical_flow : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS + Texture2D r_optical_flow_previous : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO + Texture2D r_optical_flow_additional_info : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS + Texture2D r_optical_flow_additional_info_previous : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM + Texture2D r_optical_flow_histogram : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + Texture2D r_optical_flow_global_motion_search : FFX_OPTICALFLOW_DECLARE_SRV(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH); + #endif + + // UAV declarations + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT + RWTexture2D rw_optical_flow_input : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + globallycoherent RWTexture2D rw_optical_flow_input_level_1 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + globallycoherent RWTexture2D rw_optical_flow_input_level_2 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + globallycoherent RWTexture2D rw_optical_flow_input_level_3 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + globallycoherent RWTexture2D rw_optical_flow_input_level_4 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + globallycoherent RWTexture2D rw_optical_flow_input_level_5 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + globallycoherent RWTexture2D rw_optical_flow_input_level_6 : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW + RWTexture2D rw_optical_flow : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL + RWTexture2D rw_optical_flow_next_level : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO + RWTexture2D rw_optical_flow_additional_info : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL + RWTexture2D rw_optical_flow_additional_info_next_level : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM + RWTexture2D rw_optical_flow_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH + globallycoherent RWTexture2D rw_optical_flow_global_motion_search: FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM + RWTexture2D rw_optical_flow_scd_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM + RWTexture2D rw_optical_flow_scd_previous_histogram : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP + RWTexture2D rw_optical_flow_scd_temp : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP); + #endif + #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT + RWTexture2D rw_optical_flow_scd_output : FFX_OPTICALFLOW_DECLARE_UAV(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT); + #endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR) +FfxFloat32x4 LoadInputColor(FfxUInt32x2 iPxHistory) +{ + return r_input_color[iPxHistory]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_INPUT_MOTION_VECTORS) +FfxFloat32x2 LoadGameMotionVector(FfxInt32x2 iPxPos) +{ + FfxFloat32x2 positionScale = FfxFloat32x2(RenderSize()) / DisplaySize(); + return r_input_motion_vectors[iPxPos * positionScale] * motionVectorScale / positionScale; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +void StoreOpticalFlowInput(FfxInt32x2 iPxPos, FfxUInt32 fLuma) +{ + rw_optical_flow_input[iPxPos] = fLuma; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadOpticalFlowInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, r_optical_flow_input[iPxPos]); +#else + return r_optical_flow_input[iPxPos]; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadRwOpticalFlowInput(FfxInt32x2 iPxPos) +{ + return rw_optical_flow_input[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadOpticalFlowPreviousInput(FfxInt32x2 iPxPos) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return max(1, r_optical_flow_previous_input[iPxPos]); +#else + return r_optical_flow_previous_input[iPxPos]; +#endif +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW) +FfxInt32x2 LoadOpticalFlow(FfxInt32x2 iPxPos) +{ + return r_optical_flow[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +FfxInt32x2 LoadRwOpticalFlow(FfxInt32x2 iPxPos) +{ + return rw_optical_flow[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS) +FfxInt32x2 LoadPreviousOpticalFlow(FfxInt32x2 iPxPos) +{ + return r_optical_flow_previous[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW) +void StoreOpticalFlow(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + rw_optical_flow[iPxPos] = motionVector; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL) +void StoreOpticalFlowNextLevel(FfxInt32x2 iPxPos, FfxInt32x2 motionVector) +{ + rw_optical_flow_next_level[iPxPos] = motionVector; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return r_optical_flow_additional_info[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +FfxUInt32x2 LoadRwOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return rw_optical_flow_additional_info[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_ADDITIONAL_INFO_PREVIOUS) +FfxUInt32x2 LoadPreviousOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos) +{ + return r_optical_flow_additional_info_previous[iPxPos]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO) +void StoreOpticalFlowAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + rw_optical_flow_additional_info[iPxPos] = additionalInfo; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_ADDITIONAL_INFO_NEXT_LEVEL) +void StoreOpticalFlowNextLevelAdditionalInfo(FfxInt32x2 iPxPos, FfxUInt32x2 additionalInfo) +{ + rw_optical_flow_additional_info_next_level[iPxPos] = additionalInfo; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_HISTOGRAM) +FfxUInt32 LoadOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + return r_optical_flow_histogram[iBucketId]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_HISTOGRAM) +void AtomicIncrementOpticalFlowHistogram(FfxInt32x2 iBucketId) +{ + InterlockedAdd(rw_optical_flow_histogram[iBucketId], 1); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(r_optical_flow_global_motion_search[FfxInt32x2(0, 0)]); + FfxInt32 vy = FfxInt32(r_optical_flow_global_motion_search[FfxInt32x2(1, 0)]); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxInt32x2 LoadRwGlobalMotionVector() +{ + FfxInt32 vx = FfxInt32(rw_optical_flow_global_motion_search[FfxInt32x2(0, 0)]); + FfxInt32 vy = FfxInt32(rw_optical_flow_global_motion_search[FfxInt32x2(1, 0)]); + return FfxInt32x2(vx, vy); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 LoadGlobalMotionValue(FfxInt32 index) +{ + return rw_optical_flow_global_motion_search[FfxInt32x2(index, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +void StoreGlobalMotionValue(FfxInt32 index, FfxUInt32 value) +{ + rw_optical_flow_global_motion_search[FfxInt32x2(index, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_GLOBAL_MOTION_SEARCH) +FfxUInt32 AtomicIncrementGlobalMotionValue(FfxInt32 index) +{ + FfxUInt32 initialValue; + InterlockedAdd(rw_optical_flow_global_motion_search[FfxInt32x2(index, 0)], 1, initialValue); + return initialValue; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +FfxUInt32 LoadRwSCDHistogram(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_histogram[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void StoreSCDHistogram(FfxInt32 iIndex, FfxUInt32 value) +{ + rw_optical_flow_scd_histogram[FfxInt32x2(iIndex, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM) +void AtomicIncrementSCDHistogram(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + InterlockedAdd(rw_optical_flow_scd_histogram[FfxInt32x2(iIndex, 0)], valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +FfxFloat32 LoadRwSCDPreviousHistogram(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_previous_histogram[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM) +void StoreSCDPreviousHistogram(FfxInt32 iIndex, FfxFloat32 value) +{ + rw_optical_flow_scd_previous_histogram[FfxInt32x2(iIndex, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +FfxUInt32 LoadRwSCDTemp(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_temp[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void AtomicIncrementSCDTemp(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + InterlockedAdd(rw_optical_flow_scd_temp[FfxInt32x2(iIndex, 0)], valueToAdd); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP) +void ResetSCDTemp() +{ + rw_optical_flow_scd_temp[FfxInt32x2(0, 0)] = 0; + rw_optical_flow_scd_temp[FfxInt32x2(1, 0)] = 0; + rw_optical_flow_scd_temp[FfxInt32x2(2, 0)] = 0; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 LoadRwSCDOutput(FfxInt32 iIndex) +{ + return rw_optical_flow_scd_output[FfxInt32x2(iIndex, 0)]; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +void StoreSCDOutput(FfxInt32 iIndex, FfxUInt32 value) +{ + rw_optical_flow_scd_output[FfxInt32x2(iIndex, 0)] = value; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxUInt32 AtomicIncrementSCDOutput(FfxInt32 iIndex, FfxUInt32 valueToAdd) +{ + FfxUInt32 initialValue; + InterlockedAdd(rw_optical_flow_scd_output[FfxInt32x2(iIndex, 0)], valueToAdd, initialValue); + return initialValue; +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_DEBUG_VISUALIZATION) +void StoreDebugVisualization(FfxUInt32x2 iPxPos, FfxFloat32x3 fColor) +{ + rw_debug_visualization[iPxPos] = FfxFloat32x4(fColor, 1.f); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT) +FfxFloat32 GetSceneChangeValue() +{ + if (FrameIndex() <= 5) + return 1.0; + else + return ffxAsFloat(LoadRwSCDOutput(SCD_OUTPUT_SCENE_CHANGE_SLOT)); +} + +FfxBoolean IsSceneChanged() +{ + if (FrameIndex() <= 5) + { + return 1.0; + } + else + { + return (LoadRwSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT) & 0xfu) != 0; + } +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT) +FfxUInt32 LoadFirstImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + +#if defined(FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT) +FfxUInt32 LoadSecondImagePackedLuma(FfxInt32x2 iPxPos) +{ + const FfxInt32 lumaTextureWidth = DisplaySize().x >> OpticalFlowPyramidLevel(); + const FfxInt32 lumaTextureHeight = DisplaySize().y >> OpticalFlowPyramidLevel(); + + FfxInt32x2 adjustedPos = FfxInt32x2( + ffxClamp(iPxPos.x, 0, lumaTextureWidth - 4), + ffxClamp(iPxPos.y, 0, lumaTextureHeight - 1) + ); + + FfxUInt32 luma0 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(0, 0)); + FfxUInt32 luma1 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(1, 0)); + FfxUInt32 luma2 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(2, 0)); + FfxUInt32 luma3 = LoadOpticalFlowPreviousInput(adjustedPos + FfxInt32x2(3, 0)); + + return GetPackedLuma(lumaTextureWidth, iPxPos.x, luma0, luma1, luma2, luma3); +} +#endif + + +void SPD_SetMipmap(int2 iPxPos, int index, float value) +{ + switch (index) + { + case 0: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + rw_optical_flow_input_level_1[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 + break; + case 1: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + rw_optical_flow_input_level_2[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 + break; + case 2: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + rw_optical_flow_input_level_3[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 + break; + case 3: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + rw_optical_flow_input_level_4[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 + break; + case 4: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + rw_optical_flow_input_level_5[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 + break; + case 5: +#if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + rw_optical_flow_input_level_6[iPxPos] = value; +#endif // #if defined FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 + break; + } +} + +#endif // #if defined(FFX_GPU) + +#endif // FFX_OPTICALFLOW_CALLBACKS_HLSL_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h new file mode 100644 index 000000000..907e7ac79 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_common.h @@ -0,0 +1,99 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#if !defined(FFX_OPTICALFLOW_COMMON_H) +#define FFX_OPTICALFLOW_COMMON_H + +#if defined(FFX_GPU) + +#define SCD_OUTPUT_SCENE_CHANGE_SLOT 0 +#define SCD_OUTPUT_HISTORY_BITS_SLOT 1 +#define SCD_OUTPUT_COMPLETED_WORKGROUPS_SLOT 2 + + +#define ffxClamp(x, a, b) (ffxMax(a, ffxMin(b, x))) + + +FfxUInt32 GetPackedLuma(FfxInt32 width, FfxInt32 x, FfxUInt32 luma0, FfxUInt32 luma1, FfxUInt32 luma2, FfxUInt32 luma3) +{ + FfxUInt32 packedLuma = luma0 | (luma1 << 8) | (luma2 << 16) | (luma3 << 24); + + if (x < 0) + { + FfxUInt32 outOfScreenFiller = packedLuma & 0xffu; + if (x <= -1) + packedLuma = (packedLuma << 8) | outOfScreenFiller; + if (x <= -2) + packedLuma = (packedLuma << 8) | outOfScreenFiller; + if (x <= -3) + packedLuma = (packedLuma << 8) | outOfScreenFiller; + } + else if (x > width - 4) + { + FfxUInt32 outOfScreenFiller = packedLuma & 0xff000000u; + if (x >= width - 3) + packedLuma = (packedLuma >> 8) | outOfScreenFiller; + if (x >= width - 2) + packedLuma = (packedLuma >> 8) | outOfScreenFiller; + if (x >= width - 1) + packedLuma = (packedLuma >> 8) | outOfScreenFiller; + } + return packedLuma; +} + +FfxUInt32 Sad(FfxUInt32 a, FfxUInt32 b) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return msad4(a, FfxUInt32x2(b, 0), FfxUInt32x4(0, 0, 0, 0)).x; +#else + return abs(FfxInt32((a >> 0) & 0xffu) - FfxInt32((b >> 0) & 0xffu)) + + abs(FfxInt32((a >> 8) & 0xffu) - FfxInt32((b >> 8) & 0xffu)) + + abs(FfxInt32((a >> 16) & 0xffu) - FfxInt32((b >> 16) & 0xffu)) + + abs(FfxInt32((a >> 24) & 0xffu) - FfxInt32((b >> 24) & 0xffu)); +#endif +} + +FfxUInt32x4 QSad(FfxUInt32 a0, FfxUInt32 a1, FfxUInt32 b) +{ +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + return msad4(b, FfxUInt32x2(a0, a1), FfxUInt32x4(0, 0, 0, 0)); +#else + FfxUInt32x4 sad; + sad.x = Sad(a0, b); + + a0 = (a0 >> 8) | ((a1 & 0xffu) << 24); + a1 >>= 8; + sad.y = Sad(a0, b); + + a0 = (a0 >> 8) | ((a1 & 0xffu) << 24); + a1 >>= 8; + sad.z = Sad(a0, b); + + a0 = (a0 >> 8) | ((a1 & 0xffu) << 24); + sad.w = Sad(a0, b); + return sad; +#endif +} + +#endif // #if defined(FFX_GPU) + +#endif //!defined(FFX_OPTICALFLOW_COMMON_H) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h new file mode 100644 index 000000000..b83710c95 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_luminance_pyramid.h @@ -0,0 +1,107 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_COMPUTE_LUMINANCE_PYRAMID_H +#define FFX_OPTICALFLOW_COMPUTE_LUMINANCE_PYRAMID_H + +FFX_GROUPSHARED FfxFloat32 spdIntermediateR[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateG[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateB[16][16]; +FFX_GROUPSHARED FfxFloat32 spdIntermediateA[16][16]; + +void SPD_IncreaseAtomicCounter(inout FfxUInt32 spdCounter) +{ +} + +void SPD_ResetAtomicCounter() +{ +} + +FfxFloat32x4 SpdLoadSourceImage(FfxFloat32x2 tex, FfxUInt32 slice) +{ + FfxFloat32 luma = LoadRwOpticalFlowInput(FfxInt32x2(tex)); + return FfxFloat32x4(luma, 0, 0, 0); +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 tex, FfxUInt32 slice) +{ + return FfxFloat32x4(0, 0, 0, 0); +} + +void SpdStore(FfxInt32x2 pix, FfxFloat32x4 outValue, FfxUInt32 index, FfxUInt32 slice) +{ + SPD_SetMipmap(pix, index, outValue.r); +} + +void SpdIncreaseAtomicCounter(FfxUInt32 slice) +{ +} + +FfxUInt32 SpdGetAtomicCounter() +{ + return 0; +} + +void SpdResetAtomicCounter(FfxUInt32 slice) +{ + SPD_ResetAtomicCounter(); +} + +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4( + spdIntermediateR[x][y], + spdIntermediateG[x][y], + spdIntermediateB[x][y], + spdIntermediateA[x][y]); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ + spdIntermediateR[x][y] = value.x; + spdIntermediateG[x][y] = value.y; + spdIntermediateB[x][y] = value.z; + spdIntermediateA[x][y] = value.w; +} +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return (v0 + v1 + v2 + v3) * 0.25; +} + +#ifdef FFX_HALF +#undef FFX_HALF +#endif + +// https://github.com/GPUOpen-Effects/FidelityFX-SPD/blob/master/docs/FidelityFX_SPD.pdf +#include "spd/ffx_spd.h" + +void ComputeOpticalFlowInputPyramid(FfxInt32x2 iGroupId, FfxInt32 iLocalIndex) +{ + SpdDownsample( + FfxUInt32x2(iGroupId.xy), + FfxUInt32(iLocalIndex), + 6, // mip levels to generate + FfxUInt32(NumWorkGroups()), + 1 // single slice + ); +} + +#endif // FFX_OPTICALFLOW_COMPUTE_LUMINANCE_PYRAMID_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h new file mode 100644 index 000000000..9c1b522b6 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_optical_flow_v5.h @@ -0,0 +1,279 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_COMPUTE_OPTICAL_FLOW_V5_H +#define FFX_OPTICALFLOW_COMPUTE_OPTICAL_FLOW_V5_H + +#define CompareSize (4 * 2) +#define BlockSizeY 8 +#define BlockSizeX 8 +#define ThreadCount (4 * 16) +#define SearchRadiusX (8) +#define SearchRadiusY (8) +#define BlockCount 2 + +#define SearchBufferSizeX ((CompareSize + SearchRadiusX*2)/4) +#define SearchBufferSizeY (CompareSize + SearchRadiusY*2) + +FFX_GROUPSHARED FfxUInt32 pixels[CompareSize][CompareSize / 4]; +FFX_GROUPSHARED FfxUInt32 searchBuffer[1][SearchBufferSizeY * SearchBufferSizeX]; +#define bankBreaker 1 +FFX_GROUPSHARED FfxUInt32 sadMapBuffer[4][SearchRadiusY * 2][(SearchRadiusX * 2) / 4 + bankBreaker]; + +#define MaxWaves 2 +FFX_GROUPSHARED FfxUInt32 sWaveSad[MaxWaves]; +FFX_GROUPSHARED FfxUInt32 sWaveMin[MaxWaves]; + +FfxUInt32 BlockSad64(FfxUInt32 blockSadSum, FfxInt32 iLocalIndex, FfxInt32 iLaneToBlockId, FfxInt32 block) +{ + if (iLaneToBlockId != block) + { + blockSadSum = 0u; + } + blockSadSum = ffxWaveSum(blockSadSum); + + if (ffxWaveLaneCount() == 32) + { + FfxInt32 waveId = iLocalIndex >> 5u; + if (ffxWaveIsFirstLane()) + { + sWaveSad[waveId] = blockSadSum; + } + FFX_GROUP_MEMORY_BARRIER; + blockSadSum += sWaveSad[waveId ^ 1]; + } + + return blockSadSum; +} + +FfxUInt32 SadMapMinReduction256(FfxInt32x2 iSearchId, FfxInt32 iLocalIndex) +{ + FfxUInt32 min01 = ffxMin(sadMapBuffer[0][iSearchId.y][iSearchId.x], sadMapBuffer[1][iSearchId.y][iSearchId.x]); + FfxUInt32 min23 = ffxMin(sadMapBuffer[2][iSearchId.y][iSearchId.x], sadMapBuffer[3][iSearchId.y][iSearchId.x]); + FfxUInt32 min0123 = ffxMin(min01, min23); + min0123 = ffxWaveMin(min0123); + + if (ffxWaveLaneCount() == 32) + { + FfxInt32 waveId = iLocalIndex >> 5u; + + if (ffxWaveIsFirstLane()) + { + sWaveMin[waveId] = min0123; + } + FFX_GROUP_MEMORY_BARRIER; + min0123 = ffxMin(min0123, sWaveMin[waveId ^ 1]); + } + + return min0123; +} + +void LoadSearchBuffer(FfxInt32 iLocalIndex, FfxInt32x2 iPxPosShifted) +{ + FfxInt32 baseX = (iPxPosShifted.x - SearchRadiusX); + FfxInt32 baseY = (iPxPosShifted.y - SearchRadiusY); + + for (FfxInt32 id = iLocalIndex; id < SearchBufferSizeX * SearchBufferSizeY; id += ThreadCount) + { + FfxInt32 idx = id % SearchBufferSizeX; + FfxInt32 idy = id / SearchBufferSizeX; + FfxInt32 x = baseX + idx * 4; + FfxInt32 y = baseY + idy; + searchBuffer[0][id] = LoadSecondImagePackedLuma(FfxInt32x2(x, y)); + } + FFX_GROUP_MEMORY_BARRIER; +} + +FfxUInt32x4 CalculateQSads2(FfxInt32x2 iSearchId) +{ + FfxUInt32x4 sad = ffxBroadcast4(0u); + +#if FFX_OPTICALFLOW_USE_MSAD4_INSTRUCTION == 1 + + FfxInt32 idx = iSearchId.y * 6 + iSearchId.x; + + sad = msad4(pixels[0][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[0][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[1][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[1][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[2][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[2][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[3][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[3][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[4][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[4][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[5][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[5][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[6][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[6][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + idx += 6; + sad = msad4(pixels[7][0], FfxUInt32x2(searchBuffer[0][idx], searchBuffer[0][idx + 1]), sad); + sad = msad4(pixels[7][1], FfxUInt32x2(searchBuffer[0][idx + 1], searchBuffer[0][idx + 2]), sad); + +#else + for (FfxInt32 dy = 0; dy < CompareSize; dy++) + { + FfxInt32 rowOffset = (iSearchId.y + dy) * SearchBufferSizeX; + FfxUInt32 a0 = searchBuffer[0][rowOffset + iSearchId.x]; + FfxUInt32 a1 = searchBuffer[0][rowOffset + iSearchId.x + 1]; + FfxUInt32 a2 = searchBuffer[0][rowOffset + iSearchId.x + 2]; + sad += QSad(a0, a1, pixels[dy][0]); + sad += QSad(a1, a2, pixels[dy][1]); + } +#endif + + return sad; +} + +FfxUInt32x2 abs_2(FfxInt32x2 val) +{ + FfxInt32x2 tmp = val; + FfxInt32x2 mask = tmp >> 31; + FfxUInt32x2 res = (tmp + mask) ^ mask; + return res; +} + +FfxUInt32 EncodeSearchCoord(FfxInt32x2 coord) +{ +#if FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 + FfxUInt32x2 absCoord = FfxUInt32x2(abs_2(coord - 8)); + return FfxUInt32(absCoord.y << 12) | FfxUInt32(absCoord.x << 8) | FfxUInt32(coord.y << 4) | FfxUInt32(coord.x); +#else //FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 + return FfxUInt32(coord.y << 8) | FfxUInt32(coord.x); +#endif //FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 +} + +FfxInt32x2 DecodeSearchCoord(FfxUInt32 bits) +{ +#if FFX_OPTICALFLOW_FIX_TOP_LEFT_BIAS == 1 + FfxInt32 dx = FfxInt32(bits & 0xfu) - SearchRadiusX; + FfxInt32 dy = FfxInt32((bits >> 4) & 0xfu) - SearchRadiusY; + + return FfxInt32x2(dx, dy); +#else + FfxInt32 dx = FfxInt32(bits & 0xffu) - SearchRadiusX; + FfxInt32 dy = FfxInt32((bits >> 8) & 0xffu) - SearchRadiusY; + + return FfxInt32x2(dx, dy); +#endif +} + +void PrepareSadMap(FfxInt32x2 iSearchId, FfxUInt32x4 qsad) +{ + sadMapBuffer[0][iSearchId.y][iSearchId.x] = (qsad.x << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 0, iSearchId.y)); + sadMapBuffer[1][iSearchId.y][iSearchId.x] = (qsad.y << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 1, iSearchId.y)); + sadMapBuffer[2][iSearchId.y][iSearchId.x] = (qsad.z << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 2, iSearchId.y)); + sadMapBuffer[3][iSearchId.y][iSearchId.x] = (qsad.w << 16) | EncodeSearchCoord(FfxInt32x2(iSearchId.x * 4 + 3, iSearchId.y)); + FFX_GROUP_MEMORY_BARRIER; +} + + +uint ABfe(uint src, uint off, uint bits) { uint mask = (1u << bits) - 1u; return (src >> off) & mask; } +uint ABfi(uint src, uint ins, uint mask) { return (ins & mask) | (src & (~mask)); } +uint ABfiM(uint src, uint ins, uint bits) { uint mask = (1u << bits) - 1u; return (ins & mask) | (src & (~mask)); } +void MapThreads(in FfxInt32x2 iGroupId, in FfxInt32 iLocalIndex, + out FfxInt32x2 iSearchId, out FfxInt32x2 iPxPos, out FfxInt32 iLaneToBlockId) +{ + iSearchId = FfxInt32x2(ABfe(iLocalIndex, 0u, 2u), ABfe(iLocalIndex, 2u, 4u)); + iLaneToBlockId = FfxInt32(ABfe(iLocalIndex, 1u, 1u) | (ABfe(iLocalIndex, 5u, 1u) << 1u)); + iPxPos = (iGroupId << 4u) + iSearchId * FfxInt32x2(4, 1); +} + +void ComputeOpticalFlowAdvanced(FfxInt32x2 iGlobalId, FfxInt32x2 iLocalId, FfxInt32x2 iGroupId, FfxInt32 iLocalIndex) +{ + FfxInt32x2 iSearchId; + FfxInt32x2 iPxPos; + FfxInt32 iLaneToBlockId; + MapThreads(iGroupId, iLocalIndex, iSearchId, iPxPos, iLaneToBlockId); + + FfxInt32x2 currentOFPos = iPxPos >> 3u; + + if (IsSceneChanged()) + { + if ((iSearchId.y & 0x7) == 0 && (iSearchId.x & 0x1) == 0) + { + StoreOpticalFlow(currentOFPos, FfxInt32x2(0, 0)); + } + + return; + } + + const FfxBoolean bUsePredictionFromPreviousLevel = (OpticalFlowPyramidLevel() != OpticalFlowPyramidLevelCount() - 1); + + FfxUInt32 packedLuma_4blocks = LoadFirstImagePackedLuma(iPxPos); + +#if FFX_LOCAL_SEARCH_FALLBACK == 1 + FfxUInt32 prevPackedLuma_4blocks = LoadSecondImagePackedLuma(iPxPos); + FfxUInt32 sad_4blocks = Sad(packedLuma_4blocks, prevPackedLuma_4blocks); +#endif //FFX_LOCAL_SEARCH_FALLBACK + + FfxInt32x2 ofGroupOffset = iGroupId << 1u; + FfxInt32x2 pixelGroupOffset = iGroupId << 4u; + + FfxInt32x2 blockId; + for (blockId.y = 0; blockId.y < BlockCount; blockId.y++) + { + for (blockId.x = 0; blockId.x < BlockCount; blockId.x++) + { + FfxInt32x2 currentVector = LoadRwOpticalFlow(ofGroupOffset + blockId); + if (!bUsePredictionFromPreviousLevel) + { + currentVector = FfxInt32x2(0, 0); + } + + if (iLaneToBlockId == blockId.y * 2 + blockId.x) + { + pixels[iSearchId.y & 0x7][iSearchId.x & 0x1] = packedLuma_4blocks; + } + + LoadSearchBuffer(iLocalIndex, pixelGroupOffset + blockId * 8 + currentVector); + + FfxUInt32x4 qsad = CalculateQSads2(iSearchId); + + PrepareSadMap(iSearchId, qsad); + FfxUInt32 minSad = SadMapMinReduction256(iSearchId, iLocalIndex); + + FfxInt32x2 minSadCoord = DecodeSearchCoord(minSad); + FfxInt32x2 newVector = currentVector + minSadCoord; + +#if FFX_LOCAL_SEARCH_FALLBACK == 1 + FfxUInt32 blockSadSum = BlockSad64(sad_4blocks, iLocalIndex, iLaneToBlockId, blockId.x + blockId.y * 2); + if (OpticalFlowPyramidLevel() == 0 && blockSadSum <= (minSad >> 16u)) + { + newVector = FfxInt32x2(0, 0); + } +#endif //FFX_LOCAL_SEARCH_FALLBACK + + { + StoreOpticalFlow(ofGroupOffset + blockId, newVector); + } + } + } +} + +#endif // FFX_OPTICALFLOW_COMPUTE_OPTICAL_FLOW_V5_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h new file mode 100644 index 000000000..7f473f657 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_compute_scd_divergence.h @@ -0,0 +1,159 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_COMPUTE_SCD_DIVERGENCE_H +#define FFX_OPTICALFLOW_COMPUTE_SCD_DIVERGENCE_H + +FFX_GROUPSHARED FfxFloat32 sourceHistogram[256]; +FFX_GROUPSHARED FfxFloat32 filteredHistogram[256]; +FFX_GROUPSHARED FfxFloat32 tempBuffer[256]; +FFX_GROUPSHARED FfxFloat32x2 tempBuffer2[256]; + +void ComputeSCDHistogramsDivergence(FfxInt32x3 iGlobalId, FfxInt32x2 iLocalId, FfxInt32 iLocalIndex, FfxInt32x2 iGroupId, FfxInt32x2 iGroupSize) +{ + FFX_STATIC const FfxFloat32 Factor = 1000000.0; + FFX_STATIC const FfxInt32 WhereToStop = 3*9 - 1; + FFX_STATIC const FfxInt32 HistogramCount = 3 * 3; + + FFX_STATIC const FfxFloat32 Kernel[] = { + 0.0088122291, 0.027143577, 0.065114059, 0.12164907, 0.17699835, 0.20056541 + }; + + sourceHistogram[iLocalIndex] = FfxFloat32(LoadRwSCDHistogram(iGlobalId.x)); + FFX_GROUP_MEMORY_BARRIER; + + const FfxInt32 kernelShift = -5; + const FfxInt32 indexToRead = iLocalIndex + kernelShift; + + FfxFloat32 val = 0.0; + val += Kernel[0] * sourceHistogram[ffxClamp(indexToRead + 0, 0, 255)]; + val += Kernel[1] * sourceHistogram[ffxClamp(indexToRead + 1, 0, 255)]; + val += Kernel[2] * sourceHistogram[ffxClamp(indexToRead + 2, 0, 255)]; + val += Kernel[3] * sourceHistogram[ffxClamp(indexToRead + 3, 0, 255)]; + val += Kernel[4] * sourceHistogram[ffxClamp(indexToRead + 4, 0, 255)]; + val += Kernel[5] * sourceHistogram[ffxClamp(indexToRead + 5, 0, 255)]; + val += Kernel[4] * sourceHistogram[ffxClamp(indexToRead + 6, 0, 255)]; + val += Kernel[3] * sourceHistogram[ffxClamp(indexToRead + 7, 0, 255)]; + val += Kernel[2] * sourceHistogram[ffxClamp(indexToRead + 8, 0, 255)]; + val += Kernel[1] * sourceHistogram[ffxClamp(indexToRead + 9, 0, 255)]; + val += Kernel[0] * sourceHistogram[ffxClamp(indexToRead + 10, 0, 255)]; + + val += 1.0; + + if (iGlobalId.y == 0) + { + if (iLocalIndex == 0) + filteredHistogram[255] = 1.0; + else + filteredHistogram[iLocalIndex - 1] = val; + } + else if (iGlobalId.y == 1) + { + filteredHistogram[iLocalIndex] = val; + } + else if (iGlobalId.y == 2) + { + if (iLocalIndex == 255) + filteredHistogram[0] = 1.0; + else + filteredHistogram[iLocalIndex + 1] = val; + } + FFX_GROUP_MEMORY_BARRIER; + + tempBuffer[iLocalIndex] = filteredHistogram[iLocalIndex]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 128) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 128]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 64) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 64]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 32) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 32]; + if (iLocalIndex < 16) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 16]; + if (iLocalIndex < 8 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 8]; + if (iLocalIndex < 4 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 4]; + if (iLocalIndex < 2 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 2]; + if (iLocalIndex < 1 ) tempBuffer[iLocalIndex] += tempBuffer[iLocalIndex + 1]; + FFX_GROUP_MEMORY_BARRIER; + + filteredHistogram[iLocalIndex] /= tempBuffer[0]; + + FfxFloat32 currentFilteredHistogramsValue = filteredHistogram[iLocalIndex]; + FfxFloat32 previousHistogramsValue = LoadRwSCDPreviousHistogram(iGlobalId.x); + + tempBuffer2[iLocalIndex] = FfxFloat32x2( + currentFilteredHistogramsValue * log(currentFilteredHistogramsValue / previousHistogramsValue), + previousHistogramsValue * log(previousHistogramsValue / currentFilteredHistogramsValue) + ); + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 128) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 128]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 64) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 64]; + FFX_GROUP_MEMORY_BARRIER; + + if (iLocalIndex < 32) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 32]; + if (iLocalIndex < 16) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 16]; + if (iLocalIndex < 8 ) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 8]; + if (iLocalIndex < 4 ) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 4]; + if (iLocalIndex < 2 ) tempBuffer2[iLocalIndex] += tempBuffer2[iLocalIndex + 2]; + + if (iLocalIndex == 0) + { + FfxFloat32x2 sum = tempBuffer2[0] + tempBuffer2[1]; + + FfxFloat32 resFloat = 1 - exp(-(abs(sum.x) + abs(sum.y))); + FfxUInt32 resUInt = FfxUInt32((resFloat / FfxFloat32(HistogramCount)) * Factor); + AtomicIncrementSCDTemp(iGlobalId.y, resUInt); + + FfxUInt32 oldFinishedGroupCount = AtomicIncrementSCDOutput(SCD_OUTPUT_COMPLETED_WORKGROUPS_SLOT, 1); + if (oldFinishedGroupCount == WhereToStop) + { + FfxUInt32 res0 = LoadRwSCDTemp(0); + FfxUInt32 res1 = LoadRwSCDTemp(1); + FfxUInt32 res2 = LoadRwSCDTemp(2); + FfxFloat32 sceneChangeValue = ffxMin(res0, ffxMin(res1, res2)) / Factor; + + FfxUInt32 history = LoadRwSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT) << 1; + if (CrossedSceneChangeThreshold(sceneChangeValue)) + { + history |= 1; + } + StoreSCDOutput(SCD_OUTPUT_SCENE_CHANGE_SLOT, ffxAsUInt32(sceneChangeValue)); + StoreSCDOutput(SCD_OUTPUT_HISTORY_BITS_SLOT, history); + StoreSCDOutput(SCD_OUTPUT_COMPLETED_WORKGROUPS_SLOT, 0); + + ResetSCDTemp(); + } + } + + if (iGlobalId.y == 1) + { + StoreSCDPreviousHistogram(iGlobalId.x, currentFilteredHistogramsValue); + + StoreSCDHistogram(iGlobalId.x, 0); + } +} + +#endif // FFX_OPTICALFLOW_COMPUTE_SCD_DIVERGENCE_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h new file mode 100644 index 000000000..8ebf0beb1 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_filter_optical_flow_v5.h @@ -0,0 +1,58 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_FILTER_OPTICAL_FLOW_V5_H +#define FFX_OPTICALFLOW_FILTER_OPTICAL_FLOW_V5_H + +void FilterOpticalFlow(FfxInt32x2 iGlobalId, FfxInt32x2 iLocalId, FfxInt32x2 iGroupId, FfxInt32 iLocalIndex) +{ + FfxInt32x2 tmpMV[9]; + FfxInt32 idx = 0; + for (FfxInt32 xx = -1; xx < 2; xx++) + { + for (FfxInt32 yy = -1; yy < 2; yy++) + { + + tmpMV[idx] = LoadPreviousOpticalFlow(iGlobalId + FfxInt32x2(xx, yy)); + idx++; + } + } + + FfxUInt32 ret = 0xFFFFFFFF; + for (FfxInt32 i = 0; i < 9; ++i) + { + FfxUInt32 tmp = 0; + for (FfxInt32 j = 0; j < 9; ++j) + { + FfxInt32x2 delta = tmpMV[i] - tmpMV[j]; + tmp = delta.x * delta.x + (delta.y * delta.y + tmp); + } + + ret = min(((tmp) << 4) | i, ret); + } + + FfxUInt32 minIdx = ret & 0xF; + + StoreOpticalFlow(iGlobalId, tmpMV[minIdx]); +} + +#endif // FFX_OPTICALFLOW_FILTER_OPTICAL_FLOW_V5_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h new file mode 100644 index 000000000..aead43868 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_generate_scd_histogram.h @@ -0,0 +1,92 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_GENERATE_SCD_HISTOGRAM_H +#define FFX_OPTICALFLOW_GENERATE_SCD_HISTOGRAM_H + +#define LBASE 10 + +FFX_GROUPSHARED FfxUInt32 scdBuffer[256 * LBASE]; + +void GenerateSceneChangeDetectionHistogram(FfxInt32x3 iGlobalId, FfxInt32x2 iLocalId, FfxInt32 iLocalIndex, FfxInt32x2 iGroupId, FfxInt32x2 iGroupSize) +{ + FFX_STATIC const FfxUInt32 HistogramsPerDim = 3; + + FfxUInt32 divX = DisplaySize().x / HistogramsPerDim; + FfxUInt32 divY = DisplaySize().y / HistogramsPerDim; + + FfxUInt32 nx = iGlobalId.z % HistogramsPerDim; + FfxUInt32 ny = iGlobalId.z / HistogramsPerDim; + FfxUInt32 startX = divX * nx; + FfxUInt32 startY = divY * ny; + FfxUInt32 stopX = startX + divX; + FfxUInt32 stopY = startY + divY; + + const FfxUInt32 bufferOffset = iLocalIndex * LBASE; + + for (FfxInt32 i = 0; i < LBASE; i++) + { + scdBuffer[bufferOffset + i] = 0; + } + FFX_GROUP_MEMORY_BARRIER; + + FfxInt32x2 coord = FfxInt32x2(startX + (4 * iGlobalId.x), startY + iGlobalId.y); + if (coord.x < stopX) + { + for (; coord.y < stopY; coord.y += 128) + { + FfxUInt32x4 color = FfxUInt32x4( + LoadOpticalFlowInput(coord + FfxInt32x2(0, 0)), + LoadOpticalFlowInput(coord + FfxInt32x2(1, 0)), + LoadOpticalFlowInput(coord + FfxInt32x2(2, 0)), + LoadOpticalFlowInput(coord + FfxInt32x2(3, 0)) + ); + color *= LBASE; + + FfxUInt32 scramblingOffset = iLocalIndex % LBASE; + +#if defined(FFX_HLSL) + InterlockedAdd(scdBuffer[color.x + scramblingOffset], 1); + InterlockedAdd(scdBuffer[color.y + scramblingOffset], 1); + InterlockedAdd(scdBuffer[color.z + scramblingOffset], 1); + InterlockedAdd(scdBuffer[color.w + scramblingOffset], 1); +#elif defined(FFX_GLSL) + atomicAdd(scdBuffer[color.x + scramblingOffset], 1); + atomicAdd(scdBuffer[color.y + scramblingOffset], 1); + atomicAdd(scdBuffer[color.z + scramblingOffset], 1); + atomicAdd(scdBuffer[color.w + scramblingOffset], 1); +#endif + } + } + FFX_GROUP_MEMORY_BARRIER; + + FfxUInt32 value = 0; + for (FfxInt32 i = 0; i < LBASE; i++) + { + value += scdBuffer[bufferOffset + i]; + } + + FfxUInt32 histogramStart = (iGroupSize.x * iGroupSize.y) * iGlobalId.z; + AtomicIncrementSCDHistogram(FfxInt32(histogramStart + iLocalIndex), value); +} + +#endif // FFX_OPTICALFLOW_GENERATE_SCD_HISTOGRAM_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h new file mode 100644 index 000000000..57fd8a74b --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_prepare_luma.h @@ -0,0 +1,106 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_PREPARE_LUMA_H +#define FFX_OPTICALFLOW_PREPARE_LUMA_H + +FfxFloat32 LuminanceToPerceivedLuminance(FfxFloat32 fLuminance) +{ + FfxFloat32 fPercievedLuminance = 0; + if (fLuminance <= 216.0f / 24389.0f) { + fPercievedLuminance = fLuminance * (24389.0f / 27.0f); + } + else { + fPercievedLuminance = ffxPow(fLuminance, 1.0f / 3.0f) * 116.0f - 16.0f; + } + + return fPercievedLuminance * 0.01f; +} + +FfxFloat32 LinearLdrToLuminance(FfxFloat32x3 linearRec709RGB) +{ + FfxFloat32 fY = 0.2126 * linearRec709RGB.x + 0.7152 * linearRec709RGB.y + 0.0722 * linearRec709RGB.z; + return fY; +} + +FfxFloat32 LinearRec2020ToLuminance(FfxFloat32x3 linearRec2020RGB) +{ + FfxFloat32 fY = 0.2627 * linearRec2020RGB.x + 0.678 * linearRec2020RGB.y + 0.0593 * linearRec2020RGB.z; + return fY; +} + +FfxFloat32 PQCorrectedHdrToLuminance(FfxFloat32x3 pq, FfxFloat32 maxLuminance) +{ + FfxFloat32 fY = LinearRec2020ToLuminance(ffxLinearFromPQ(pq) * (10000.0f / maxLuminance)); + return fY; +} + +FfxFloat32x3 ffxscRGBToLinear(FfxFloat32x3 value, FfxFloat32 minLuminance, FfxFloat32 maxLuminance) +{ + FfxFloat32x3 p = value - ffxBroadcast3(minLuminance / 80.0f); + return p / ffxBroadcast3((maxLuminance - minLuminance) / 80.0f); +} + +FfxFloat32 SCRGBCorrectedHdrToLuminance(FfxFloat32x3 scRGB, FfxFloat32 minLuminance, FfxFloat32 maxLuminance) +{ + FfxFloat32 fY = LinearLdrToLuminance(ffxscRGBToLinear(scRGB, minLuminance, maxLuminance)); + return fY; +} + +void PrepareLuma(FfxInt32x2 iGlobalId, FfxInt32 iLocalIndex) +{ +#define PixelsPerThreadX 2 +#define PixelsPerThreadY 2 +#pragma unroll + for (FfxInt32 y = 0; y < PixelsPerThreadY; y++) + { +#pragma unroll + for (FfxInt32 x = 0; x < PixelsPerThreadX; x++) + { + FfxInt32x2 pos = iGlobalId * FfxInt32x2(PixelsPerThreadX, PixelsPerThreadY) + FfxInt32x2(x, y); + FfxInt32x2 iPxHrPos = pos; + FfxFloat32 fY = 0.0; + + FfxFloat32x3 inputColor = LoadInputColor(iPxHrPos).rgb; + + FfxUInt32 backbufferTransferFunction = BackbufferTransferFunction(); + if (backbufferTransferFunction == 0) + { + fY = LinearLdrToLuminance(inputColor); + } + else if (backbufferTransferFunction == 1) + { + fY = PQCorrectedHdrToLuminance(inputColor, MinMaxLuminance()[1]); + fY = LuminanceToPerceivedLuminance(fY); + } + else if (backbufferTransferFunction == 2) + { + fY = SCRGBCorrectedHdrToLuminance(inputColor, MinMaxLuminance()[0], MinMaxLuminance()[1]); + fY = LuminanceToPerceivedLuminance(fY); + } + + StoreOpticalFlowInput(pos, FfxUInt32(fY * 255)); + } + } +} + +#endif // FFX_OPTICALFLOW_PREPARE_LUMA_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h new file mode 100644 index 000000000..4676af409 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_resources.h @@ -0,0 +1,74 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_RESOURCES_H +#define FFX_OPTICALFLOW_RESOURCES_H + +#if defined(FFX_CPU) || defined(FFX_GPU) + +#define FFX_OF_RESOURCE_IDENTIFIER_NULL 0 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1 1 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_1 2 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_2 3 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_3 4 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_4 5 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_5 6 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_1_LEVEL_6 7 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2 8 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_1 9 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_2 10 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_3 11 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_4 12 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_5 13 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_INPUT_2_LEVEL_6 14 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1 15 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_1 16 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_2 17 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_3 18 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_4 19 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_5 20 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_1_LEVEL_6 21 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2 22 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_1 23 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_2 24 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_3 25 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_4 26 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_5 27 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_2_LEVEL_6 28 + +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCD_HISTOGRAM 29 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM 30 +#define FFX_OF_RESOURCE_IDENTIFIER_OPTICAL_FLOW_SCD_TEMP 31 + +#define FFX_OF_RESOURCE_IDENTIFIER_COUNT 32 + +#define FFX_OPTICALFLOW_CONSTANTBUFFER_IDENTIFIER 0 +#define FFX_OPTICALFLOW_CONSTANTBUFFER_IDENTIFIER_SPD 1 +#define FFX_OPTICALFLOW_CONSTANTBUFFER_COUNT 2 + +#endif // #if defined(FFX_CPU) || defined(FFX_GPU) + +#endif //!defined( FFX_OPTICALFLOW_RESOURCES_H ) diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h new file mode 100644 index 000000000..16238f4e6 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h @@ -0,0 +1,99 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef FFX_OPTICALFLOW_SCALE_OPTICAL_FLOW_ADVANCED_V5_H +#define FFX_OPTICALFLOW_SCALE_OPTICAL_FLOW_ADVANCED_V5_H + +#define WG_WIDTH FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define WG_HEIGHT FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define WG_DEPTH FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +FFX_GROUPSHARED FfxInt32x2 nearestVectors[4][WG_HEIGHT][WG_WIDTH]; +FFX_GROUPSHARED FfxUInt32 localRegion[4][WG_HEIGHT][WG_WIDTH]; +FFX_GROUPSHARED FfxUInt32 sads[4][WG_HEIGHT][WG_WIDTH]; + +void ScaleOpticalFlowAdvanced(FfxInt32x3 iGlobalId, FfxInt32x3 iLocalId) +{ + if (IsSceneChanged()) + { + StoreOpticalFlowNextLevel(iGlobalId.xy, FfxInt32x2(0, 0)); + + return; + } + + int xOffset = (iLocalId.z % 2) - 1 + iGlobalId.x % 2; + int yOffset = (iLocalId.z / 2) - 1 + iGlobalId.y % 2; + + FfxInt32x2 srcOFPos = FfxInt32x2( + (iGlobalId.x / 2) + xOffset, + (iGlobalId.y / 2) + yOffset + ); + + FfxInt32x2 nearestVector = LoadOpticalFlow(srcOFPos); + nearestVectors[iLocalId.z][iLocalId.y][iLocalId.x] = nearestVector * 2; + + int maxY = 4; + for (int n = iLocalId.z; n < maxY; n += WG_DEPTH) + { + { + FfxInt32x2 lumaPos = FfxInt32x2((iGlobalId.x) * 4, iGlobalId.y * maxY + n); + FfxUInt32 firstPixel = LoadFirstImagePackedLuma(lumaPos); + localRegion[n][iLocalId.y][iLocalId.x] = firstPixel; + } + } + FFX_GROUP_MEMORY_BARRIER; + + uint sad = 0; + for (int n = 0; n < maxY; n++) + { + { + FfxInt32x2 lumaPos = FfxInt32x2((iGlobalId.x) * 4, (iGlobalId.y * maxY + n)) + nearestVector; + FfxUInt32 secondPixel = LoadSecondImagePackedLuma(lumaPos); + sad += Sad(localRegion[n][iLocalId.y][iLocalId.x], secondPixel); + } + } + sads[iLocalId.z][iLocalId.y][iLocalId.x] = sad; + + FFX_GROUP_MEMORY_BARRIER; + + { + if (iLocalId.z == 0) + { + uint bestSad = 0xffffffff; + uint bestId = 0; + + for (int n = 0; n < 4; n++) + { + if ((sads[n][iLocalId.y][iLocalId.x]) < bestSad) + { + bestSad = sads[n][iLocalId.y][iLocalId.x]; + bestId = n; + } + } + + FfxInt32x2 outputVector = nearestVectors[bestId][iLocalId.y][iLocalId.x]; + + StoreOpticalFlowNextLevel(iGlobalId.xy, outputVector); + } + } +} + +#endif // FFX_OPTICALFLOW_SCALE_OPTICAL_FLOW_ADVANCED_V5_H diff --git a/third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h new file mode 100644 index 000000000..c3ee50f02 --- /dev/null +++ b/third_party/fidelityfx-sdk/include/FidelityFX/gpu/spd/ffx_spd.h @@ -0,0 +1,1014 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/// @defgroup FfxGPUSpd FidelityFX SPD +/// FidelityFX Single Pass Downsampler 2.0 GPU documentation +/// +/// @ingroup FfxGPUEffects + +/// Setup required constant values for SPD (CPU). +/// +/// @param [out] dispatchThreadGroupCountXY CPU side: dispatch thread group count xy. z is number of slices of the input texture +/// @param [out] workGroupOffset GPU side: pass in as constant +/// @param [out] numWorkGroupsAndMips GPU side: pass in as constant +/// @param [in] rectInfo left, top, width, height +/// @param [in] mips optional: if -1, calculate based on rect width and height +/// +/// @ingroup FfxGPUSpd +#if defined(FFX_CPU) +FFX_STATIC void ffxSpdSetup(FfxUInt32x2 dispatchThreadGroupCountXY, + FfxUInt32x2 workGroupOffset, + FfxUInt32x2 numWorkGroupsAndMips, + FfxUInt32x4 rectInfo, + FfxInt32 mips) +{ + // determines the offset of the first tile to downsample based on + // left (rectInfo[0]) and top (rectInfo[1]) of the subregion. + workGroupOffset[0] = rectInfo[0] / 64; + workGroupOffset[1] = rectInfo[1] / 64; + + FfxUInt32 endIndexX = (rectInfo[0] + rectInfo[2] - 1) / 64; // rectInfo[0] = left, rectInfo[2] = width + FfxUInt32 endIndexY = (rectInfo[1] + rectInfo[3] - 1) / 64; // rectInfo[1] = top, rectInfo[3] = height + + // we only need to dispatch as many thread groups as tiles we need to downsample + // number of tiles per slice depends on the subregion to downsample + dispatchThreadGroupCountXY[0] = endIndexX + 1 - workGroupOffset[0]; + dispatchThreadGroupCountXY[1] = endIndexY + 1 - workGroupOffset[1]; + + // number of thread groups per slice + numWorkGroupsAndMips[0] = (dispatchThreadGroupCountXY[0]) * (dispatchThreadGroupCountXY[1]); + + if (mips >= 0) + { + numWorkGroupsAndMips[1] = FfxUInt32(mips); + } + else + { + // calculate based on rect width and height + FfxUInt32 resolution = ffxMax(rectInfo[2], rectInfo[3]); + numWorkGroupsAndMips[1] = FfxUInt32((ffxMin(floor(log2(FfxFloat32(resolution))), FfxFloat32(12)))); + } +} + +/// Setup required constant values for SPD (CPU). +/// +/// @param [out] dispatchThreadGroupCountXY CPU side: dispatch thread group count xy. z is number of slices of the input texture +/// @param [out] workGroupOffset GPU side: pass in as constant +/// @param [out] numWorkGroupsAndMips GPU side: pass in as constant +/// @param [in] rectInfo left, top, width, height +/// +/// @ingroup FfxGPUSpd +FFX_STATIC void ffxSpdSetup(FfxUInt32x2 dispatchThreadGroupCountXY, + FfxUInt32x2 workGroupOffset, + FfxUInt32x2 numWorkGroupsAndMips, + FfxUInt32x4 rectInfo) +{ + ffxSpdSetup(dispatchThreadGroupCountXY, workGroupOffset, numWorkGroupsAndMips, rectInfo, -1); +} +#endif // #if defined(FFX_CPU) + + +//============================================================================================================================== +// NON-PACKED VERSION +//============================================================================================================================== +#if defined(FFX_GPU) +#if defined(FFX_SPD_PACKED_ONLY) +// Avoid compiler errors by including default implementations of these callbacks. +FfxFloat32x4 SpdLoadSourceImage(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} + +FfxFloat32x4 SpdLoad(FfxInt32x2 p, FfxUInt32 slice) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} +void SpdStore(FfxInt32x2 p, FfxFloat32x4 value, FfxUInt32 mip, FfxUInt32 slice) +{ +} +FfxFloat32x4 SpdLoadIntermediate(FfxUInt32 x, FfxUInt32 y) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} +void SpdStoreIntermediate(FfxUInt32 x, FfxUInt32 y, FfxFloat32x4 value) +{ +} +FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3) +{ + return FfxFloat32x4(0.0, 0.0, 0.0, 0.0); +} +#endif // #if FFX_SPD_PACKED_ONLY + +//_____________________________________________________________/\_______________________________________________________________ +#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) +#extension GL_KHR_shader_subgroup_quad:require +#endif + +void ffxSpdWorkgroupShuffleBarrier() +{ + FFX_GROUP_MEMORY_BARRIER; +} + +// Only last active workgroup should proceed +bool SpdExitWorkgroup(FfxUInt32 numWorkGroups, FfxUInt32 localInvocationIndex, FfxUInt32 slice) +{ + // global atomic counter + if (localInvocationIndex == 0) + { + SpdIncreaseAtomicCounter(slice); + } + + ffxSpdWorkgroupShuffleBarrier(); + return (SpdGetAtomicCounter() != (numWorkGroups - 1)); +} + +// User defined: FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFloat32x4 v3); +FfxFloat32x4 SpdReduceQuad(FfxFloat32x4 v) +{ +#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + + FfxFloat32x4 v0 = v; + FfxFloat32x4 v1 = subgroupQuadSwapHorizontal(v); + FfxFloat32x4 v2 = subgroupQuadSwapVertical(v); + FfxFloat32x4 v3 = subgroupQuadSwapDiagonal(v); + return SpdReduce4(v0, v1, v2, v3); + +#elif defined(FFX_HLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + + // requires SM6.0 + FfxFloat32x4 v0 = v; + FfxFloat32x4 v1 = QuadReadAcrossX(v); + FfxFloat32x4 v2 = QuadReadAcrossY(v); + FfxFloat32x4 v3 = QuadReadAcrossDiagonal(v); + return SpdReduce4(v0, v1, v2, v3); +/* + // if SM6.0 is not available, you can use the AMD shader intrinsics + // the AMD shader intrinsics are available in AMD GPU Services (AGS) library: + // https://gpuopen.com/amd-gpu-services-ags-library/ + // works for DX11 + FfxFloat32x4 v0 = v; + FfxFloat32x4 v1; + v1.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + FfxFloat32x4 v2; + v2.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + FfxFloat32x4 v3; + v3.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + return SpdReduce4(v0, v1, v2, v3); + */ +#endif + return v; +} + +FfxFloat32x4 SpdReduceIntermediate(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3) +{ + FfxFloat32x4 v0 = SpdLoadIntermediate(i0.x, i0.y); + FfxFloat32x4 v1 = SpdLoadIntermediate(i1.x, i1.y); + FfxFloat32x4 v2 = SpdLoadIntermediate(i2.x, i2.y); + FfxFloat32x4 v3 = SpdLoadIntermediate(i3.x, i3.y); + return SpdReduce4(v0, v1, v2, v3); +} + +FfxFloat32x4 SpdReduceLoad4(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat32x4 v0 = SpdLoad(FfxInt32x2(i0), slice); + FfxFloat32x4 v1 = SpdLoad(FfxInt32x2(i1), slice); + FfxFloat32x4 v2 = SpdLoad(FfxInt32x2(i2), slice); + FfxFloat32x4 v3 = SpdLoad(FfxInt32x2(i3), slice); + return SpdReduce4(v0, v1, v2, v3); +} + +FfxFloat32x4 SpdReduceLoad4(FfxUInt32x2 base, FfxUInt32 slice) +{ + return SpdReduceLoad4(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +} + +FfxFloat32x4 SpdReduceLoadSourceImage4(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat32x4 v0 = SpdLoadSourceImage(FfxInt32x2(i0), slice); + FfxFloat32x4 v1 = SpdLoadSourceImage(FfxInt32x2(i1), slice); + FfxFloat32x4 v2 = SpdLoadSourceImage(FfxInt32x2(i2), slice); + FfxFloat32x4 v3 = SpdLoadSourceImage(FfxInt32x2(i3), slice); + return SpdReduce4(v0, v1, v2, v3); +} + +FfxFloat32x4 SpdReduceLoadSourceImage(FfxUInt32x2 base, FfxUInt32 slice) +{ +#if defined(SPD_LINEAR_SAMPLER) + return SpdLoadSourceImage(FfxInt32x2(base), slice); +#else + return SpdReduceLoadSourceImage4(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +#endif +} + +void SpdDownsampleMips_0_1_Intrinsics(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ + FfxFloat32x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[3], 0, slice); + + if (mip <= 1) + return; + + v[0] = SpdReduceQuad(v[0]); + v[1] = SpdReduceQuad(v[1]); + v[2] = SpdReduceQuad(v[2]); + v[3] = SpdReduceQuad(v[3]); + + if ((localInvocationIndex % 4) == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2), v[0], 1, slice); + SpdStoreIntermediate(x / 2, y / 2, v[0]); + + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2), v[1], 1, slice); + SpdStoreIntermediate(x / 2 + 8, y / 2, v[1]); + + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2 + 8), v[2], 1, slice); + SpdStoreIntermediate(x / 2, y / 2 + 8, v[2]); + + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2 + 8), v[3], 1, slice); + SpdStoreIntermediate(x / 2 + 8, y / 2 + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1_LDS(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ + FfxFloat32x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImage(tex, slice); + SpdStore(pix, v[3], 0, slice); + + if (mip <= 1) + return; + + for (FfxUInt32 i = 0; i < 4; i++) + { + SpdStoreIntermediate(x, y, v[i]); + ffxSpdWorkgroupShuffleBarrier(); + if (localInvocationIndex < 64) + { + v[i] = SpdReduceIntermediate(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStore(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x + (i % 2) * 8, y + (i / 2) * 8), v[i], 1, slice); + } + ffxSpdWorkgroupShuffleBarrier(); + } + + if (localInvocationIndex < 64) + { + SpdStoreIntermediate(x + 0, y + 0, v[0]); + SpdStoreIntermediate(x + 8, y + 0, v[1]); + SpdStoreIntermediate(x + 0, y + 8, v[2]); + SpdStoreIntermediate(x + 8, y + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + SpdDownsampleMips_0_1_LDS(x, y, workGroupID, localInvocationIndex, mip, slice); +#else + SpdDownsampleMips_0_1_Intrinsics(x, y, workGroupID, localInvocationIndex, mip, slice); +#endif +} + + +void SpdDownsampleMip_2(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 64) + { + FfxFloat32x4 v = SpdReduceIntermediate(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStore(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS, try to reduce bank conflicts + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 x + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // ... + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + SpdStoreIntermediate(x * 2 + y % 2, y * 2, v); + } +#else + FfxFloat32x4 v = SpdLoadIntermediate(x, y); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediate(x + (y / 2) % 2, y, v); + } +#endif +} + +void SpdDownsampleMip_3(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 16) + { + // x 0 x 0 + // 0 0 0 0 + // 0 x 0 x + // 0 0 0 0 + FfxFloat32x4 v = + SpdReduceIntermediate(FfxUInt32x2(x * 4 + 0 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 2 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 0 + 1, y * 4 + 2), FfxUInt32x2(x * 4 + 2 + 1, y * 4 + 2)); + SpdStore(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 + // ... + // 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 + // ... + // 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x + // ... + SpdStoreIntermediate(x * 4 + y, y * 4, v); + } +#else + if (localInvocationIndex < 64) + { + FfxFloat32x4 v = SpdLoadIntermediate(x * 2 + y % 2, y * 2); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediate(x * 2 + y / 2, y * 2, v); + } + } +#endif +} + +void SpdDownsampleMip_4(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 4) + { + // x 0 0 0 x 0 0 0 + // ... + // 0 x 0 0 0 x 0 0 + FfxFloat32x4 v = SpdReduceIntermediate(FfxUInt32x2(x * 8 + 0 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 4 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 0 + 1 + y * 2, y * 8 + 4), + FfxUInt32x2(x * 8 + 4 + 1 + y * 2, y * 8 + 4)); + SpdStore(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x x x x 0 ... + // 0 ... + SpdStoreIntermediate(x + y * 2, 0, v); + } +#else + if (localInvocationIndex < 16) + { + FfxFloat32x4 v = SpdLoadIntermediate(x * 4 + y, y * 4); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediate(x / 2 + y, 0, v); + } + } +#endif +} + +void SpdDownsampleMip_5(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 1) + { + // x x x x 0 ... + // 0 ... + FfxFloat32x4 v = SpdReduceIntermediate(FfxUInt32x2(0, 0), FfxUInt32x2(1, 0), FfxUInt32x2(2, 0), FfxUInt32x2(3, 0)); + SpdStore(FfxInt32x2(workGroupID.xy), v, mip, slice); + } +#else + if (localInvocationIndex < 4) + { + FfxFloat32x4 v = SpdLoadIntermediate(localInvocationIndex, 0); + v = SpdReduceQuad(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStore(FfxInt32x2(workGroupID.xy), v, mip, slice); + } + } +#endif +} + +void SpdDownsampleMips_6_7(FfxUInt32 x, FfxUInt32 y, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxInt32x2 tex = FfxInt32x2(x * 4 + 0, y * 4 + 0); + FfxInt32x2 pix = FfxInt32x2(x * 2 + 0, y * 2 + 0); + FfxFloat32x4 v0 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v0, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 0); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 0); + FfxFloat32x4 v1 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v1, 6, slice); + + tex = FfxInt32x2(x * 4 + 0, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 0, y * 2 + 1); + FfxFloat32x4 v2 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v2, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 1); + FfxFloat32x4 v3 = SpdReduceLoad4(tex, slice); + SpdStore(pix, v3, 6, slice); + + if (mips <= 7) + return; + // no barrier needed, working on values only from the same thread + + FfxFloat32x4 v = SpdReduce4(v0, v1, v2, v3); + SpdStore(FfxInt32x2(x, y), v, 7, slice); + SpdStoreIntermediate(x, y, v); +} + +void SpdDownsampleNextFour(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 baseMip, FfxUInt32 mips, FfxUInt32 slice) +{ + if (mips <= baseMip) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_2(x, y, workGroupID, localInvocationIndex, baseMip, slice); + + if (mips <= baseMip + 1) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_3(x, y, workGroupID, localInvocationIndex, baseMip + 1, slice); + + if (mips <= baseMip + 2) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_4(x, y, workGroupID, localInvocationIndex, baseMip + 2, slice); + + if (mips <= baseMip + 3) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_5(workGroupID, localInvocationIndex, baseMip + 3, slice); +} + +/// Downsamples a 64x64 tile based on the work group id. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// +/// @ingroup FfxGPUSpd +void SpdDownsample(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice) +{ + // compute MIP level 0 and 1 + FfxUInt32x2 sub_xy = ffxRemapForWaveReduction(localInvocationIndex % 64); + FfxUInt32 x = sub_xy.x + 8 * ((localInvocationIndex >> 6) % 2); + FfxUInt32 y = sub_xy.y + 8 * ((localInvocationIndex >> 7)); + SpdDownsampleMips_0_1(x, y, workGroupID, localInvocationIndex, mips, slice); + + // compute MIP level 2, 3, 4, 5 + SpdDownsampleNextFour(x, y, workGroupID, localInvocationIndex, 2, mips, slice); + + if (mips <= 6) + return; + + // increase the global atomic counter for the given slice and check if it's the last remaining thread group: + // terminate if not, continue if yes. + if (SpdExitWorkgroup(numWorkGroups, localInvocationIndex, slice)) + return; + + // reset the global atomic counter back to 0 for the next spd dispatch + SpdResetAtomicCounter(slice); + + // After mip 5 there is only a single workgroup left that downsamples the remaining up to 64x64 texels. + // compute MIP level 6 and 7 + SpdDownsampleMips_6_7(x, y, mips, slice); + + // compute MIP level 8, 9, 10, 11 + SpdDownsampleNextFour(x, y, FfxUInt32x2(0, 0), localInvocationIndex, 8, mips, slice); +} +/// Downsamples a 64x64 tile based on the work group id and work group offset. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// @param [in] workGroupOffset the work group offset. it's (0,0) in case the entire input texture is downsampled. +/// +/// @ingroup FfxGPUSpd +void SpdDownsample(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice, FfxUInt32x2 workGroupOffset) +{ + SpdDownsample(workGroupID + workGroupOffset, localInvocationIndex, mips, numWorkGroups, slice); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +//============================================================================================================================== +// PACKED VERSION +//============================================================================================================================== + +#if FFX_HALF + +#if defined(FFX_GLSL) +#extension GL_EXT_shader_subgroup_extended_types_float16:require +#endif + +FfxFloat16x4 SpdReduceQuadH(FfxFloat16x4 v) +{ +#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + FfxFloat16x4 v0 = v; + FfxFloat16x4 v1 = subgroupQuadSwapHorizontal(v); + FfxFloat16x4 v2 = subgroupQuadSwapVertical(v); + FfxFloat16x4 v3 = subgroupQuadSwapDiagonal(v); + return SpdReduce4H(v0, v1, v2, v3); +#elif defined(FFX_HLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) + // requires SM6.0 + FfxFloat16x4 v0 = v; + FfxFloat16x4 v1 = QuadReadAcrossX(v); + FfxFloat16x4 v2 = QuadReadAcrossY(v); + FfxFloat16x4 v3 = QuadReadAcrossDiagonal(v); + return SpdReduce4H(v0, v1, v2, v3); +/* + // if SM6.0 is not available, you can use the AMD shader intrinsics + // the AMD shader intrinsics are available in AMD GPU Services (AGS) library: + // https://gpuopen.com/amd-gpu-services-ags-library/ + // works for DX11 + FfxFloat16x4 v0 = v; + FfxFloat16x4 v1; + v1.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + v1.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX1); + FfxFloat16x4 v2; + v2.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + v2.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_SwapX2); + FfxFloat16x4 v3; + v3.x = AmdExtD3DShaderIntrinsics_SwizzleF(v.x, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.y = AmdExtD3DShaderIntrinsics_SwizzleF(v.y, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.z = AmdExtD3DShaderIntrinsics_SwizzleF(v.z, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + v3.w = AmdExtD3DShaderIntrinsics_SwizzleF(v.w, AmdExtD3DShaderIntrinsicsSwizzle_ReverseX4); + return SpdReduce4H(v0, v1, v2, v3); + */ +#endif + return FfxFloat16x4(0.0, 0.0, 0.0, 0.0); +} + +FfxFloat16x4 SpdReduceIntermediateH(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3) +{ + FfxFloat16x4 v0 = SpdLoadIntermediateH(i0.x, i0.y); + FfxFloat16x4 v1 = SpdLoadIntermediateH(i1.x, i1.y); + FfxFloat16x4 v2 = SpdLoadIntermediateH(i2.x, i2.y); + FfxFloat16x4 v3 = SpdLoadIntermediateH(i3.x, i3.y); + return SpdReduce4H(v0, v1, v2, v3); +} + +FfxFloat16x4 SpdReduceLoad4H(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat16x4 v0 = SpdLoadH(FfxInt32x2(i0), slice); + FfxFloat16x4 v1 = SpdLoadH(FfxInt32x2(i1), slice); + FfxFloat16x4 v2 = SpdLoadH(FfxInt32x2(i2), slice); + FfxFloat16x4 v3 = SpdLoadH(FfxInt32x2(i3), slice); + return SpdReduce4H(v0, v1, v2, v3); +} + +FfxFloat16x4 SpdReduceLoad4H(FfxUInt32x2 base, FfxUInt32 slice) +{ + return SpdReduceLoad4H(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +} + +FfxFloat16x4 SpdReduceLoadSourceImage4H(FfxUInt32x2 i0, FfxUInt32x2 i1, FfxUInt32x2 i2, FfxUInt32x2 i3, FfxUInt32 slice) +{ + FfxFloat16x4 v0 = SpdLoadSourceImageH(FfxInt32x2(i0), slice); + FfxFloat16x4 v1 = SpdLoadSourceImageH(FfxInt32x2(i1), slice); + FfxFloat16x4 v2 = SpdLoadSourceImageH(FfxInt32x2(i2), slice); + FfxFloat16x4 v3 = SpdLoadSourceImageH(FfxInt32x2(i3), slice); + return SpdReduce4H(v0, v1, v2, v3); +} + +FfxFloat16x4 SpdReduceLoadSourceImageH(FfxUInt32x2 base, FfxUInt32 slice) +{ +#if defined(SPD_LINEAR_SAMPLER) + return SpdLoadSourceImageH(FfxInt32x2(base), slice); +#else + return SpdReduceLoadSourceImage4H(FfxUInt32x2(base + FfxUInt32x2(0, 0)), FfxUInt32x2(base + FfxUInt32x2(0, 1)), FfxUInt32x2(base + FfxUInt32x2(1, 0)), FfxUInt32x2(base + FfxUInt32x2(1, 1)), slice); +#endif +} + +void SpdDownsampleMips_0_1_IntrinsicsH(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxFloat16x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[3], 0, slice); + + if (mips <= 1) + return; + + v[0] = SpdReduceQuadH(v[0]); + v[1] = SpdReduceQuadH(v[1]); + v[2] = SpdReduceQuadH(v[2]); + v[3] = SpdReduceQuadH(v[3]); + + if ((localInvocationIndex % 4) == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2), v[0], 1, slice); + SpdStoreIntermediateH(x / 2, y / 2, v[0]); + + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2), v[1], 1, slice); + SpdStoreIntermediateH(x / 2 + 8, y / 2, v[1]); + + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2, y / 2 + 8), v[2], 1, slice); + SpdStoreIntermediateH(x / 2, y / 2 + 8, v[2]); + + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x / 2 + 8, y / 2 + 8), v[3], 1, slice); + SpdStoreIntermediateH(x / 2 + 8, y / 2 + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1_LDSH(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxFloat16x4 v[4]; + + FfxInt32x2 tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2); + FfxInt32x2 pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y); + v[0] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[0], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y); + v[1] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[1], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x, y + 16); + v[2] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[2], 0, slice); + + tex = FfxInt32x2(workGroupID.xy * 64) + FfxInt32x2(x * 2 + 32, y * 2 + 32); + pix = FfxInt32x2(workGroupID.xy * 32) + FfxInt32x2(x + 16, y + 16); + v[3] = SpdReduceLoadSourceImageH(tex, slice); + SpdStoreH(pix, v[3], 0, slice); + + if (mips <= 1) + return; + + for (FfxInt32 i = 0; i < 4; i++) + { + SpdStoreIntermediateH(x, y, v[i]); + ffxSpdWorkgroupShuffleBarrier(); + if (localInvocationIndex < 64) + { + v[i] = SpdReduceIntermediateH(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 16) + FfxInt32x2(x + (i % 2) * 8, y + (i / 2) * 8), v[i], 1, slice); + } + ffxSpdWorkgroupShuffleBarrier(); + } + + if (localInvocationIndex < 64) + { + SpdStoreIntermediateH(x + 0, y + 0, v[0]); + SpdStoreIntermediateH(x + 8, y + 0, v[1]); + SpdStoreIntermediateH(x + 0, y + 8, v[2]); + SpdStoreIntermediateH(x + 8, y + 8, v[3]); + } +} + +void SpdDownsampleMips_0_1H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + SpdDownsampleMips_0_1_LDSH(x, y, workGroupID, localInvocationIndex, mips, slice); +#else + SpdDownsampleMips_0_1_IntrinsicsH(x, y, workGroupID, localInvocationIndex, mips, slice); +#endif +} + + +void SpdDownsampleMip_2H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 64) + { + FfxFloat16x4 v = SpdReduceIntermediateH(FfxUInt32x2(x * 2 + 0, y * 2 + 0), FfxUInt32x2(x * 2 + 1, y * 2 + 0), FfxUInt32x2(x * 2 + 0, y * 2 + 1), FfxUInt32x2(x * 2 + 1, y * 2 + 1)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS, try to reduce bank conflicts + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 x + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + // ... + // x 0 x 0 x 0 x 0 x 0 x 0 x 0 x 0 + SpdStoreIntermediateH(x * 2 + y % 2, y * 2, v); + } +#else + FfxFloat16x4 v = SpdLoadIntermediateH(x, y); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 8) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediateH(x + (y / 2) % 2, y, v); + } +#endif +} + +void SpdDownsampleMip_3H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 16) + { + // x 0 x 0 + // 0 0 0 0 + // 0 x 0 x + // 0 0 0 0 + FfxFloat16x4 v = + SpdReduceIntermediateH(FfxUInt32x2(x * 4 + 0 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 2 + 0, y * 4 + 0), FfxUInt32x2(x * 4 + 0 + 1, y * 4 + 2), FfxUInt32x2(x * 4 + 2 + 1, y * 4 + 2)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + // 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 0 + // ... + // 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x 0 + // ... + // 0 0 0 x 0 0 0 x 0 0 0 x 0 0 0 x + // ... + SpdStoreIntermediateH(x * 4 + y, y * 4, v); + } +#else + if (localInvocationIndex < 64) + { + FfxFloat16x4 v = SpdLoadIntermediateH(x * 2 + y % 2, y * 2); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 4) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediateH(x * 2 + y / 2, y * 2, v); + } + } +#endif +} + +void SpdDownsampleMip_4H(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 4) + { + // x 0 0 0 x 0 0 0 + // ... + // 0 x 0 0 0 x 0 0 + FfxFloat16x4 v = SpdReduceIntermediateH(FfxUInt32x2(x * 8 + 0 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 4 + 0 + y * 2, y * 8 + 0), + FfxUInt32x2(x * 8 + 0 + 1 + y * 2, y * 8 + 4), + FfxUInt32x2(x * 8 + 4 + 1 + y * 2, y * 8 + 4)); + SpdStoreH(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x, y), v, mip, slice); + // store to LDS + // x x x x 0 ... + // 0 ... + SpdStoreIntermediateH(x + y * 2, 0, v); + } +#else + if (localInvocationIndex < 16) + { + FfxFloat16x4 v = SpdLoadIntermediateH(x * 4 + y, y * 4); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy * 2) + FfxInt32x2(x / 2, y / 2), v, mip, slice); + SpdStoreIntermediateH(x / 2 + y, 0, v); + } + } +#endif +} + +void SpdDownsampleMip_5H(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mip, FfxUInt32 slice) +{ +#if defined(FFX_SPD_NO_WAVE_OPERATIONS) + if (localInvocationIndex < 1) + { + // x x x x 0 ... + // 0 ... + FfxFloat16x4 v = SpdReduceIntermediateH(FfxUInt32x2(0, 0), FfxUInt32x2(1, 0), FfxUInt32x2(2, 0), FfxUInt32x2(3, 0)); + SpdStoreH(FfxInt32x2(workGroupID.xy), v, mip, slice); + } +#else + if (localInvocationIndex < 4) + { + FfxFloat16x4 v = SpdLoadIntermediateH(localInvocationIndex, 0); + v = SpdReduceQuadH(v); + // quad index 0 stores result + if (localInvocationIndex % 4 == 0) + { + SpdStoreH(FfxInt32x2(workGroupID.xy), v, mip, slice); + } + } +#endif +} + +void SpdDownsampleMips_6_7H(FfxUInt32 x, FfxUInt32 y, FfxUInt32 mips, FfxUInt32 slice) +{ + FfxInt32x2 tex = FfxInt32x2(x * 4 + 0, y * 4 + 0); + FfxInt32x2 pix = FfxInt32x2(x * 2 + 0, y * 2 + 0); + FfxFloat16x4 v0 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v0, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 0); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 0); + FfxFloat16x4 v1 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v1, 6, slice); + + tex = FfxInt32x2(x * 4 + 0, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 0, y * 2 + 1); + FfxFloat16x4 v2 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v2, 6, slice); + + tex = FfxInt32x2(x * 4 + 2, y * 4 + 2); + pix = FfxInt32x2(x * 2 + 1, y * 2 + 1); + FfxFloat16x4 v3 = SpdReduceLoad4H(tex, slice); + SpdStoreH(pix, v3, 6, slice); + + if (mips < 8) + return; + // no barrier needed, working on values only from the same thread + + FfxFloat16x4 v = SpdReduce4H(v0, v1, v2, v3); + SpdStoreH(FfxInt32x2(x, y), v, 7, slice); + SpdStoreIntermediateH(x, y, v); +} + +void SpdDownsampleNextFourH(FfxUInt32 x, FfxUInt32 y, FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 baseMip, FfxUInt32 mips, FfxUInt32 slice) +{ + if (mips <= baseMip) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_2H(x, y, workGroupID, localInvocationIndex, baseMip, slice); + + if (mips <= baseMip + 1) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_3H(x, y, workGroupID, localInvocationIndex, baseMip + 1, slice); + + if (mips <= baseMip + 2) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_4H(x, y, workGroupID, localInvocationIndex, baseMip + 2, slice); + + if (mips <= baseMip + 3) + return; + ffxSpdWorkgroupShuffleBarrier(); + SpdDownsampleMip_5H(workGroupID, localInvocationIndex, baseMip + 3, slice); +} + +/// Downsamples a 64x64 tile based on the work group id and work group offset. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// Uses half types. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// +/// @ingroup FfxGPUSpd +void SpdDownsampleH(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice) +{ + FfxUInt32x2 sub_xy = ffxRemapForWaveReduction(localInvocationIndex % 64); + FfxUInt32 x = sub_xy.x + 8 * ((localInvocationIndex >> 6) % 2); + FfxUInt32 y = sub_xy.y + 8 * ((localInvocationIndex >> 7)); + + // compute MIP level 0 and 1 + SpdDownsampleMips_0_1H(x, y, workGroupID, localInvocationIndex, mips, slice); + + // compute MIP level 2, 3, 4, 5 + SpdDownsampleNextFourH(x, y, workGroupID, localInvocationIndex, 2, mips, slice); + + if (mips < 7) + return; + + // increase the global atomic counter for the given slice and check if it's the last remaining thread group: + // terminate if not, continue if yes. + if (SpdExitWorkgroup(numWorkGroups, localInvocationIndex, slice)) + return; + + // reset the global atomic counter back to 0 for the next spd dispatch + SpdResetAtomicCounter(slice); + + // After mip 5 there is only a single workgroup left that downsamples the remaining up to 64x64 texels. + // compute MIP level 6 and 7 + SpdDownsampleMips_6_7H(x, y, mips, slice); + + // compute MIP level 8, 9, 10, 11 + SpdDownsampleNextFourH(x, y, FfxUInt32x2(0, 0), localInvocationIndex, 8, mips, slice); +} + +/// Downsamples a 64x64 tile based on the work group id and work group offset. +/// If after downsampling it's the last active thread group, computes the remaining MIP levels. +/// Uses half types. +/// +/// @param [in] workGroupID index of the work group / thread group +/// @param [in] localInvocationIndex index of the thread within the thread group in 1D +/// @param [in] mips the number of total MIP levels to compute for the input texture +/// @param [in] numWorkGroups the total number of dispatched work groups / thread groups for this slice +/// @param [in] slice the slice of the input texture +/// @param [in] workGroupOffset the work group offset. it's (0,0) in case the entire input texture is downsampled. +/// +/// @ingroup FfxGPUSpd +void SpdDownsampleH(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxUInt32 mips, FfxUInt32 numWorkGroups, FfxUInt32 slice, FfxUInt32x2 workGroupOffset) +{ + SpdDownsampleH(workGroupID + workGroupOffset, localInvocationIndex, mips, numWorkGroups, slice); +} + +#endif // #if FFX_HALF +#endif // #if defined(FFX_GPU) diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl new file mode 100644 index 000000000..5ece11aee --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid_pass.glsl @@ -0,0 +1,75 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1 4 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3 6 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4 7 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5 8 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6 9 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7 10 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8 11 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9 12 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10 13 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11 14 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12 15 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 16 +#define FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID 17 + +#ifdef FFX_HALF + #undef FFX_HALF + #define FFX_HALF 0 +#endif + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_compute_game_vector_field_inpainting_pyramid.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeFrameinterpolationGameVectorFieldInpaintingPyramid(FfxInt32x3(gl_WorkGroupID), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl new file mode 100644 index 000000000..cdb7bde4d --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid_pass.glsl @@ -0,0 +1,74 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OUTPUT 0 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS 1 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_0 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_1 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_2 4 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_3 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_4 6 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_5 7 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_6 8 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_7 9 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_8 10 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_9 11 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_10 12 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_11 13 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_INPAINTING_PYRAMID_MIPMAP_12 14 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 15 +#define FFX_FRAMEINTERPOLATION_BIND_CB_INPAINTING_PYRAMID 16 + +#ifdef FFX_HALF + #undef FFX_HALF + #define FFX_HALF 0 +#endif + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_compute_inpainting_pyramid.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeFrameinterpolationInpaintingPyramid(FfxInt32x3(gl_WorkGroupID), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl new file mode 100644 index 000000000..a089510fc --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_debug_view_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK 4 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER 5 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 6 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 7 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 8 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT 9 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 10 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_debug_view.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeDebugView(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl new file mode 100644 index 000000000..40bb73561 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_disocclusion_mask_pass.glsl @@ -0,0 +1,61 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME 4 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 5 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 6 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK 7 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 8 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_disocclusion_mask.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeDisocclusionMask(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl new file mode 100644 index 000000000..1071d629a --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_game_motion_vector_field_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 4 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y 6 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 7 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_game_motion_vector_field.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeGameFieldMvs(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl new file mode 100644 index 000000000..facfca25c --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_inpainting_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PRESENT_BACKBUFFER 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 3 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT 7 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 8 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_inpainting.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeInpainting(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl new file mode 100644 index 000000000..0de21e29c --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_CONFIDENCE 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 4 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 6 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 7 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 8 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_optical_flow_vector_field.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeOpticalFlowVectorField(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl new file mode 100644 index 000000000..733bd396e --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_X 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_GAME_MOTION_VECTOR_FIELD_Y 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 3 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_PREVIOUS_INTERPOLATION_SOURCE 4 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 5 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISOCCLUSION_MASK 6 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPAINTING_PYRAMID 7 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_COUNTERS 8 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OUTPUT 9 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 10 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + computeFrameinterpolation(ivec2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl new file mode 100644 index 000000000..d29bddd1a --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_and_dilate_pass.glsl @@ -0,0 +1,58 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_MOTION_VECTORS 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_INPUT_DEPTH 1 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_PREVIOUS_FRAME 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_MOTION_VECTORS 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DILATED_DEPTH 4 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 5 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_reconstruct_dilated_velocity_and_previous_depth.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + ReconstructAndDilate(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl new file mode 100644 index 000000000..3608a62ef --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth_pass.glsl @@ -0,0 +1,58 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_MOTION_VECTORS 0 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DILATED_DEPTH 1 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_CURRENT_INTERPOLATION_SOURCE 2 +#define FFX_FRAMEINTERPOLATION_BIND_SRV_DISTORTION_FIELD 3 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_RECONSTRUCTED_DEPTH_INTERPOLATED_FRAME 4 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 5 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_reconstruct_previous_depth.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + reconstructPreviousDepth(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl new file mode 100644 index 000000000..eaf18634f --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/frameinterpolation/ffx_frameinterpolation_setup_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_FRAMEINTERPOLATION_BIND_SRV_OPTICAL_FLOW_SCENE_CHANGE_DETECTION 0 + +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_X 1 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_GAME_MOTION_VECTOR_FIELD_Y 2 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_X 3 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_OPTICAL_FLOW_MOTION_VECTOR_FIELD_Y 4 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_DISOCCLUSION_MASK 5 +#define FFX_FRAMEINTERPOLATION_BIND_UAV_COUNTERS 6 + +#define FFX_FRAMEINTERPOLATION_BIND_CB_FRAMEINTERPOLATION 7 + +#include "frameinterpolation/ffx_frameinterpolation_callbacks_glsl.h" +#include "frameinterpolation/ffx_frameinterpolation_common.h" +#include "frameinterpolation/ffx_frameinterpolation_setup.h" + +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT +#ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#define FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH +#ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS +#define FFX_FRAMEINTERPOLATION_NUM_THREADS layout (local_size_x = FFX_FRAMEINTERPOLATION_THREAD_GROUP_WIDTH, local_size_y = FFX_FRAMEINTERPOLATION_THREAD_GROUP_HEIGHT, local_size_z = FFX_FRAMEINTERPOLATION_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FRAMEINTERPOLATION_NUM_THREADS + +FFX_FRAMEINTERPOLATION_NUM_THREADS +void main() +{ + setupFrameinterpolationResources(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl new file mode 100644 index 000000000..3b9357553 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_accumulate_pass.glsl @@ -0,0 +1,75 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_upscaled_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 0 +#define FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS 1 +#if FFX_FSR3UPSCALER_OPTION_LOW_RESOLUTION_MOTION_VECTORS +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 2 +#else +#define FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS 2 +#endif +#define FSR3UPSCALER_BIND_SRV_INTERNAL_UPSCALED 3 +#define FSR3UPSCALER_BIND_SRV_LANCZOS_LUT 4 +#define FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1 5 + +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 6 +#define FSR3UPSCALER_BIND_SRV_LUMA_INSTABILITY 7 +#define FSR3UPSCALER_BIND_SRV_INPUT_COLOR 8 + +#define FSR3UPSCALER_BIND_UAV_INTERNAL_UPSCALED 9 +#define FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT 10 +#define FSR3UPSCALER_BIND_UAV_NEW_LOCKS 11 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_sample.h" +#include "fsr3upscaler/ffx_fsr3upscaler_upsample.h" +#include "fsr3upscaler/ffx_fsr3upscaler_reproject.h" +#include "fsr3upscaler/ffx_fsr3upscaler_accumulate.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + Accumulate(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl new file mode 100644 index 000000000..6d5db88e1 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_instability_pass.glsl @@ -0,0 +1,62 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 0 +#define FSR3UPSCALER_BIND_SRV_DILATED_REACTIVE_MASKS 1 +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 2 +#define FSR3UPSCALER_BIND_SRV_FRAME_INFO 3 +#define FSR3UPSCALER_BIND_SRV_LUMA_HISTORY 4 +#define FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH_MIP1 5 +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 6 + +#define FSR3UPSCALER_BIND_UAV_LUMA_HISTORY 7 +#define FSR3UPSCALER_BIND_UAV_LUMA_INSTABILITY 8 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 9 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_luma_instability.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + LumaInstability(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl new file mode 100644 index 000000000..29f4c8f8d --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_luma_pyramid_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 0 +#define FSR3UPSCALER_BIND_SRV_FARTHEST_DEPTH 1 + +#define FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC 2 +#define FSR3UPSCALER_BIND_UAV_FRAME_INFO 3 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0 4 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1 5 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2 6 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3 7 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4 8 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5 9 +#define FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH_MIP1 10 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 11 +#define FSR3UPSCALER_BIND_CB_SPD 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_luma_pyramid.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + ComputeAutoExposure(gl_WorkGroupID, gl_LocalInvocationIndex); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl new file mode 100644 index 000000000..6e3c57223 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_inputs_pass.glsl @@ -0,0 +1,61 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_MOTION_VECTORS 0 +#define FSR3UPSCALER_BIND_SRV_INPUT_DEPTH 1 +#define FSR3UPSCALER_BIND_SRV_INPUT_COLOR 2 + +#define FSR3UPSCALER_BIND_UAV_DILATED_MOTION_VECTORS 3 +#define FSR3UPSCALER_BIND_UAV_DILATED_DEPTH 4 +#define FSR3UPSCALER_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH 5 +#define FSR3UPSCALER_BIND_UAV_FARTHEST_DEPTH 6 +#define FSR3UPSCALER_BIND_UAV_CURRENT_LUMA 7 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 8 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_prepare_inputs.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + PrepareInputs(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl new file mode 100644 index 000000000..e09d5d36d --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity_pass.glsl @@ -0,0 +1,65 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH 0 +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 1 +#define FSR3UPSCALER_BIND_SRV_DILATED_DEPTH 2 +#define FSR3UPSCALER_BIND_SRV_REACTIVE_MASK 3 +#define FSR3UPSCALER_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK 4 +#define FSR3UPSCALER_BIND_SRV_ACCUMULATION 5 +#define FSR3UPSCALER_BIND_SRV_SHADING_CHANGE 6 +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 7 +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 8 + +#define FSR3UPSCALER_BIND_UAV_DILATED_REACTIVE_MASKS 9 +#define FSR3UPSCALER_BIND_UAV_NEW_LOCKS 10 +#define FSR3UPSCALER_BIND_UAV_ACCUMULATION 11 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_prepare_reactivity.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + PrepareReactivity(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl new file mode 100644 index 000000000..112c2e5fb --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_rcas_pass.glsl @@ -0,0 +1,59 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require +// Needed for rw_upscaled_output declaration +#extension GL_EXT_shader_image_load_formatted : require + +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 0 +#define FSR3UPSCALER_BIND_SRV_RCAS_INPUT 1 + +#define FSR3UPSCALER_BIND_UAV_UPSCALED_OUTPUT 2 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 3 +#define FSR3UPSCALER_BIND_CB_RCAS 4 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_rcas.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 64 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + RCAS(gl_LocalInvocationID.xyz, gl_WorkGroupID.xyz, gl_GlobalInvocationID.xyz); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl new file mode 100644 index 000000000..539728f0a --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pass.glsl @@ -0,0 +1,55 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_SPD_MIPS 0 + +#define FSR3UPSCALER_BIND_UAV_SHADING_CHANGE 1 + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 2 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_shading_change.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + ShadingChange(FfxInt32x2(gl_GlobalInvocationID.xy)); +} diff --git a/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl new file mode 100644 index 000000000..5e02d3da9 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid_pass.glsl @@ -0,0 +1,67 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FSR3UPSCALER_BIND_SRV_CURRENT_LUMA 0 +#define FSR3UPSCALER_BIND_SRV_PREVIOUS_LUMA 1 +#define FSR3UPSCALER_BIND_SRV_DILATED_MOTION_VECTORS 2 +#define FSR3UPSCALER_BIND_SRV_INPUT_EXPOSURE 3 + + +#define FSR3UPSCALER_BIND_UAV_SPD_GLOBAL_ATOMIC 4 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_0 5 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_1 6 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_2 7 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_3 8 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_4 9 +#define FSR3UPSCALER_BIND_UAV_SPD_MIPS_LEVEL_5 10 + + +#define FSR3UPSCALER_BIND_CB_FSR3UPSCALER 11 +#define FSR3UPSCALER_BIND_CB_SPD 12 + +#include "fsr3upscaler/ffx_fsr3upscaler_callbacks_glsl.h" +#include "fsr3upscaler/ffx_fsr3upscaler_common.h" +#include "fsr3upscaler/ffx_fsr3upscaler_shading_change_pyramid.h" + +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#define FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT +#ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#define FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH +#ifndef FFX_FSR3UPSCALER_NUM_THREADS +#define FFX_FSR3UPSCALER_NUM_THREADS layout (local_size_x = FFX_FSR3UPSCALER_THREAD_GROUP_WIDTH, local_size_y = FFX_FSR3UPSCALER_THREAD_GROUP_HEIGHT, local_size_z = FFX_FSR3UPSCALER_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_FSR3UPSCALER_NUM_THREADS + +FFX_FSR3UPSCALER_NUM_THREADS +void main() +{ + ComputeShadingChangePyramid(gl_WorkGroupID, gl_LocalInvocationIndex); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl new file mode 100644 index 000000000..7713dcdda --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_luminance_pyramid_pass.glsl @@ -0,0 +1,60 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_1 1 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_2 2 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_3 3 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_4 4 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_5 5 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT_LEVEL_6 6 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 7 +#define FFX_OPTICALFLOW_BIND_CB_SPD 8 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" +#include "opticalflow/ffx_opticalflow_compute_luminance_pyramid.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + ComputeOpticalFlowInputPyramid(FfxInt32x2(gl_WorkGroupID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl new file mode 100644 index 000000000..8844c2ae9 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_optical_flow_advanced_pass_v5.glsl @@ -0,0 +1,66 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_WAVE 1 +#extension GL_KHR_shader_subgroup_basic : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT 1 + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW 2 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT 3 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 4 + + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_BLOCK_SIZE +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#endif // #ifndef FFX_OPTICALFLOW_BLOCK_SIZE +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 64 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH + +#include "opticalflow/ffx_opticalflow_compute_optical_flow_v5.h" + +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + ComputeOpticalFlowAdvanced(FfxInt32x2(gl_GlobalInvocationID.xy), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32x2(gl_WorkGroupID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl new file mode 100644 index 000000000..0df8d985f --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_compute_scd_divergence_pass.glsl @@ -0,0 +1,57 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_PREVIOUS_HISTOGRAM 1 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_TEMP 2 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT 3 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 4 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" +#include "opticalflow/ffx_opticalflow_compute_scd_divergence.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 256 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + FfxInt32x2 iGroupSize = FfxInt32x2(FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT); + ComputeSCDHistogramsDivergence(FfxInt32x3(gl_GlobalInvocationID.xyz), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32(gl_LocalInvocationIndex), FfxInt32x2(gl_WorkGroupID.xy), iGroupSize); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl new file mode 100644 index 000000000..01bb11a45 --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_filter_optical_flow_pass_v5.glsl @@ -0,0 +1,57 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS 0 + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW 1 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 2 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 16 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH + +#include "opticalflow/ffx_opticalflow_filter_optical_flow_v5.h" + +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + FilterOpticalFlow(FfxInt32x2(gl_GlobalInvocationID.xy), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32x2(gl_WorkGroupID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl new file mode 100644 index 000000000..0462ef15b --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_generate_scd_histogram_pass.glsl @@ -0,0 +1,55 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_HISTOGRAM 1 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 2 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" +#include "opticalflow/ffx_opticalflow_generate_scd_histogram.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 32 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 8 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + FfxInt32x2 iGroupSize = FfxInt32x2(FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT); + GenerateSceneChangeDetectionHistogram(FfxInt32x3(gl_GlobalInvocationID.xyz), FfxInt32x2(gl_LocalInvocationID.xy), FfxInt32(gl_LocalInvocationIndex), FfxInt32x2(gl_WorkGroupID.xy), iGroupSize); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl new file mode 100644 index 000000000..bb37011ef --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_prepare_luma_pass.glsl @@ -0,0 +1,55 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_INPUT_COLOR 0 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_INPUT 1 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 2 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 16 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 16 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 1 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +#include "opticalflow/ffx_opticalflow_prepare_luma.h" + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + PrepareLuma(FfxInt32x2(gl_GlobalInvocationID.xy), FfxInt32(gl_LocalInvocationIndex)); +} diff --git a/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl new file mode 100644 index 000000000..70142c25f --- /dev/null +++ b/third_party/fidelityfx-sdk/shaders/opticalflow/ffx_opticalflow_scale_optical_flow_advanced_pass_v5.glsl @@ -0,0 +1,66 @@ +// This file is part of the FidelityFX SDK. +// +// Copyright (C) 2024 Advanced Micro Devices, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files(the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and /or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions : +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#version 450 + +#extension GL_GOOGLE_include_directive : require +#extension GL_EXT_samplerless_texture_functions : require + +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_INPUT 0 +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW_PREVIOUS_INPUT 1 +#define FFX_OPTICALFLOW_BIND_SRV_OPTICAL_FLOW 2 + +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_NEXT_LEVEL 3 +#define FFX_OPTICALFLOW_BIND_UAV_OPTICAL_FLOW_SCD_OUTPUT 4 + +#define FFX_OPTICALFLOW_BIND_CB_COMMON 5 + +#include "opticalflow/ffx_opticalflow_callbacks_glsl.h" +#include "opticalflow/ffx_opticalflow_common.h" + +#ifndef FFX_OPTICALFLOW_BLOCK_SIZE +#define FFX_OPTICALFLOW_BLOCK_SIZE 8 +#endif // #ifndef FFX_OPTICALFLOW_BLOCK_SIZE + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH +#define FFX_OPTICALFLOW_THREAD_GROUP_WIDTH 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_WIDTH + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT +#define FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT + +#ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH +#define FFX_OPTICALFLOW_THREAD_GROUP_DEPTH 4 +#endif // #ifndef FFX_OPTICALFLOW_THREAD_GROUP_DEPTH + +#include "opticalflow/ffx_opticalflow_scale_optical_flow_advanced_v5.h" + +#ifndef FFX_OPTICALFLOW_NUM_THREADS +#define FFX_OPTICALFLOW_NUM_THREADS layout (local_size_x = FFX_OPTICALFLOW_THREAD_GROUP_WIDTH, local_size_y = FFX_OPTICALFLOW_THREAD_GROUP_HEIGHT, local_size_z = FFX_OPTICALFLOW_THREAD_GROUP_DEPTH) in; +#endif // #ifndef FFX_OPTICALFLOW_NUM_THREADS + +FFX_OPTICALFLOW_NUM_THREADS +void main() +{ + ScaleOpticalFlowAdvanced(FfxInt32x3(gl_GlobalInvocationID.xyz), FfxInt32x3(gl_LocalInvocationID.xyz)); +}