Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/source-regressions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
59 changes: 59 additions & 0 deletions gpu/vk/fsr3_math.h
Original file line number Diff line number Diff line change
@@ -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 <cfloat>
#include <cmath>

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
1,995 changes: 1,995 additions & 0 deletions gpu/vk/shaders/fsr3_accumulate_comp_spv.h

Large diffs are not rendered by default.

1,980 changes: 1,980 additions & 0 deletions gpu/vk/shaders/fsr3_accumulate_sharpen_comp_spv.h

Large diffs are not rendered by default.

818 changes: 818 additions & 0 deletions gpu/vk/shaders/fsr3_fi_disocclusion_mask_comp_spv.h

Large diffs are not rendered by default.

842 changes: 842 additions & 0 deletions gpu/vk/shaders/fsr3_fi_game_motion_vector_field_comp_spv.h

Large diffs are not rendered by default.

1,551 changes: 1,551 additions & 0 deletions gpu/vk/shaders/fsr3_fi_game_vector_field_inpainting_pyramid_comp_spv.h

Large diffs are not rendered by default.

748 changes: 748 additions & 0 deletions gpu/vk/shaders/fsr3_fi_inpainting_comp_spv.h

Large diffs are not rendered by default.

1,488 changes: 1,488 additions & 0 deletions gpu/vk/shaders/fsr3_fi_inpainting_pyramid_comp_spv.h

Large diffs are not rendered by default.

1,260 changes: 1,260 additions & 0 deletions gpu/vk/shaders/fsr3_fi_interpolate_comp_spv.h

Large diffs are not rendered by default.

789 changes: 789 additions & 0 deletions gpu/vk/shaders/fsr3_fi_optical_flow_vector_field_comp_spv.h

Large diffs are not rendered by default.

426 changes: 426 additions & 0 deletions gpu/vk/shaders/fsr3_fi_reconstruct_and_dilate_comp_spv.h

Large diffs are not rendered by default.

307 changes: 307 additions & 0 deletions gpu/vk/shaders/fsr3_fi_reconstruct_previous_depth_comp_spv.h

Large diffs are not rendered by default.

232 changes: 232 additions & 0 deletions gpu/vk/shaders/fsr3_fi_setup_comp_spv.h

Large diffs are not rendered by default.

543 changes: 543 additions & 0 deletions gpu/vk/shaders/fsr3_luma_instability_comp_spv.h

Large diffs are not rendered by default.

1,527 changes: 1,527 additions & 0 deletions gpu/vk/shaders/fsr3_luma_pyramid_comp_spv.h

Large diffs are not rendered by default.

1,567 changes: 1,567 additions & 0 deletions gpu/vk/shaders/fsr3_luma_pyramid_nowave_comp_spv.h

Large diffs are not rendered by default.

957 changes: 957 additions & 0 deletions gpu/vk/shaders/fsr3_of_compute_optical_flow_v5_comp_spv.h

Large diffs are not rendered by default.

625 changes: 625 additions & 0 deletions gpu/vk/shaders/fsr3_of_compute_scd_divergence_comp_spv.h

Large diffs are not rendered by default.

167 changes: 167 additions & 0 deletions gpu/vk/shaders/fsr3_of_filter_optical_flow_v5_comp_spv.h
Original file line number Diff line number Diff line change
@@ -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
};
Loading
Loading